name: idswyft-community services: api: cpus: 1 depends_on: engine: condition: service_healthy required: true postgres: condition: service_healthy required: true environment: API_KEY_SECRET: 5N8Q2R7T1V4X9Z3A6C0D5E8F2G7H1J4K AWS_ACCESS_KEY_ID: your_aws_key AWS_REGION: us-east-1 AWS_S3_BUCKET: idswyft-documents AWS_SECRET_ACCESS_KEY: your_aws_secret CORS_ORIGINS: http://localhost:5173,http://localhost:3000,https://customer.idswyft.app,https://idswyft.app,https://www.idswyft.app DATABASE_SSL: "" DATABASE_SSL_REJECT_UNAUTHORIZED: "" DATABASE_URL: postgresql://idswyft:changeme-in-production@postgres:5432/idswyft ENCRYPTION_KEY: 7A3D9F2H6K1M5P8R4T0V7X2Z9B3C6E1G ENGINE_URL: http://engine:3002 JWT_SECRET: 8F7K2P9X4M6N1Q5R3T8V0Z7A2B4C6D8 MIGRATIONS_LENIENT: "true" NODE_ENV: production PORT: "3001" RATE_LIMIT_ENABLED: "true" SANDBOX_MODE: "true" SERVICE_TOKEN: 9X4V1R7K2P8M5A3D6F0H2J9L4N7Q1T8W6Y8Z0A2B4C6D8E1F3G5H7J9K1L3M5 STORAGE_PROVIDER: supabase WATCHTOWER_API_TOKEN: "" healthcheck: test: - CMD - wget - -qO- - http://localhost:3001/health timeout: 10s interval: 30s retries: 3 start_period: 40s image: ghcr.io/team-idswyft/idswyft-api:latest labels: com.centurylinklabs.watchtower.enable: "true" mem_limit: "1073741824" networks: default: null restart: unless-stopped volumes: - type: volume source: uploads target: /app/backend/uploads volume: {} - type: volume source: temp target: /app/backend/temp volume: {} - type: bind source: C:\idswyft-community\supabase\migrations target: /app/backend/migrations read_only: true bind: {} engine: cpus: 2 environment: LOG_LEVEL: info NODE_ENV: production PORT: "3002" healthcheck: test: - CMD - wget - -qO- - http://localhost:3002/health timeout: 10s interval: 30s retries: 3 start_period: 1m0s image: ghcr.io/team-idswyft/idswyft-engine:latest labels: com.centurylinklabs.watchtower.enable: "true" mem_limit: "2147483648" networks: default: null restart: unless-stopped frontend: cpus: 0.5 depends_on: api: condition: service_started required: true image: ghcr.io/team-idswyft/idswyft-frontend:latest labels: com.centurylinklabs.watchtower.enable: "true" mem_limit: "268435456" networks: default: null ports: - mode: ingress target: 8080 published: "80" protocol: tcp restart: unless-stopped postgres: environment: POSTGRES_DB: idswyft POSTGRES_PASSWORD: changeme-in-production POSTGRES_USER: idswyft healthcheck: test: - CMD-SHELL - PGPASSWORD=changeme-in-production psql -U idswyft -d idswyft -c 'SELECT 1' >/dev/null 2>&1 timeout: 5s interval: 5s retries: 5 image: postgres:16-alpine labels: com.centurylinklabs.watchtower.enable: "false" mem_limit: "1073741824" networks: default: null restart: unless-stopped volumes: - type: volume source: pgdata target: /var/lib/postgresql/data volume: {} networks: default: name: idswyft-community_default volumes: pgdata: name: idswyft-community_pgdata temp: name: idswyft-community_temp uploads: name: idswyft-community_uploads