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 logging: *default-logging environment: - SIA_MODULES=gctwra - SKYD_DISK_CACHE_ENABLED=${SKYD_DISK_CACHE_ENABLED:-false} - 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 caddy: build: context: ./docker/caddy dockerfile: Dockerfile container_name: caddy restart: unless-stopped logging: *default-logging env_file: - .env volumes: - ./docker/data/caddy/data:/data - ./docker/data/caddy/config:/config networks: shared: ipv4_address: 10.10.10.20 nginx: build: context: ./docker/nginx dockerfile: Dockerfile container_name: nginx restart: unless-stopped logging: *default-logging env_file: - .env environment: - SKYD_DISK_CACHE_ENABLED=${SKYD_DISK_CACHE_ENABLED:-false} 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/caddy/data:/data/caddy:ro networks: shared: ipv4_address: 10.10.10.30 ports: - "443:443" - "80:80" depends_on: - sia - caddy - handshake-api - dnslink-api - ipfs-api - website website: build: context: ./packages/website dockerfile: Dockerfile container_name: website restart: unless-stopped logging: *default-logging env_file: - .env networks: shared: ipv4_address: 10.10.10.35 expose: - 9000 handshake: build: context: ./docker/handshake dockerfile: Dockerfile 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: build: context: ./packages/handshake-api dockerfile: Dockerfile 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: build: context: ./packages/dnslink-api dockerfile: Dockerfile container_name: dnslink-api restart: unless-stopped logging: *default-logging networks: shared: ipv4_address: 10.10.10.55 expose: - 3100 health-check: build: context: ./packages/health-check dockerfile: Dockerfile 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 depends_on: - caddy ipfs-node: image: ipfs/go-ipfs container_name: ipfs-node restart: unless-stopped logging: *default-logging environment: - IPFS_PROFILE=server networks: shared: ipv4_address: 10.10.10.57 ipfs-api: build: context: ./packages/ipfs-api dockerfile: Dockerfile container_name: ipfs-api restart: unless-stopped logging: *default-logging env_file: - .env networks: shared: ipv4_address: 10.10.10.58 expose: - 3100 depends_on: - ipfs-mongo ipfs-mongo: image: mongo:4.4.1 container_name: ipfs-mongo restart: unless-stopped logging: *default-logging env_file: - .env environment: - MONGO_INITDB_ROOT_USERNAME=${IPFS_MONGO_USERNAME} - MONGO_INITDB_ROOT_PASSWORD=${IPFS_MONGO_PASSWORD} - MONGO_INITDB_DATABASE=ipfs-to-skynet volumes: - ./docker/data/ipfs-mongo/db:/data/db networks: shared: ipv4_address: 10.10.10.59 expose: - 27017