services: postgres: image: postgis/postgis:15-3.3 restart: always volumes: - db_data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: postgrespassword ports: - "5433:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 start_period: 10s graphql-engine: image: hasura/graphql-engine:v2.47.0 ports: - "8080:8080" restart: always environment: HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres PG_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres HASURA_GRAPHQL_ENABLE_CONSOLE: "true" HASURA_GRAPHQL_DEV_MODE: "true" HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log HASURA_GRAPHQL_METADATA_DEFAULTS: '{"backend_configs":{"dataconnector":{"athena":{"uri":"http://data-connector-agent:8083/api/v1/athena"},"mariadb":{"uri":"http://data-connector-agent:8083/api/v1/mariadb"},"mysql8":{"uri":"http://data-connector-agent:8083/api/v1/mysql"},"oracle":{"uri":"http://data-connector-agent:8083/api/v1/oracle"},"snowflake":{"uri":"http://data-connector-agent:8083/api/v1/snowflake"}}}}' HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey depends_on: postgres: condition: service_healthy data-connector-agent: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/healthz"] interval: 5s timeout: 5s start_period: 10s data-connector-agent: image: hasura/graphql-data-connector:v2.47.0 restart: always ports: - "8083:8081" # Changed from 8081:8081 to 8083:8081 environment: QUARKUS_LOG_LEVEL: ERROR QUARKUS_OPENTELEMETRY_ENABLED: "false" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8081/api/v1/athena/health"] interval: 5s timeout: 10s retries: 5 start_period: 5s console: build: context: . dockerfile: Dockerfile ports: - "9693:9693" - "9695:9695" environment: # Fixed the port to match the GraphQL engine's actual port HASURA_GRAPHQL_ENDPOINT: http://graphql-engine:8080 HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey HASURA_RUN_CONSOLE: "true" volumes: - .:/usr/src/hasura depends_on: graphql-engine: condition: service_healthy webhook: build: context: ./webhook dockerfile: Dockerfile ports: - "8084:3000" environment: - NODE_ENV=development - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - AWS_REGION=${AWS_REGION} - S3_BUCKET=${S3_BUCKET} - FRONTEND_URL=http://localhost:3000 - NEXT_PUBLIC_HASURA_GRAPHQL_URL=http://graphql-engine:8080/v1/graphql - HASURA_GRAPHQL_ADMIN_SECRET=myadminsecretkey - SMTP_HOST=smtp.host.com - SMTP_PORT=465 - SMTP_SECURE=true - SMTP_USER=your-user - SMTP_PASS=your-password - SMTP_FROM=your-email@example.com volumes: - ./webhook:/usr/src/webhook - /usr/src/webhook/node_modules depends_on: - postgres - graphql-engine healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s volumes: db_data: