-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
39 lines (36 loc) · 1.25 KB
/
docker-compose.yml
File metadata and controls
39 lines (36 loc) · 1.25 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
# Gridwolf - Simple Docker Setup (SQLite, no external dependencies)
# Usage: docker compose up --build
# UI: http://localhost:3000 | API: http://localhost:8000/docs
services:
backend:
build:
context: ./backend
dockerfile: ../Dockerfile.backend
ports:
- "8000:8000"
environment:
GRIDWOLF_DATABASE_URL: "sqlite+aiosqlite:///./data/gridwolf.db"
# No fallback: GRIDWOLF_SECRET_KEY must be supplied via environment or .env.
# Generate once with: python -c "import secrets; print(secrets.token_urlsafe(64))"
GRIDWOLF_SECRET_KEY: "${GRIDWOLF_SECRET_KEY:?GRIDWOLF_SECRET_KEY must be set — see .env.example}"
GRIDWOLF_CORS_ORIGINS: '["http://localhost:3000","http://localhost:5173","http://localhost:5174"]'
GRIDWOLF_DEBUG: "${GRIDWOLF_DEBUG:-false}"
volumes:
- gridwolf_data:/app/data
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 10s
timeout: 5s
retries: 5
start_period: 15s
frontend:
build:
context: .
dockerfile: Dockerfile.frontend
ports:
- "3000:80"
depends_on:
backend:
condition: service_healthy
volumes:
gridwolf_data: