-
Notifications
You must be signed in to change notification settings - Fork 1
/
torrc.tmpl
31 lines (31 loc) · 1.36 KB
/
torrc.tmpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{{ $CurrentContainer := where $ "ID" .Docker.CurrentContainerID | first }}
{{ define "hidden" }}
{{ if .Address }}
{{ if and .Container.Node.ID .Address.HostPort }}
HiddenServiceDir /var/lib/tor/{{ .Container.Node.Name }}/{{ .Container.Name }}
HiddenServicePort 80 {{ .Container.Node.Address.IP }}:{{ .Address.HostPort }}
{{ else if .Network }}
HiddenServiceDir /var/lib/tor/{{ .Container.Name }}
HiddenServicePort 80 {{ .Network.IP }}:{{ .Address.Port }}
{{ end }}
{{ end }}
{{ end }}
{{ range $host, $containers := groupByMulti $ "Env.TORIFY" "," }}
{{ range $container := $containers }}
{{ $addrLen := len $container.Addresses }}
{{ range $knownNetwork := $CurrentContainer.Networks }}
{{ range $containerNetwork := $container.Networks }}
{{ if eq $knownNetwork.Name $containerNetwork.Name }}
{{ if eq $addrLen 1 }}
{{ $address := index $container.Addresses 0 }}
{{ template "hidden" (dict "Container" $container "Address" $address "Network" $containerNetwork) }}
{{ else }}
{{ $port := coalesce $container.Env.VIRTUAL_PORT "80" }}
{{ $address := where $container.Addresses "Port" $port | first }}
{{ template "hidden" (dict "Container" $container "Address" $address "Network" $containerNetwork) }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}