-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
123 lines (119 loc) · 4.21 KB
/
docker-compose.dev.yml
File metadata and controls
123 lines (119 loc) · 4.21 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
services:
# Django Backend
backend:
build:
context: ./backend
dockerfile: Dockerfile
image: ${BACKEND_IMAGE:-eceee-v4-backend}:latest
container_name: ${BACKEND_CONTAINER_NAME:-eceee-v4-backend}
restart: unless-stopped
environment:
- DEBUG=1
- DATABASE_URL=${DATABASE_URL:-postgresql://postgres:postgres@eceee-v4-db:5432/eceee_v4}
- POSTGRES_DB=${POSTGRES_DB:-eceee_v4}
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_HOST=${POSTGRES_HOST:-eceee-v4-db}
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
- ALLOWED_HOSTS=localhost,127.0.0.1,backend,frontend,testserver
- CORS_ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000,http://localhost:3001,http://127.0.0.1:3001
- CSRF_TRUSTED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000,http://localhost:3001,http://127.0.0.1:3001
- SECRET_KEY=dev-secret-key-change-in-production
- AWS_ACCESS_KEY_ID=minioadmin
- AWS_SECRET_ACCESS_KEY=minioadmin
- AWS_STORAGE_BUCKET_NAME=eceee-media
- AWS_S3_ENDPOINT_URL=${AWS_S3_ENDPOINT_URL:-http://eceee-v4-minio:9000}
- AWS_S3_REGION_NAME=us-east-1
- AWS_S3_USE_SSL=False
- REDIS_URL=${REDIS_URL:-redis://eceee-v4-redis:6379/0}
- IMGPROXY_URL=${IMGPROXY_URL:-http://eceee-v4-imgproxy:8080}
- IMGPROXY_PUBLIC_URL=${IMGPROXY_PUBLIC_URL:-http://localhost:8080}
- IMGPROXY_KEY=943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881
- IMGPROXY_SALT=520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- FM_PASSWORD=${FM_PASSWORD}
- POSTMARK_API_KEY=${POSTMARK_API_KEY}
- THEME_SYNC_ENABLED=True
networks:
- default
- eceee_shared
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./backend:/app
- ./.env:/app/.env
- backend_static:/app/staticfiles
- ./backend/media:/app/media
ports:
- "${BACKEND_PORT:-8000}:8000"
command: >
sh -c "python manage.py migrate &&
uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload --reload-include '*.html'"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health/"]
interval: 30s
timeout: 10s
retries: 3
# React Frontend
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
target: development
image: ${FRONTEND_IMAGE:-eceee-v4-frontend}:latest
container_name: ${FRONTEND_CONTAINER_NAME:-eceee-v4-frontend}
restart: unless-stopped
environment:
- REACT_APP_API_URL=${REACT_APP_API_URL:-http://localhost:8000/api}
- REACT_APP_BACKEND_URL=${REACT_APP_BACKEND_URL:-http://localhost:8000}
- VITE_WS_URL=${VITE_WS_URL:-ws://localhost:8000}
- VITE_BACKEND_URL=${VITE_BACKEND_URL:-http://backend:8000}
- VITE_IMGPROXY_URL=http://imgproxy:8080
- VITE_ENABLE_CONTEXT_MENU_TOGGLE=true
- CHOKIDAR_USEPOLLING=true
- WATCHPACK_POLLING=true
networks:
- default
- eceee_shared
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./frontend:/app
- frontend_node_modules:/app/node_modules
ports:
- "${FRONTEND_PORT:-3000}:3000"
command: npm run dev -- --host 0.0.0.0
stdin_open: true
tty: true
# Theme Sync Service
theme-sync:
build:
context: ./theme-sync
dockerfile: Dockerfile
image: ${THEME_SYNC_IMAGE:-eceee-v4-theme-sync}:latest
container_name: ${THEME_SYNC_CONTAINER_NAME:-eceee-v4-theme-sync}
restart: unless-stopped
networks:
- default
- eceee_shared
environment:
- BACKEND_URL=http://backend:8000
- TENANT_ID=default # Tenant identifier (required) - change to your tenant identifier
- SYNC_INTERVAL=5
- DEBOUNCE_DELAY=0.5
- THEMES_DIR=/themes
- API_TOKEN=8222521226c191dbba22b26b03b6ac417bdab4fe # JWT token from above
volumes:
- ./themes:/themes
- ./theme-sync:/app
command: python sync_service.py
volumes:
backend_static:
frontend_node_modules:
mcp_logs:
networks:
default:
eceee_shared:
external: true
name: eceee_shared_network