# mappa — единый meta-сервис цеха (решения 1, 6, 17 спеки) # Прод: VDS рядом с общей БД (postgres:16, отдельная база mappa, свой role — решение 1). # HTTP-ядро + MCP-адаптер одним контейнером (dist). Endpoint: https://mappa.vds.kzntsv.site # Deploy: Portainer-managed (см. portainer-stack-management-vds). Env через Portainer (не env_file). services: mappa: image: registry.kzntsv.site/mappa:v0.43.0 container_name: mappa restart: unless-stopped mem_limit: 512m networks: - shared-dbs - proxy environment: DATABASE_URL: postgres://mappa:${MAPPA_DB_PASS}@postgres:5432/mappa MAPPA_GITEA_TOKEN: ${MAPPA_GITEA_TOKEN} MAPPA_API_TOKEN: ${MAPPA_API_TOKEN} MAPPA_EXPORT_ENABLED: ${MAPPA_EXPORT_ENABLED} MAPPA_EXPORT_DIR: ${MAPPA_EXPORT_DIR} # embedded sched (task:1651): инфра-джобы vitya (telemetry_aggregate/anomalies); git_index_sync — после task:1691 MAPPA_SCHED_RULES: ${MAPPA_SCHED_RULES} MAPPA_TELEMETRY_ANOMALY_RULES: ${MAPPA_TELEMETRY_ANOMALY_RULES} # per-repo таймаут git_index_sync (task:1288/1754): известные таймауты MoreThenCms/O_C-Phazerville MAPPA_GIT_INDEX_REPO_TIMEOUT_MS: ${MAPPA_GIT_INDEX_REPO_TIMEOUT_MS} volumes: # git-бэкап (task:1430): каталог экспорта = рабочая копия vds-mappa-backup на хосте - /root/vds-mappa-backup:/backup # MCP-сессии персистентные (task:1680/issue:15, v0.40.1): стор сессий # (/app/data/mcp-sessions.json) переживает редеплой контейнера - /root/vds-mappa-data:/app/data healthcheck: test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:8731/health"] interval: 15s timeout: 5s retries: 3 start_period: 10s labels: traefik.enable: "true" traefik.http.routers.mappa.entrypoints: websecure traefik.http.routers.mappa.rule: Host(`mappa.vds.kzntsv.site`) traefik.http.routers.mappa.tls.certresolver: letsEncrypt traefik.http.services.mappa.loadbalancer.server.port: "8731" networks: shared-dbs: external: true proxy: external: true