Files
cemetery_infra/docker-compose.yml
2026-01-26 13:38:43 +03:00

82 lines
1.8 KiB
YAML

services:
db:
image: postgres:15
container_name: cemetery_db
restart: always
environment:
POSTGRES_DB: cemeterymap
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- web
backend:
build:
context: ../backend
image: ${BACKEND_IMAGE:-cemetery/backend:latest}
container_name: cemetery_backend
depends_on:
- db
environment:
ENVIRONMENT: production
DATABASE_URL: postgresql+psycopg2://postgres:${POSTGRES_PASSWORD:-postgres}@db:5432/cemeterymap
JWT_SECRET_KEY: ${JWT_SECRET_KEY:-change-me}
ADMIN_ORIGIN: ${ADMIN_ORIGIN:-https://cemeterymap.ru}
MOBILE_ORIGIN: ${MOBILE_ORIGIN:-http://localhost}
UPLOADS_GRAVES_DIR: /data/uploads/graves
UPLOADS_TEMP_DIR: /data/uploads/tmp
FCM_SERVER_KEY: ${FCM_SERVER_KEY:-}
volumes:
- uploads:/data/uploads
networks:
- web
ports:
- "127.0.0.1:8000:8000"
admin:
build:
context: ../admin
image: ${ADMIN_IMAGE:-cemetery/admin:latest}
container_name: cemetery_admin
networks:
- web
ports:
- "127.0.0.1:8081:80"
prometheus:
image: prom/prometheus:v2.54.1
container_name: cemetery_prometheus
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
ports:
- "9090:9090"
networks:
- web
grafana:
image: grafana/grafana:10.4.5
container_name: cemetery_grafana
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_USER:-admin}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin}
ports:
- "3001:3000"
networks:
- web
depends_on:
- prometheus
volumes:
postgres_data:
uploads:
networks:
web:
driver: bridge