117 lines
3.3 KiB
YAML
117 lines
3.3 KiB
YAML
services:
|
|
caddy-prod-b:
|
|
image: caddy:2-alpine
|
|
container_name: caddy-prod-b
|
|
restart: unless-stopped
|
|
environment:
|
|
BASE_DOMAIN: ${BASE_DOMAIN}
|
|
FRONTEND_UPSTREAM: frontend-prod-b:3000
|
|
BACKEND_UPSTREAM: backend-prod-b:8081
|
|
FINE_TUNE_UPSTREAM: fine-tune-helper-prod-b:4310
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./Caddyfile.prod-b:/etc/caddy/Caddyfile:ro
|
|
- BoostAI_caddy_data_prod_b:/data
|
|
- BoostAI_caddy_config_prod_b:/config
|
|
depends_on:
|
|
backend-prod-b:
|
|
condition: service_healthy
|
|
frontend-prod-b:
|
|
condition: service_started
|
|
fine-tune-helper-prod-b:
|
|
condition: service_healthy
|
|
|
|
backend-prod-b:
|
|
image: boost-ai/demo-backend-prod-b:${PROD_B_TAG:-latest}
|
|
container_name: backend-prod-b
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ${PROD_B_ENV_FILE:-.env.prod-b}
|
|
environment:
|
|
GO_ENV: production
|
|
BACKEND_INTERNAL_PORT: 8081
|
|
ALLOWED_ORIGINS: http://${BASE_DOMAIN},https://${BASE_DOMAIN}
|
|
DATABASE_URL: postgres://boostai:${POSTGRES_PASSWORD}@postgres-prod-b:5432/boostai?sslmode=disable
|
|
JWT_SECRET: ${JWT_SECRET}
|
|
SESSION_COOKIE_NAME: ${SESSION_COOKIE_NAME:-boostai_session}
|
|
depends_on:
|
|
postgres-prod-b:
|
|
condition: service_healthy
|
|
expose:
|
|
- "8081"
|
|
volumes:
|
|
- ./Mock-Data:/app/Mock-Data:ro
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8081/health"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 15s
|
|
|
|
frontend-prod-b:
|
|
image: boost-ai/demo-frontend-prod-b:${PROD_B_TAG:-latest}
|
|
container_name: frontend-prod-b
|
|
restart: unless-stopped
|
|
environment:
|
|
NODE_ENV: production
|
|
HOST: 0.0.0.0
|
|
PORT: 3000
|
|
NITRO_HOST: 0.0.0.0
|
|
NITRO_PORT: 3000
|
|
ALLOWED_HOSTS: ${BASE_DOMAIN}
|
|
__VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS: ${BASE_DOMAIN}
|
|
expose:
|
|
- "3000"
|
|
|
|
fine-tune-helper-prod-b:
|
|
image: node:22-alpine
|
|
container_name: fine-tune-helper-prod-b
|
|
restart: unless-stopped
|
|
working_dir: /app
|
|
command: sh -lc "npm ci && npm run start"
|
|
env_file:
|
|
- ${PROD_B_ENV_FILE:-.env.prod-b}
|
|
environment:
|
|
PORT: 4310
|
|
HOST: 0.0.0.0
|
|
FINE_TUNE_AI_ENDPOINT: ${FINE_TUNE_AI_ENDPOINT}
|
|
FINE_TUNE_AI_API_KEY: ${FINE_TUNE_AI_API_KEY}
|
|
FINE_TUNE_AI_MODEL: ${FINE_TUNE_AI_MODEL}
|
|
FINE_TUNE_BACKEND_URL: ${FINE_TUNE_BACKEND_URL}
|
|
FINE_TUNE_BACKEND_TOKEN: ${FINE_TUNE_BACKEND_TOKEN}
|
|
expose:
|
|
- "4310"
|
|
volumes:
|
|
- ./FineTune:/app
|
|
- BoostAI_fine_tune_node_modules_prod_b:/app/node_modules
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:4310/health"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 15s
|
|
|
|
postgres-prod-b:
|
|
image: postgres:16-alpine
|
|
container_name: postgres-prod-b
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: boostai
|
|
POSTGRES_USER: boostai
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- BoostAI_postgres_prod_b_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U boostai -d boostai"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
volumes:
|
|
BoostAI_postgres_prod_b_data:
|
|
BoostAI_caddy_data_prod_b:
|
|
BoostAI_caddy_config_prod_b:
|
|
BoostAI_fine_tune_node_modules_prod_b:
|