version: "3.7" x-logging: &default-logging driver: json-file options: max-size: "10m" max-file: "3" networks: shared: ipam: driver: default config: - subnet: 10.10.10.0/24 services: sia: build: context: ./docker/sia dockerfile: Dockerfile args: branch: portal-latest container_name: sia restart: unless-stopped stop_grace_period: 5m logging: *default-logging environment: - SIA_MODULES=gctwra - SKYD_DISK_CACHE_ENABLED=${SKYD_DISK_CACHE_ENABLED:-true} - SKYD_DISK_CACHE_SIZE=${SKYD_DISK_CACHE_SIZE:-53690000000} # 50GB - SKYD_DISK_CACHE_MIN_HITS=${SKYD_DISK_CACHE_MIN_HITS:-3} - SKYD_DISK_CACHE_HIT_PERIOD=${SKYD_DISK_CACHE_HIT_PERIOD:-3600} # 1h env_file: - .env volumes: - ./docker/data/sia:/sia-data networks: shared: ipv4_address: 10.10.10.10 expose: - 9980 certbot: image: certbot/dns-route53:v1.29.0 entrypoint: sh /entrypoint.sh container_name: certbot restart: unless-stopped logging: *default-logging env_file: - .env environment: - CERTBOT_ARGS=--dns-route53 volumes: - ./docker/certbot/entrypoint.sh:/entrypoint.sh - ./docker/data/certbot:/etc/letsencrypt nginx: # uncomment "build" and comment out "image" to build from sources # build: # context: https://github.com/SkynetLabs/webportal-nginx.git#main # dockerfile: Dockerfile image: skynetlabs/webportal-nginx:0.3.3 container_name: nginx restart: unless-stopped logging: *default-logging env_file: - .env volumes: - ./docker/data/nginx/cache:/data/nginx/cache - ./docker/data/nginx/blocker:/data/nginx/blocker - ./docker/data/nginx/logs:/usr/local/openresty/nginx/logs - ./docker/data/nginx/skynet:/data/nginx/skynet:ro - ./docker/data/sia/apipassword:/data/sia/apipassword:ro - ./docker/data/certbot:/etc/letsencrypt networks: shared: ipv4_address: 10.10.10.30 ports: - "443:443" - "80:80" depends_on: - sia - handshake-api - dnslink-api - website website: # uncomment "build" and comment out "image" to build from sources # build: # context: https://github.com/SkynetLabs/webportal-website.git#main # dockerfile: Dockerfile image: skynetlabs/webportal-website:0.2.1 container_name: website restart: unless-stopped logging: *default-logging volumes: - ./docker/data/website/.cache:/usr/app/.cache - ./docker/data/website/.public:/usr/app/public env_file: - .env networks: shared: ipv4_address: 10.10.10.35 expose: - 9000 handshake: image: skynetlabs/hsd:3.0.1 command: --chain-migrate=2 --wallet-migrate=1 container_name: handshake restart: unless-stopped logging: *default-logging environment: - HSD_LOG_CONSOLE=false - HSD_HTTP_HOST=0.0.0.0 - HSD_NETWORK=main - HSD_PORT=12037 env_file: - .env volumes: - ./docker/data/handshake/.hsd:/root/.hsd networks: shared: ipv4_address: 10.10.10.40 expose: - 12037 handshake-api: # uncomment "build" and comment out "image" to build from sources # build: # context: https://github.com/SkynetLabs/webportal-handshake-api.git#main # dockerfile: Dockerfile image: skynetlabs/webportal-handshake-api:0.1.1 container_name: handshake-api restart: unless-stopped logging: *default-logging environment: - HOSTNAME=0.0.0.0 - HSD_HOST=handshake - HSD_NETWORK=main - HSD_PORT=12037 env_file: - .env networks: shared: ipv4_address: 10.10.10.50 expose: - 3100 depends_on: - handshake dnslink-api: # uncomment "build" and comment out "image" to build from sources # build: # context: https://github.com/SkynetLabs/webportal-dnslink-api.git#main # dockerfile: Dockerfile image: skynetlabs/webportal-dnslink-api:0.1.1 container_name: dnslink-api restart: unless-stopped logging: *default-logging networks: shared: ipv4_address: 10.10.10.55 expose: - 3100 health-check: # uncomment "build" and comment out "image" to build from sources # build: # context: https://github.com/SkynetLabs/webportal-health-check.git#main # dockerfile: Dockerfile image: skynetlabs/webportal-health-check:0.2.0 container_name: health-check restart: unless-stopped logging: *default-logging volumes: - ./docker/data/health-check/state:/usr/app/state networks: shared: ipv4_address: 10.10.10.60 env_file: - .env environment: - HOSTNAME=0.0.0.0 - STATE_DIR=/usr/app/state expose: - 3100