version: '3' services: mongodb: image: mongo container_name: mongodb logging: driver: 'none' environment: - PUID=1000 - PGID=1000 volumes: - mongodb:/data/db ports: - 27017:27017 restart: unless-stopped networks: - impler api: privileged: true image: 'ghcr.io/implerhq/impler/api:1.10.0' depends_on: - mongodb - rabbitmq container_name: api environment: NODE_ENV: ${NODE_ENV} PORT: ${API_PORT} WIDGET_BASE_URL: ${WIDGET_BASE_URL} WEB_BASE_URL: ${WEB_BASE_URL} MONGO_URL: ${MONGO_URL} S3_REGION: ${S3_REGION} S3_LOCAL_STACK: ${S3_LOCAL_STACK} S3_BUCKET_NAME: ${S3_BUCKET_NAME} STORAGE_TYPE: ${STORAGE_TYPE} AZURE_STORAGE_CONNECTION_STRING: ${AZURE_STORAGE_CONNECTION_STRING} AZURE_STORAGE_CONTAINER: ${AZURE_STORAGE_CONTAINER} JWT_SECRET: ${JWT_SECRET} COOKIE_DOMAIN: ${COOKIE_DOMAIN} RABBITMQ_CONN_URL: ${RABBITMQ_CONN_URL} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} GITHUB_OAUTH_CLIENT_ID: ${GITHUB_OAUTH_CLIENT_ID} GITHUB_OAUTH_CLIENT_SECRET: ${GITHUB_OAUTH_CLIENT_SECRET} GITHUB_OAUTH_REDIRECT: ${GITHUB_OAUTH_REDIRECT} SES_REGION: ${SES_REGION} SES_ACCESS_KEY_ID: ${SES_ACCESS_KEY_ID} SES_SECRET_ACCESS_KEY: ${SES_SECRET_ACCESS_KEY} EMAIL_FROM: ${EMAIL_FROM} EMAIL_FROM_NAME: ${EMAIL_FROM_NAME} ALERT_EMAIL_FROM: ${ALERT_EMAIL_FROM} LEAD_MAKE_WEBHOOK_URL: ${LEAD_MAKE_WEBHOOK_URL} ports: - '3000:3000' networks: - impler queue-manager: image: 'ghcr.io/implerhq/impler/queue-manager:1.10.0' depends_on: - api - rabbitmq container_name: queue-manager environment: NODE_ENV: ${NODE_ENV} MONGO_URL: ${MONGO_URL} RABBITMQ_CONN_URL: ${RABBITMQ_CONN_URL} API_ROOT_URL: ${API_ROOT_URL} S3_REGION: ${S3_REGION} S3_LOCAL_STACK: ${S3_LOCAL_STACK} S3_BUCKET_NAME: ${S3_BUCKET_NAME} STORAGE_TYPE: ${STORAGE_TYPE} AZURE_STORAGE_CONNECTION_STRING: ${AZURE_STORAGE_CONNECTION_STRING} AZURE_STORAGE_CONTAINER: ${AZURE_STORAGE_CONTAINER} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} SES_REGION: ${SES_REGION} SES_ACCESS_KEY_ID: ${SES_ACCESS_KEY_ID} SES_SECRET_ACCESS_KEY: ${SES_SECRET_ACCESS_KEY} EMAIL_FROM: ${EMAIL_FROM} EMAIL_FROM_NAME: ${EMAIL_FROM_NAME} ALERT_EMAIL_FROM: ${ALERT_EMAIL_FROM} networks: - impler widget: image: 'ghcr.io/implerhq/impler/widget:1.10.0' depends_on: - api container_name: widget environment: REACT_APP_API_URL: ${API_ROOT_URL} REACT_APP_SENTRY_DSN: ${SENTRY_DSN} REACT_APP_ENVIRONMENT: ${NODE_ENV} REACT_APP_AMPLITUDE_ID: ${AMPLITUDE_ID} REACT_APP_WEBSOCKET_SERVER_URL: ${WEBSOCKET_SERVER_URL} ports: - 3500:3500 networks: - impler embed: depends_on: - widget image: 'ghcr.io/implerhq/impler/embed:1.10.0' container_name: embed environment: WIDGET_URL: ${WIDGET_BASE_URL} ports: - 4701:4701 networks: - impler web: depends_on: - api image: 'ghcr.io/implerhq/impler/web:1.10.0' container_name: web environment: NEXT_PUBLIC_API_BASE_URL: ${API_ROOT_URL} NEXT_PUBLIC_EMBED_URL: ${WIDGET_EMBED_PATH} NEXT_PUBLIC_AMPLITUDE_ID: ${WEB_AMPLITUDE_ID} NEXT_PUBLIC_GTM_ID: ${NEXT_PUBLIC_GTM_ID} NEXT_PUBLIC_GOOGLE_ANALYTICS_ID: ${NEXT_PUBLIC_GOOGLE_ANALYTICS_ID} ports: - 4200:4200 networks: - impler rabbitmq: image: rabbitmq:3-alpine container_name: 'rabbitmq' restart: always ports: - 5672:5672 healthcheck: test: ['CMD', 'nc', '-z', 'localhost', '5672'] interval: 5s timeout: 15s retries: 1 networks: - impler minio: image: minio/minio volumes: - minio_data:/data environment: MINIO_ROOT_USER: impler MINIO_ROOT_PASSWORD: implers3cr3t ports: - 9000:9000 - 9001:9001 command: server /data --console-address ":9001" healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live'] interval: 30s timeout: 20s retries: 3 createbuckets: image: minio/mc depends_on: - minio entrypoint: > /bin/sh -c " /usr/bin/mc alias set myminio http://minio:9000 impler implers3cr3t; /usr/bin/mc mb myminio/impler; exit 0; " volumes: mongodb: ~ minio_data: ~ networks: impler: