services: postgres: image: postgres:16-alpine restart: unless-stopped volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: ${DATABASE_NAME:-afterlife} POSTGRES_USER: ${DATABASE_USERNAME:-afterlife} POSTGRES_PASSWORD: ${DATABASE_PASSWORD:-afterlife} ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DATABASE_USERNAME:-afterlife}"] interval: 5s timeout: 5s retries: 5 minio: image: minio/minio:latest restart: unless-stopped command: server /data --console-address ":9001" volumes: - minio_data:/data environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-afterlife} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-afterlife123} ports: - "9000:9000" - "9001:9001" cms: build: context: ../apps/cms dockerfile: Dockerfile restart: unless-stopped depends_on: postgres: condition: service_healthy environment: HOST: 0.0.0.0 PORT: 1337 DATABASE_HOST: postgres DATABASE_PORT: 5432 DATABASE_NAME: ${DATABASE_NAME:-afterlife} DATABASE_USERNAME: ${DATABASE_USERNAME:-afterlife} DATABASE_PASSWORD: ${DATABASE_PASSWORD:-afterlife} APP_KEYS: ${APP_KEYS} API_TOKEN_SALT: ${API_TOKEN_SALT} ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET} TRANSFER_TOKEN_SALT: ${TRANSFER_TOKEN_SALT} JWT_SECRET: ${JWT_SECRET} ports: - "1337:1337" web: build: context: ../ dockerfile: apps/web/Dockerfile restart: unless-stopped depends_on: - cms - afc-bridge environment: STRAPI_URL: http://cms:1337 STRAPI_API_TOKEN: ${STRAPI_API_TOKEN:-} NEXT_PUBLIC_STRAPI_URL: ${PUBLIC_STRAPI_URL:-http://localhost:1337} AFC_BRIDGE_URL: http://afc-bridge:3001 AFC_BRIDGE_SECRET: ${AFC_BRIDGE_SECRET} MERCADOPAGO_ACCESS_TOKEN: ${MERCADOPAGO_ACCESS_TOKEN:-} MERCADOPAGO_WEBHOOK_SECRET: ${MERCADOPAGO_WEBHOOK_SECRET:-} MERCADOPAGO_WEBHOOK_URL: ${MERCADOPAGO_WEBHOOK_URL:-} AFC_PRICE_MXN: ${AFC_PRICE_MXN:-15} NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3000} ports: - "3000:3000" cloudflare-ddns: image: favonia/cloudflare-ddns:latest restart: unless-stopped environment: CF_API_TOKEN: ${CF_API_TOKEN} DOMAINS: ${PUBLIC_HOST:-play.consultoria-as.com} PROXIED: "false" IP6_PROVIDER: none openfusion: build: context: ../servers/openfusion dockerfile: Dockerfile restart: unless-stopped environment: SHARD_IP: 192.168.10.234 MOTD: ${OPENFUSION_MOTD:-Bienvenido a Project Afterlife - FusionFall Academy} ports: - "23000:23000" - "23001:23001" volumes: - openfusion_data:/usr/src/app/data minecraft-ftb: image: itzg/minecraft-server:java21 restart: unless-stopped container_name: minecraft-ftb environment: EULA: "TRUE" TYPE: FTBA FTB_MODPACK_ID: 125 FTB_MODPACK_VERSION_ID: 100181 MEMORY: 6G MAX_MEMORY: 6G MOTD: "Project Afterlife - FTB Evolution" DIFFICULTY: normal MAX_PLAYERS: 20 VIEW_DISTANCE: 10 ENABLE_COMMAND_BLOCK: "true" MAX_TICK_TIME: -1 ports: - "25565:25565" volumes: - minecraft_ftb_data:/data deploy: resources: limits: memory: 8G geth: build: context: ../blockchain dockerfile: Dockerfile restart: unless-stopped environment: ADMIN_PRIVATE_KEY: ${AFC_ADMIN_PRIVATE_KEY} ADMIN_ADDRESS: ${AFC_ADMIN_ADDRESS} ports: - "8545:8545" - "8546:8546" volumes: - geth_data:/data deploy: resources: limits: memory: 1G rpc-ssl: image: nginx:alpine restart: unless-stopped depends_on: - geth volumes: - ./nginx/rpc-ssl.conf:/etc/nginx/nginx.conf:ro - certbot_etc:/etc/letsencrypt:ro ports: - "8443:8443" afc-bridge: build: context: ../services/afc-bridge dockerfile: Dockerfile restart: unless-stopped depends_on: - geth environment: GETH_RPC_URL: http://geth:8545 ADMIN_PRIVATE_KEY: ${AFC_ADMIN_PRIVATE_KEY} BRIDGE_SECRET: ${AFC_BRIDGE_SECRET} PORT: 3001 DB_PATH: /data/bridge.db GAS_FUND_AMOUNT: "0.01" ports: - "3001:3001" volumes: - afc_bridge_data:/data sm64coopdx: build: context: ../servers/sm64coopdx dockerfile: Dockerfile restart: unless-stopped container_name: sm64coopdx environment: SM64_PORT: ${SM64_PORT:-7777} SM64_PLAYERS: ${SM64_PLAYERS:-16} ports: - "7777:7777/udp" volumes: - sm64_save:/server/save - sm64_mods:/server/mods deploy: resources: limits: memory: 2G volumes: postgres_data: minio_data: openfusion_data: minecraft_ftb_data: geth_data: afc_bridge_data: sm64_save: sm64_mods: certbot_etc: external: true name: docker_certbot_etc