version: '3.8' services: postgres: image: postgres:15-alpine environment: POSTGRES_DB: ${POSTGRES_DB:-notebox} POSTGRES_USER: ${POSTGRES_USER:-notebox} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-notebox} TZ: 'UTC' # ports: # - "${POSTGRES_PORT:-5432}:5432" volumes: - postgres_data:/var/lib/postgresql/data networks: - notebox-network healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-notebox}"] interval: 10s timeout: 5s retries: 5 minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: ${S3_ACCESS_KEY:-minioadmin} MINIO_ROOT_PASSWORD: ${S3_SECRET_KEY:-minioadmin} ports: - "9100:9000" - "9101:9001" volumes: - minio_data:/data networks: - notebox-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 server: build: context: ./server dockerfile: Dockerfile environment: POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_DB: ${POSTGRES_DB:-notebox} POSTGRES_USER: ${POSTGRES_USER:-notebox} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-notebox} S3_ENDPOINT: http://minio:9000 S3_ACCESS_KEY: ${S3_ACCESS_KEY:-minioadmin} S3_SECRET_KEY: ${S3_SECRET_KEY:-minioadmin} S3_BUCKET: ${S3_BUCKET:-notebox-files} S3_REGION: ${S3_REGION:-us-east-1} SERVER_PORT: 8080 DEMO_MODE_ENABLED: ${DEMO_MODE_ENABLED:-true} CORS_ALLOWED_ORIGINS: "${CORS_ALLOWED_ORIGINS:-http://localhost:5173,http://localhost:3000},${TEST_ORIGIN:-}" # ports: # - "${SERVER_PORT:-8080}:8080" depends_on: postgres: condition: service_healthy minio: condition: service_healthy healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8080/api/config"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - notebox-network nginx: build: context: . dockerfile: nginx/Dockerfile args: VITE_BASE_PATH: ${VITE_BASE_PATH:-} VITE_API_URL: ${VITE_API_URL:-} ports: - "0:80" depends_on: server: condition: service_healthy networks: - notebox-network healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/"] interval: 30s timeout: 10s retries: 3 volumes: postgres_data: minio_data: networks: notebox-network: driver: bridge