tor-network/docker-compose.yml

161 lines
2.7 KiB
YAML
Raw Permalink Normal View History

2024-08-01 02:18:45 +00:00
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"]