services: postgres: image: postgres:16-alpine environment: POSTGRES_DB: altdock POSTGRES_USER: altdock POSTGRES_PASSWORD: altdock ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U altdock -d altdock"] interval: 5s timeout: 5s retries: 10 minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin ports: - "9000:9000" - "9001:9001" volumes: - minio-data:/data minio-init: image: minio/mc:latest depends_on: - minio entrypoint: ["/bin/sh", "-c"] command: >- "until mc alias set local http://minio:9000 minioadmin minioadmin; do sleep 1; done; mc mb --ignore-existing local/altdock" api: image: node:22-bookworm working_dir: /workspace command: sh -c "npm install --no-audit --no-fund && npm run dev:api" environment: NODE_ENV: development PORT: 4000 PUBLIC_BASE_URL: http://localhost:4000 WEB_ORIGIN: http://localhost:3000 DATABASE_URL: postgres://altdock:altdock@postgres:5432/altdock STORAGE_MODE: s3 S3_ENDPOINT: http://minio:9000 S3_REGION: us-east-1 S3_BUCKET: altdock S3_ACCESS_KEY_ID: minioadmin S3_SECRET_ACCESS_KEY: minioadmin S3_FORCE_PATH_STYLE: "true" AUTH_MODE: demo PROCESS_INLINE: "false" ports: - "4000:4000" volumes: - .:/workspace depends_on: postgres: condition: service_healthy minio-init: condition: service_completed_successfully worker: image: node:22-bookworm working_dir: /workspace command: sh -c "npm install --no-audit --no-fund && npm run dev:worker" environment: NODE_ENV: development DATABASE_URL: postgres://altdock:altdock@postgres:5432/altdock STORAGE_MODE: s3 S3_ENDPOINT: http://minio:9000 S3_REGION: us-east-1 S3_BUCKET: altdock S3_ACCESS_KEY_ID: minioadmin S3_SECRET_ACCESS_KEY: minioadmin S3_FORCE_PATH_STYLE: "true" AUTH_MODE: demo PROCESS_INLINE: "false" volumes: - .:/workspace depends_on: api: condition: service_started web: image: node:22-bookworm working_dir: /workspace command: sh -c "npm install --no-audit --no-fund && npm run dev -- --host 0.0.0.0" environment: NEXT_PUBLIC_API_BASE_URL: http://localhost:4000 ports: - "3000:3000" volumes: - .:/workspace depends_on: - api volumes: postgres-data: minio-data: