138 lines
4.2 KiB
YAML
138 lines
4.2 KiB
YAML
name: urmi
|
|
|
|
services:
|
|
frontend:
|
|
build: ./frontend
|
|
ports:
|
|
- "5173:5173"
|
|
environment:
|
|
VITE_API_URL: ${VITE_API_URL:-}
|
|
VITE_PROXY_TARGET: http://backend:8000
|
|
volumes:
|
|
- ./frontend/src:/app/src
|
|
- ./frontend/public:/app/public
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
|
|
backend:
|
|
build: ./backend
|
|
ports:
|
|
- "8000:8000"
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
environment:
|
|
DATABASE_URL: postgresql+psycopg://urmi:urmi@postgres:5432/urmi
|
|
REDIS_URL: ${REDIS_URL:-redis://redis:6379/0}
|
|
ENVIRONMENT: ${ENVIRONMENT:-development}
|
|
FRONTEND_ORIGIN: ${FRONTEND_ORIGIN:-http://localhost:5173}
|
|
CORS_ORIGINS: ${CORS_ORIGINS:-}
|
|
AUTH_SECRET: ${AUTH_SECRET:-urmi-local-development-secret-change-me}
|
|
AUTH_COOKIE_SECURE: ${AUTH_COOKIE_SECURE:-false}
|
|
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
|
|
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
|
|
GOOGLE_REDIRECT_URI: ${GOOGLE_REDIRECT_URI:-http://localhost:8000/api/v1/auth/google/callback}
|
|
ADMIN_USERNAME: ${ADMIN_USERNAME:-root}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-Nishtha#01}
|
|
ULTRONSMS_BASE_URL: ${ULTRONSMS_BASE_URL:-https://ultronsms.com}
|
|
ULTRONSMS_USER: ${ULTRONSMS_USER:-}
|
|
ULTRONSMS_PASSWORD: ${ULTRONSMS_PASSWORD:-}
|
|
BONVOICE_TOKEN: ${BONVOICE_TOKEN:-}
|
|
BONVOICE_API_URL: ${BONVOICE_API_URL:-https://backend.pbx.bonvoice.com/autoDialManagement/autoCallBridging/}
|
|
BONVOICE_MEDIA_ALLOWLIST: ${BONVOICE_MEDIA_ALLOWLIST:-103.131.25.5}
|
|
VOICE_RELAY_PUBLIC_URL: ${VOICE_RELAY_PUBLIC_URL:-ws://localhost:8000/api/v1/voice}
|
|
PUBLIC_API_BASE_URL: ${PUBLIC_API_BASE_URL:-}
|
|
WHATSAPP_VERIFY_TOKEN: ${WHATSAPP_VERIFY_TOKEN:-}
|
|
WHATSAPP_APP_SECRET: ${WHATSAPP_APP_SECRET:-}
|
|
WHATSAPP_ACCESS_TOKEN: ${WHATSAPP_ACCESS_TOKEN:-}
|
|
WHATSAPP_PHONE_NUMBER_ID: ${WHATSAPP_PHONE_NUMBER_ID:-}
|
|
WHATSAPP_BUSINESS_ACCOUNT_ID: ${WHATSAPP_BUSINESS_ACCOUNT_ID:-}
|
|
META_APP_ID: ${META_APP_ID:-}
|
|
WHATSAPP_API_VERSION: ${WHATSAPP_API_VERSION:-v21.0}
|
|
UPLOAD_DIR: uploads
|
|
KYC_TEMPLATE_PATH: assets/kyc-template.docx
|
|
volumes:
|
|
- ./data/uploads:/app/uploads
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 10
|
|
|
|
postgres:
|
|
image: postgres:17-alpine
|
|
environment:
|
|
POSTGRES_DB: urmi
|
|
POSTGRES_USER: urmi
|
|
POSTGRES_PASSWORD: urmi
|
|
ports:
|
|
- "5433:5432"
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
- ./database/init:/docker-entrypoint-initdb.d:ro
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U urmi -d urmi"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: redis:8-alpine
|
|
command: redis-server --appendonly yes
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
kafka:
|
|
image: bitnami/kafka:4.0
|
|
profiles: ["data-plane"]
|
|
ports:
|
|
- "9092:9092"
|
|
environment:
|
|
KAFKA_CFG_NODE_ID: 0
|
|
KAFKA_CFG_PROCESS_ROLES: controller,broker
|
|
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@kafka:9093
|
|
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
|
|
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
|
|
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
|
|
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
|
volumes:
|
|
- kafka_data:/bitnami/kafka
|
|
|
|
clickhouse:
|
|
image: clickhouse/clickhouse-server:25
|
|
profiles: ["analytics"]
|
|
ports:
|
|
- "8123:8123"
|
|
- "9000:9000"
|
|
volumes:
|
|
- clickhouse_data:/var/lib/clickhouse
|
|
|
|
minio:
|
|
image: minio/minio:latest
|
|
profiles: ["object-storage"]
|
|
command: server /data --console-address ":9001"
|
|
environment:
|
|
MINIO_ROOT_USER: urmi
|
|
MINIO_ROOT_PASSWORD: urmi-development-only
|
|
ports:
|
|
- "9001:9001"
|
|
- "9002:9000"
|
|
volumes:
|
|
- object_data:/data
|
|
|
|
volumes:
|
|
postgres_data:
|
|
redis_data:
|
|
kafka_data:
|
|
clickhouse_data:
|
|
object_data:
|