-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
104 lines (99 loc) · 2.96 KB
/
docker-compose.dev.yml
File metadata and controls
104 lines (99 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
services:
postgres:
image: postgres:15-alpine
container_name: financial-chat-postgres-dev
env_file:
- .env.dev
ports:
- "${POSTGRES_HOST_PORT:-5433}:5432"
volumes:
- postgres_data_dev:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-financial_user} -d ${POSTGRES_DB:-financial_chat}"]
interval: 10s
timeout: 5s
retries: 5
backend:
image: golang:1.24
container_name: financial-chat-backend-dev
working_dir: /workspace
env_file:
- .env.dev
environment:
PORT: 8081
# DATABASE_URL comes from .env.dev (loaded via env_file)
JWT_SECRET: ${JWT_SECRET:?set JWT_SECRET}
BACKEND_SHARED_SECRET: ${BACKEND_SHARED_SECRET:?set BACKEND_SHARED_SECRET}
PRIMARY_LLM: ${PRIMARY_LLM:-openai}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
OPENAI_MODEL: ${OPENAI_MODEL:-gpt-4}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
ANTHROPIC_MODEL: ${ANTHROPIC_MODEL:-claude-3-sonnet-20240229}
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
GEMINI_MODEL: ${GEMINI_MODEL:-gemini-1.5-flash}
command: sh -c "go mod download && go run ./backend/cmd/server/main.go"
volumes:
- ./:/workspace
- go_mod_cache:/go/pkg/mod
- go_build_cache:/root/.cache/go-build
ports:
- "${BACKEND_HOST_PORT:-8081}:8081"
depends_on:
postgres:
condition: service_healthy
frontend:
image: node:22
container_name: financial-chat-frontend-dev
working_dir: /workspace/frontend
env_file:
- .env.dev
environment:
NODE_ENV: development
NODE_OPTIONS: "--max-old-space-size=1024"
GO_BACKEND_URL: http://backend:8081
BACKEND_SHARED_SECRET: ${BACKEND_SHARED_SECRET:?set BACKEND_SHARED_SECRET}
BETTERAUTH_URL: ${BETTERAUTH_URL:-http://localhost:3001}
NEXT_PUBLIC_BETTERAUTH_URL: ""
NEXT_TELEMETRY_DISABLED: "1"
NODE_EXTRA_CA_CERTS: /workspace/supabase-ca-chain.pem
command: >
sh -c "corepack enable &&
corepack prepare pnpm@latest --activate &&
pnpm install --frozen-lockfile || pnpm install &&
pnpm dev --hostname 0.0.0.0 --port 3001"
ports:
- "3001:3001"
deploy:
resources:
limits:
memory: 1.5G
volumes:
- ./frontend:/workspace/frontend
- frontend_node_modules:/workspace/frontend/node_modules
- ./supabase-ca-chain.pem:/workspace/supabase-ca-chain.pem:ro
depends_on:
backend:
condition: service_started
caddy:
image: caddy:2-alpine
container_name: financial-chat-caddy-dev
ports:
- "80:80"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- frontend
- backend
restart: unless-stopped
volumes:
postgres_data_dev:
go_mod_cache:
go_build_cache:
frontend_node_modules:
caddy_data:
caddy_config:
networks:
default:
enable_ipv6: true