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 environment: STRAPI_URL: http://cms:1337 STRAPI_API_TOKEN: ${STRAPI_API_TOKEN:-} NEXT_PUBLIC_STRAPI_URL: ${PUBLIC_STRAPI_URL:-http://localhost:1337} NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3000} ports: - "3000:3000" volumes: postgres_data: minio_data: