version: '3' services: client: container_name: client image: ghcr.io/rolling-scopes/rsschool-app-client:master ports: - 8081:8080 environment: RS_HOST: ${RS_HOST} RSSHCOOL_UI_GCP_MAPS_API_KEY: ${RSSHCOOL_UI_GCP_MAPS_API_KEY} restart: on-failure depends_on: - nestjs networks: - shared-network nestjs: container_name: nestjs image: ghcr.io/rolling-scopes/rsschool-app-nestjs:master ports: - 8082:8080 environment: RSSHCOOL_HOST: ${RS_HOST} RSSHCOOL_PG_HOST: ${RSSHCOOL_PG_HOST} RSSHCOOL_PG_USERNAME: ${RSSHCOOL_PG_USERNAME} RSSHCOOL_PG_PASSWORD: ${RSSHCOOL_PG_PASSWORD} RSSHCOOL_PG_DATABASE: ${RSSHCOOL_PG_DATABASE} RSSHCOOL_USERS_ADMINS: 'apalchys,dzmitry-varabei,mikhama,sonejka,aaliakseyenka,anik188,alreadybored' RSSHCOOL_USERS_HIRERS: ${RSSHCOOL_USERS_HIRERS} RSSHCOOL_AUTH_GITHUB_CALLBACK: ${RSSHCOOL_API_AUTH_CALLBACK} RSSHCOOL_AUTH_GITHUB_CLIENT_ID: ${RSSHCOOL_API_AUTH_CLIENT_ID} RSSHCOOL_AUTH_GITHUB_CLIENT_SECRET: ${RSSHCOOL_API_AUTH_CLIENT_SECRET} RSSHCOOL_AUTH_GITHUB_WEBHOOK_ACTIVITY_SECRET: ${RSSHCOOL_AUTH_GITHUB_WEBHOOK_ACTIVITY_SECRET} RSSHCOOL_AUTH_JWT_SECRET_KEY: ${RSSHCOOL_API_SESSION_KEY} RSSHCOOL_AUTH_GITHUB_INTEGRATION_SITE_TOKEN: ${RSSHCOOL_AUTH_GITHUB_INTEGRATION_SITE_TOKEN} RSSHCOOL_AWS_SECRET_ACCESS_KEY: ${RSSHCOOL_API_AWS_SECRET_ACCESS_KEY} RSSHCOOL_AWS_ACCESS_KEY_ID: ${RSSHCOOL_API_AWS_ACCESS_KEY_ID} RSSHCOOL_AWS_REGION: ${RSSHCOOL_AWS_REGION} RSSHCOOL_AWS_REST_API_URL: ${RSSHCOOL_AWS_REST_API_URL} RSSHCOOL_AWS_REST_API_KEY: ${RSSHCOOL_AWS_REST_API_KEY} RSSHCOOL_USERS_CLOUD_USERNAME: ${RSSHCOOL_USERS_CLOUD_USERNAME} RSSHCOOL_USERS_CLOUD_PASSWORD: ${RSSHCOOL_USERS_CLOUD_PASSWORD} RSSHCOOL_OPENAI_API_KEY: ${RSSHCOOL_OPENAI_API_KEY} SENTRY_DSN: ${SENTRY_DSN} restart: on-failure networks: - shared-network logging: driver: awslogs options: awslogs-region: eu-central-1 awslogs-group: rsschool-app awslogs-stream: nestjs awslogs-create-group: 'true' nginx: container_name: nginx image: nginx:1.30.6-alpine restart: unless-stopped logging: driver: awslogs options: awslogs-region: eu-central-1 awslogs-group: rsschool-app awslogs-stream: nginx awslogs-create-group: 'true' volumes: - ./nginx:/etc/nginx - ./letsencrypt:/etc/letsencrypt - ./certbot:/var/www/certbot command: '/bin/sh -c ''while :; do sleep 12h & wait $${!}; nginx -s reload; done & nginx -g "daemon off;"''' ports: - 80:8080 - 443:443 networks: - shared-network depends_on: - client - nestjs certbot: container_name: certbot image: certbot/certbot restart: unless-stopped volumes: - ./letsencrypt:/etc/letsencrypt - ./certbot:/var/www/certbot entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; sleep 12h & wait $${!}; done;'" depends_on: - nginx networks: shared-network: