213 lines
6.0 KiB
YAML
213 lines
6.0 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: ota-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_USER}
|
|
- POSTGRES_PASSWORD=${POSTGRES_ROOT_PASS}
|
|
- POSTGRES_DB=postgres
|
|
- POSTGRES_PASS_PROD=${POSTGRES_PASS_PROD}
|
|
- POSTGRES_PASS_PREPROD=${POSTGRES_PASS_PREPROD}
|
|
- POSTGRES_PASS_OMNEX_CLI=${POSTGRES_PASS_OMNEX_CLI}
|
|
- POSTGRES_PASS_OMNEX_ADMIN=${POSTGRES_PASS_OMNEX_ADMIN}
|
|
- POSTGRES_PASS_MOBILE_PROD=${POSTGRES_PASS_MOBILE_PROD}
|
|
- POSTGRES_PASS_MOBILE_PREPROD=${POSTGRES_PASS_MOBILE_PREPROD}
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
- ./init-multi-db.sh:/docker-entrypoint-initdb.d/init-multi-db.sh:ro
|
|
networks:
|
|
- ota-net
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
ota-prod:
|
|
image: xaviaio/xavia-ota:latest
|
|
container_name: ota-prod
|
|
restart: unless-stopped
|
|
environment:
|
|
- HOST=https://ota-prod.uber-stup.club
|
|
- BLOB_STORAGE_TYPE=local
|
|
- DB_TYPE=postgres
|
|
- POSTGRES_USER=ota_prod
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASS_PROD}
|
|
- POSTGRES_DB=ota_prod
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- PRIVATE_KEY_BASE_64=${PRIVATE_KEY_PROD}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD_PROD}
|
|
- UPLOAD_KEY=${UPLOAD_KEY_PROD}
|
|
volumes:
|
|
- ota_prod_releases:/app/local-releases
|
|
networks:
|
|
- ota-net
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
ota-preprod:
|
|
image: xaviaio/xavia-ota:latest
|
|
container_name: ota-preprod
|
|
restart: unless-stopped
|
|
environment:
|
|
- HOST=https://ota-preprod.uber-stup.club
|
|
- BLOB_STORAGE_TYPE=local
|
|
- DB_TYPE=postgres
|
|
- POSTGRES_USER=ota_preprod
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASS_PREPROD}
|
|
- POSTGRES_DB=ota_preprod
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- PRIVATE_KEY_BASE_64=${PRIVATE_KEY_PREPROD}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD_PREPROD}
|
|
- UPLOAD_KEY=${UPLOAD_KEY_PREPROD}
|
|
volumes:
|
|
- ota_preprod_releases:/app/local-releases
|
|
networks:
|
|
- ota-net
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
ota-omnex-cli:
|
|
image: xaviaio/xavia-ota:latest
|
|
container_name: ota-omnex-cli
|
|
restart: unless-stopped
|
|
environment:
|
|
- HOST=https://ota-omnex-cli.uber-stup.club
|
|
- BLOB_STORAGE_TYPE=local
|
|
- DB_TYPE=postgres
|
|
- POSTGRES_USER=ota_omnex_cli
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASS_OMNEX_CLI}
|
|
- POSTGRES_DB=ota_omnex_cli
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- PRIVATE_KEY_BASE_64=${PRIVATE_KEY_OMNEX_CLI}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD_OMNEX_CLI}
|
|
- UPLOAD_KEY=${UPLOAD_KEY_OMNEX_CLI}
|
|
volumes:
|
|
- ota_omnex_cli_releases:/app/local-releases
|
|
networks:
|
|
- ota-net
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
ota-omnex-admin:
|
|
image: xaviaio/xavia-ota:latest
|
|
container_name: ota-omnex-admin
|
|
restart: unless-stopped
|
|
environment:
|
|
- HOST=https://ota-omnex-admin.uber-stup.club
|
|
- BLOB_STORAGE_TYPE=local
|
|
- DB_TYPE=postgres
|
|
- POSTGRES_USER=ota_omnex_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASS_OMNEX_ADMIN}
|
|
- POSTGRES_DB=ota_omnex_admin
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- PRIVATE_KEY_BASE_64=${PRIVATE_KEY_OMNEX_ADMIN}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD_OMNEX_ADMIN}
|
|
- UPLOAD_KEY=${UPLOAD_KEY_OMNEX_ADMIN}
|
|
volumes:
|
|
- ota_omnex_admin_releases:/app/local-releases
|
|
networks:
|
|
- ota-net
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
ota-mobile-prod:
|
|
image: xaviaio/xavia-ota:latest
|
|
container_name: ota-mobile-prod
|
|
restart: unless-stopped
|
|
environment:
|
|
- HOST=https://ota-mobile-prod.uber-stup.club
|
|
- BLOB_STORAGE_TYPE=local
|
|
- DB_TYPE=postgres
|
|
- POSTGRES_USER=ota_mobile_prod
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASS_MOBILE_PROD}
|
|
- POSTGRES_DB=ota_mobile_prod
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- PRIVATE_KEY_BASE_64=${PRIVATE_KEY_MOBILE_PROD}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD_MOBILE_PROD}
|
|
- UPLOAD_KEY=${UPLOAD_KEY_MOBILE_PROD}
|
|
volumes:
|
|
- ota_mobile_prod_releases:/app/local-releases
|
|
networks:
|
|
- ota-net
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
ota-mobile-preprod:
|
|
image: xaviaio/xavia-ota:latest
|
|
container_name: ota-mobile-preprod
|
|
restart: unless-stopped
|
|
environment:
|
|
- HOST=https://ota-mobile-preprod.uber-stup.club
|
|
- BLOB_STORAGE_TYPE=local
|
|
- DB_TYPE=postgres
|
|
- POSTGRES_USER=ota_mobile_preprod
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASS_MOBILE_PREPROD}
|
|
- POSTGRES_DB=ota_mobile_preprod
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- PRIVATE_KEY_BASE_64=${PRIVATE_KEY_MOBILE_PREPROD}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD_MOBILE_PREPROD}
|
|
- UPLOAD_KEY=${UPLOAD_KEY_MOBILE_PREPROD}
|
|
volumes:
|
|
- ota_mobile_preprod_releases:/app/local-releases
|
|
networks:
|
|
- ota-net
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: ota-nginx
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./certs:/etc/nginx/certs:ro
|
|
- certbot_www:/var/www/certbot:ro
|
|
networks:
|
|
- ota-net
|
|
depends_on:
|
|
- ota-prod
|
|
- ota-preprod
|
|
- ota-omnex-cli
|
|
- ota-omnex-admin
|
|
- ota-mobile-prod
|
|
- ota-mobile-preprod
|
|
|
|
dozzle-agent:
|
|
image: amir20/dozzle:latest
|
|
command: agent
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
ports:
|
|
- "0.0.0.0:7007:7007"
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
ota-net:
|
|
|
|
volumes:
|
|
postgres_data:
|
|
ota_prod_releases:
|
|
ota_preprod_releases:
|
|
ota_omnex_cli_releases:
|
|
ota_omnex_admin_releases:
|
|
ota_mobile_prod_releases:
|
|
ota_mobile_preprod_releases:
|
|
certbot_www:
|