services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: gearbox POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: gearbox volumes: - pgdata:/var/lib/postgresql/data - ./docker/init-logto-db.sql:/docker-entrypoint-initdb.d/init-logto-db.sql healthcheck: test: ["CMD-SHELL", "pg_isready -U gearbox"] interval: 10s timeout: 5s retries: 5 logto: image: svhd/logto:latest depends_on: postgres: condition: service_healthy entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"] ports: - "3001:3001" - "3002:3002" environment: TRUST_PROXY_HEADER: "1" DB_URL: postgres://gearbox:${POSTGRES_PASSWORD}@postgres:5432/logto ENDPOINT: ${LOGTO_ENDPOINT:-http://localhost:3001} ADMIN_ENDPOINT: ${LOGTO_ADMIN_ENDPOINT:-http://localhost:3002} app: image: gearbox:latest environment: DATABASE_URL: postgresql://gearbox:${POSTGRES_PASSWORD}@postgres:5432/gearbox GEARBOX_URL: ${GEARBOX_URL} OIDC_ISSUER: ${LOGTO_ENDPOINT:-http://localhost:3001}/oidc OIDC_CLIENT_ID: ${LOGTO_CLIENT_ID} OIDC_CLIENT_SECRET: ${LOGTO_CLIENT_SECRET} OIDC_AUTH_SECRET: ${OIDC_AUTH_SECRET} ports: - "3000:3000" depends_on: postgres: condition: service_healthy logto: condition: service_started volumes: - uploads:/app/uploads volumes: pgdata: uploads: