161 lines
2.7 KiB
YAML
161 lines
2.7 KiB
YAML
|
version: '3'
|
||
|
services:
|
||
|
da1:
|
||
|
build:
|
||
|
context: .
|
||
|
dockerfile: Dockerfile
|
||
|
args:
|
||
|
NICKNAME: ${DA1_NICKNAME}
|
||
|
environment:
|
||
|
ROLE: DA
|
||
|
DA1_NICKNAME: DA1
|
||
|
|
||
|
|
||
|
volumes:
|
||
|
## Needed to keep track of other nodes
|
||
|
- ./tor:/tor
|
||
|
- ./keys:/keys
|
||
|
|
||
|
command: >
|
||
|
sh -c "
|
||
|
echo $DA1_NICKNAME &&
|
||
|
mkdir -p /tor/$DA1_NICKNAME/keys &&
|
||
|
cp -r /keys/* /tor/$DA1_NICKNAME/keys &&
|
||
|
tor -f /etc/tor/torrc"
|
||
|
|
||
|
da2:
|
||
|
build:
|
||
|
context: .
|
||
|
dockerfile: Dockerfile
|
||
|
args:
|
||
|
NICKNAME: ${DA2_NICKNAME}
|
||
|
environment:
|
||
|
ROLE: DA
|
||
|
DA2_NICKNAME: DA2
|
||
|
|
||
|
|
||
|
volumes:
|
||
|
## Needed to keep track of other nodes
|
||
|
- ./tor:/tor
|
||
|
- ./keys:/keys
|
||
|
|
||
|
command: >
|
||
|
sh -c "
|
||
|
echo $DA2_NICKNAME &&
|
||
|
mkdir -p /tor/$DA2_NICKNAME/keys &&
|
||
|
cp -r /keys/* /tor/$DA2_NICKNAME/keys &&
|
||
|
tor -f /etc/tor/torrc"
|
||
|
|
||
|
da3:
|
||
|
build:
|
||
|
context: .
|
||
|
dockerfile: Dockerfile
|
||
|
args:
|
||
|
NICKNAME: ${DA3_NICKNAME}
|
||
|
environment:
|
||
|
ROLE: DA
|
||
|
DA3_NICKNAME: DA3
|
||
|
|
||
|
|
||
|
volumes:
|
||
|
## Needed to keep track of other nodes
|
||
|
- ./tor:/tor
|
||
|
- ./keys:/keys
|
||
|
|
||
|
command: >
|
||
|
sh -c "
|
||
|
echo $DA3_NICKNAME &&
|
||
|
mkdir -p /tor/$DA3_NICKNAME/keys &&
|
||
|
cp -r /keys/* /tor/$DA3_NICKNAME/keys &&
|
||
|
tor -f /etc/tor/torrc"
|
||
|
|
||
|
relay:
|
||
|
image: tor-network:latest
|
||
|
#expose:
|
||
|
# - "7000"
|
||
|
# - "9030"
|
||
|
environment:
|
||
|
ROLE: RELAY
|
||
|
volumes:
|
||
|
- ./tor:/tor
|
||
|
depends_on:
|
||
|
# Make sure the DA's are already up
|
||
|
- da1
|
||
|
- da2
|
||
|
- da3
|
||
|
- build_image
|
||
|
exit:
|
||
|
image: tor-network:latest
|
||
|
#expose:
|
||
|
# - "7000"
|
||
|
# - "9030"
|
||
|
environment:
|
||
|
ROLE: EXIT
|
||
|
volumes:
|
||
|
- ./tor:/tor
|
||
|
depends_on:
|
||
|
# Make sure the DA's are already up
|
||
|
- da1
|
||
|
- da2
|
||
|
- da3
|
||
|
- build_image
|
||
|
client:
|
||
|
image: tor-network:latest
|
||
|
ports:
|
||
|
# Setups a listener on host machine
|
||
|
- "9050:9050"
|
||
|
- "9051:9051"
|
||
|
volumes:
|
||
|
- ./tor:/tor
|
||
|
- ./keys:/keys
|
||
|
environment:
|
||
|
ROLE: CLIENT
|
||
|
|
||
|
command: >
|
||
|
sh -c "
|
||
|
mkdir -p /tor/$(hostname)/keys &&
|
||
|
cp -r /keys /tor/$(hostname) &&
|
||
|
tor -f /etc/tor/torrc"
|
||
|
depends_on:
|
||
|
- da1
|
||
|
- da2
|
||
|
- da3
|
||
|
- build_image
|
||
|
hs:
|
||
|
image: tor-network:latest
|
||
|
#expose:
|
||
|
# - "80"
|
||
|
environment:
|
||
|
ROLE: HS
|
||
|
# This will create a hidden service that points to
|
||
|
# the service "web" which is runing nginx. You can
|
||
|
# change this to whatever ip or hostname you want
|
||
|
TOR_HS_PORT: "80"
|
||
|
TOR_HS_ADDR: "web"
|
||
|
volumes:
|
||
|
- ./tor:/tor
|
||
|
depends_on:
|
||
|
- da1
|
||
|
- da2
|
||
|
- da3
|
||
|
- build_image
|
||
|
links:
|
||
|
- web
|
||
|
web:
|
||
|
image: nginx
|
||
|
#expose:
|
||
|
# - "80"
|
||
|
|
||
|
|
||
|
|
||
|
build_image:
|
||
|
build:
|
||
|
context: .
|
||
|
dockerfile: Dockerfile
|
||
|
volumes:
|
||
|
## Needed to keep track of other nodes
|
||
|
- ./tor:/tor
|
||
|
image: tor-network:latest
|
||
|
command: ["/bin/true"]
|
||
|
|