Files
ansible-mln/monitoring/ota/docker-compose.yml
T
2026-08-08 12:04:57 +02:00

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: