networks: relays: driver: bridge ipam: config: - subnet: 10.20.0.0/16 gateway: 10.20.0.1 volumes: postgres: driver: local services: base: image: network_next_base build: context: . dockerfile: docker/base.Dockerfile postgres: build: context: . dockerfile: docker/postgres.Dockerfile environment: POSTGRES_USER: Postgres POSTGRES_PASSWORD: Postgres PGDATA: /data/postgres volumes: - postgres:/data/postgres ports: - '5436:5432' restart: always redis: image: redis/redis-stack-server:latest restart: always magic_backend: build: context: . dockerfile: docker/magic_backend.Dockerfile depends_on: - base ports: - "10000:80" relay_gateway: build: context: . dockerfile: docker/relay_gateway.Dockerfile ports: - "11000:80" depends_on: - base - redis - magic_backend environment: - REDIS_HOSTNAME=redis:6379 - MAGIC_URL=http://magic_backend/magic - MAGIC_INTERVAL=10s - RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RELAY_BACKEND_PRIVATE_KEY=qXeUdLPZxaMnZ/zFHLHkmgkQOmunWq1AmRv55nqTYMg= - PING_KEY=xsBL4b6PO4ESADcc69kERzLXxs9ESOrX1kSHJH0m9D0= - RELAY_BACKEND_ADDRESS=10.20.0.200 networks: - default - relays restart: always relay_backend: build: context: . dockerfile: docker/relay_backend.Dockerfile ports: - "12000:80" depends_on: - base - redis - relay_gateway environment: - ROUTE_MATRIX_INTERVAL=10s - REDIS_HOSTNAME=redis:6379 - REDIS_PORTAL_HOSTNAME=redis:6379 - ENABLE_REDIS_TIME_SERIES=true - REDIS_TIME_SERIES_HOSTNAME=redis:6379 - RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RELAY_BACKEND_PRIVATE_KEY=qXeUdLPZxaMnZ/zFHLHkmgkQOmunWq1AmRv55nqTYMg= networks: default: relays: ipv4_address: 10.20.0.200 restart: always session_cruncher: build: context: . dockerfile: docker/session_cruncher.Dockerfile depends_on: - base ports: - "40200:80" environment: - ENABLE_REDIS_TIME_SERIES=true - REDIS_TIME_SERIES_HOSTNAME=redis:6379 restart: always server_cruncher: build: context: . dockerfile: docker/server_cruncher.Dockerfile depends_on: - base ports: - "40300:80" restart: always server_backend: build: context: . dockerfile: docker/server_backend.Dockerfile ports: - "13000:80/tcp" - "40000:40000/udp" depends_on: - base - magic_backend - relay_gateway environment: - MAGIC_URL=http://magic_backend/magic - MAGIC_INTERVAL=10s - ROUTE_MATRIX_INTERVAL=10s - ROUTE_MATRIX_URL=http://relay_backend/route_matrix - SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - SERVER_BACKEND_PRIVATE_KEY=peZ17P29VgtnOiEv5wwNPDDo9lWweFV7dBVac0KoaXHXBd6iCo4Qv9S4ycfLeXCl2R2SVyDgiS07/f2YmJh+Bw== - RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RELAY_BACKEND_PRIVATE_KEY=qXeUdLPZxaMnZ/zFHLHkmgkQOmunWq1AmRv55nqTYMg= - PING_KEY=xsBL4b6PO4ESADcc69kERzLXxs9ESOrX1kSHJH0m9D0= - SERVER_BACKEND_ADDRESS=10.20.0.100:40000 - SESSION_CRUNCHER_URL=http://session_cruncher - SERVER_CRUNCHER_URL=http://server_cruncher - REDIS_PORTAL_HOSTNAME=redis:6379 - ENABLE_REDIS_TIME_SERIES=true - REDIS_TIME_SERIES_HOSTNAME=redis:6379 networks: default: relays: ipv4_address: 10.20.0.100 restart: always api: build: context: . dockerfile: docker/api.Dockerfile ports: - "50000:80" depends_on: - base - redis - postgres - server_cruncher - session_cruncher environment: - REDIS_PORTAL_HOSTNAME=redis:6379 - ENABLE_REDIS_TIME_SERIES=true - REDIS_TIME_SERIES_HOSTNAME=redis:6379 - PGSQL_CONFIG=host=postgres port=5432 user=Postgres password=Postgres dbname=postgres sslmode=disable - SESSION_CRUNCHER_URL=http://session_cruncher - SERVER_CRUNCHER_URL=http://server_cruncher - API_PRIVATE_KEY=uKUsmTySUVEssqBmVNciJWWolchcGGhFzRWMpydwOtVExvqYpHMotnkanNTaGHHh restart: always relay_0: build: context: . dockerfile: docker/relay.Dockerfile environment: - RELAY_NAME=docker.0 - RELAY_PUBLIC_ADDRESS=10.20.1.0:40000 - RELAY_BACKEND_URL=http://relay_gateway - RELAY_PUBLIC_KEY=1nTj7bQmo8gfIDqG+o//GFsak/g1TRo4hl6XXw1JkyI= - RELAY_PRIVATE_KEY=cwvK44Pr5aHI3vE3siODS7CUgdPI/l1VwjVZ2FvEyAo= - RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.1.0 depends_on: - base - relay_backend restart: always relay_1: build: context: . dockerfile: docker/relay.Dockerfile environment: - RELAY_NAME=docker.1 - RELAY_PUBLIC_ADDRESS=10.20.1.1:40000 - RELAY_BACKEND_URL=http://relay_gateway - RELAY_PUBLIC_KEY=1nTj7bQmo8gfIDqG+o//GFsak/g1TRo4hl6XXw1JkyI= - RELAY_PRIVATE_KEY=cwvK44Pr5aHI3vE3siODS7CUgdPI/l1VwjVZ2FvEyAo= - RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.1.1 depends_on: - base - relay_backend restart: always relay_2: build: context: . dockerfile: docker/relay.Dockerfile environment: - RELAY_NAME=docker.2 - RELAY_PUBLIC_ADDRESS=10.20.1.2:40000 - RELAY_BACKEND_URL=http://relay_gateway - RELAY_PUBLIC_KEY=1nTj7bQmo8gfIDqG+o//GFsak/g1TRo4hl6XXw1JkyI= - RELAY_PRIVATE_KEY=cwvK44Pr5aHI3vE3siODS7CUgdPI/l1VwjVZ2FvEyAo= - RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.1.2 depends_on: - base - relay_backend restart: always portal: build: context: . dockerfile: docker/portal.Dockerfile ports: - '8080:8080' depends_on: - api restart: always raspberry_backend: build: context: . dockerfile: docker/raspberry_backend.Dockerfile depends_on: - base ports: - "40100:80" environment: - REDIS_HOSTNAME=redis:6379 networks: default: relays: ipv4_address: 10.20.0.60 raspberry_server_0: build: context: . dockerfile: docker/raspberry_server.Dockerfile environment: - NEXT_DATACENTER=docker - NEXT_SERVER_ADDRESS=10.20.2.0 - NEXT_BIND_ADDRESS=0.0.0.0:40000 - NEXT_SERVER_BACKEND_HOSTNAME=server_backend - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RASPBERRY_BACKEND_URL=http://raspberry_backend networks: relays: ipv4_address: 10.20.2.0 depends_on: - base - server_backend restart: always raspberry_server_1: build: context: . dockerfile: docker/raspberry_server.Dockerfile environment: - NEXT_DATACENTER=docker - NEXT_SERVER_ADDRESS=10.20.2.1 - NEXT_BIND_ADDRESS=0.0.0.0:40000 - NEXT_SERVER_BACKEND_HOSTNAME=server_backend - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RASPBERRY_BACKEND_URL=http://raspberry_backend networks: relays: ipv4_address: 10.20.2.1 depends_on: - base - server_backend restart: always raspberry_server_2: build: context: . dockerfile: docker/raspberry_server.Dockerfile environment: - NEXT_DATACENTER=docker - NEXT_SERVER_ADDRESS=10.20.2.2 - NEXT_BIND_ADDRESS=0.0.0.0:40000 - NEXT_SERVER_BACKEND_HOSTNAME=server_backend - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RASPBERRY_BACKEND_URL=http://raspberry_backend networks: relays: ipv4_address: 10.20.2.2 depends_on: - base - server_backend restart: always raspberry_server_3: build: context: . dockerfile: docker/raspberry_server.Dockerfile environment: - NEXT_DATACENTER=docker - NEXT_SERVER_ADDRESS=10.20.2.3 - NEXT_BIND_ADDRESS=0.0.0.0:40000 - NEXT_SERVER_BACKEND_HOSTNAME=server_backend - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RASPBERRY_BACKEND_URL=http://raspberry_backend networks: relays: ipv4_address: 10.20.2.3 depends_on: - base - server_backend restart: always raspberry_server_4: build: context: . dockerfile: docker/raspberry_server.Dockerfile environment: - NEXT_DATACENTER=docker - NEXT_SERVER_ADDRESS=10.20.2.4 - NEXT_BIND_ADDRESS=0.0.0.0:40000 - NEXT_SERVER_BACKEND_HOSTNAME=server_backend - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= - RASPBERRY_BACKEND_URL=http://raspberry_backend networks: relays: ipv4_address: 10.20.2.4 depends_on: - base - server_backend restart: always raspberry_clients_0: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.0 depends_on: - base - server_backend restart: always raspberry_clients_1: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.1 depends_on: - base - server_backend restart: always raspberry_clients_2: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.2 depends_on: - base - server_backend restart: always raspberry_clients_3: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.3 depends_on: - base - server_backend restart: always raspberry_clients_4: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.4 depends_on: - base - server_backend restart: always raspberry_clients_5: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.5 depends_on: - base - server_backend restart: always raspberry_clients_6: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== NEXT_BUYER_PRIVATE_KEY=AN+VWuqgAQdhmzB4XOT89baswrIaX6WS7dTIW8U6deMZdoemQh9qoN3l35B5Ppqk1/4Ztv2uoUEy2Tkz4agy/BLUSrPvrhf8 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.6 depends_on: - base - server_backend restart: always raspberry_clients_7: build: context: . dockerfile: docker/raspberry_client.Dockerfile environment: - RASPBERRY_BACKEND_URL=http://raspberry_backend - RASPBERRY_NUM_CLIENTS=128 - NEXT_BUYER_PUBLIC_KEY=AzcqXbdP3Txq3rHIjRBS4BfG7OoKV9PAZfB0rY7a+ArdizBzFAd2vQ== - NEXT_BUYER_PRIVATE_KEY=AzcqXbdP3TwX+9o9VfR7RcX2cq34UPdEsR2ztUnwxlTb/R49EiV5a2resciNEFLgF8bs6gpX08Bl8HStjtr4Ct2LMHMUB3a9 - NEXT_SERVER_BACKEND_PUBLIC_KEY=1wXeogqOEL/UuMnHy3lwpdkdklcg4IktO/39mJiYfgc= - NEXT_RELAY_BACKEND_PUBLIC_KEY=IsjRpWEz9H7qslhWWupW4A9LIpVh+PzWoLleuXL1NUE= networks: relays: ipv4_address: 10.20.3.7 depends_on: - base - server_backend restart: always