sync: migrate aimaq-call-center deployment config to Gitea (2026-08-10)
This commit is contained in:
@@ -0,0 +1,212 @@
|
||||
name: aimaq-call-center
|
||||
|
||||
x-app-env: &app_env
|
||||
CC_DATA_DIR: /app/.data_local
|
||||
DATABASE_URL: postgresql+psycopg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
|
||||
SCHEMA_MANAGEMENT_MODE: migrations
|
||||
AUTH_SERVICE_URL: http://auth-service:8000
|
||||
AUDIT_SERVICE_URL: http://audit-service:8000
|
||||
CUSTOMER_SERVICE_URL: http://customer-service:8000
|
||||
INTERACTION_SERVICE_URL: http://interaction-service:8000
|
||||
VOICE_ADAPTER_SERVICE_URL: http://voice-adapter-service:8000
|
||||
RECORDING_SERVICE_URL: http://recording-service:8000
|
||||
ASTERISK_BRIDGE_SERVICE_URL: http://asterisk-bridge-service:8000
|
||||
SALES_SERVICE_URL: http://sales-service:8000
|
||||
REPORTING_SERVICE_URL: http://reporting-service:8000
|
||||
LOCAL_STACK_PUBLIC_BASE_URL: https://aimaq.konturai.kz
|
||||
ASTERISK_WEBRTC_WS_URL: wss://aimaq.konturai.kz/asterisk-ws
|
||||
ASTERISK_CALLCONTROL_ENABLED: "0"
|
||||
ASTERISK_IVR_FASTAGI_ENABLED: "0"
|
||||
ASTERISK_WEBRTC_ENABLED: "0"
|
||||
TELEGRAM_BOT_ENABLED: "0"
|
||||
AI_TELEGRAM_ENABLED: "0"
|
||||
WHATSAPP_OUTBOUND_ENABLED: "0"
|
||||
AI_WHATSAPP_ENABLED: "0"
|
||||
SALES_TELEGRAM_BRIDGE_ENABLED: "0"
|
||||
EVENT_BUS_ENABLED: "0"
|
||||
EVENT_BUS_CONSUMER_ENABLED: "0"
|
||||
AI_VOICE_ENABLED: "0"
|
||||
AI_VOICE_AUDIOSOCKET_ENABLED: "0"
|
||||
SALES_VOICE_RUNTIME_ENABLED: "1"
|
||||
ERROR_TELEGRAM_ALERTS: "0"
|
||||
|
||||
x-service-defaults: &service_defaults
|
||||
image: ${CALL_CENTER_IMAGE:-call-center-app:active-aimaq}
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ./.env.production
|
||||
environment:
|
||||
<<: *app_env
|
||||
volumes:
|
||||
- ./.data_local:/app/.data_local
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
container_name: aimaq-call-center-postgres
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ./.env
|
||||
volumes:
|
||||
- ./.data_pg:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB"
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 15s
|
||||
|
||||
migrate:
|
||||
<<: *service_defaults
|
||||
restart: "no"
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
command: ["python", "scripts/migrate_core_db.py"]
|
||||
|
||||
auth-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.auth_service.app:app
|
||||
|
||||
audit-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.audit_service.app:app
|
||||
|
||||
customer-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.customer_service.app:app
|
||||
|
||||
interaction-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.interaction_service.app:app
|
||||
|
||||
voice-adapter-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.voice_adapter_service.app:app
|
||||
|
||||
recording-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.recording_service.app:app
|
||||
CC_RECORDINGS_DIR: /app/.data_local/recordings
|
||||
RECORDING_MAX_BYTES: 26214400
|
||||
|
||||
reporting-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.reporting_service.app:app
|
||||
|
||||
sales-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.sales_service.app:app
|
||||
SALES_AUTOMATION_WORKER_ENABLED: "1"
|
||||
SALES_AUTOMATION_WORKER_INTERVAL_SECONDS: "5"
|
||||
SALES_POST_CALL_AI_ENABLED: "1"
|
||||
SALES_VOICE_RUNTIME_ENABLED: "1"
|
||||
SALES_TELEGRAM_BRIDGE_ENABLED: "0"
|
||||
|
||||
asterisk-bridge-service:
|
||||
<<: *service_defaults
|
||||
depends_on:
|
||||
- postgres
|
||||
- interaction-service
|
||||
- voice-adapter-service
|
||||
- sales-service
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: services.asterisk_bridge_service.app:app
|
||||
ASTERISK_BRIDGE_ENABLED: "1"
|
||||
ASTERISK_BRIDGE_FAILED_RETRY_ENABLED: "0"
|
||||
AI_VOICE_ENABLED: "0"
|
||||
SALES_VOICE_RUNTIME_ENABLED: "1"
|
||||
ports:
|
||||
- "8036:8000"
|
||||
|
||||
api-gateway:
|
||||
<<: *service_defaults
|
||||
container_name: aimaq-call-center-app
|
||||
depends_on:
|
||||
- auth-service
|
||||
- audit-service
|
||||
- customer-service
|
||||
- interaction-service
|
||||
- voice-adapter-service
|
||||
- recording-service
|
||||
- reporting-service
|
||||
- sales-service
|
||||
- asterisk-bridge-service
|
||||
environment:
|
||||
<<: *app_env
|
||||
APP_MODULE: gateway.app:app
|
||||
|
||||
frontend:
|
||||
image: ${CALL_CENTER_FRONTEND_IMAGE:-omnichannel-contact-center:active-aimaq}
|
||||
container_name: aimaq-call-center-frontend
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- api-gateway
|
||||
- voice-ai
|
||||
ports:
|
||||
- "127.0.0.1:3082:80"
|
||||
volumes:
|
||||
- ./frontend.nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
networks:
|
||||
- default
|
||||
- common_network
|
||||
|
||||
voice-ai:
|
||||
image: ${VOICE_AI_IMAGE:-voice-call-center-ai:active-aimaq}
|
||||
container_name: aimaq-voice-ai
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ./.env.voice-ai
|
||||
ports:
|
||||
# AudioSocket-шлюз для входящих звонков из Asterisk (хост-процесс)
|
||||
- "127.0.0.1:9094:9094"
|
||||
volumes:
|
||||
- /root/voice-call-center-ai/knowledge:/app/knowledge:ro
|
||||
# CALLERID входящего звонка: диалплан пишет <uuid>.callerid, шлюз читает и удаляет
|
||||
- /tmp/ainur-meta:/ainur-meta
|
||||
networks:
|
||||
- default
|
||||
- common_network
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: aimaq-call-center_default
|
||||
common_network:
|
||||
external: true
|
||||
Reference in New Issue
Block a user