-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdocker-compose.prod.yml
More file actions
51 lines (49 loc) · 1.68 KB
/
docker-compose.prod.yml
File metadata and controls
51 lines (49 loc) · 1.68 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
services:
livereview-app:
image: git.apps.hexmos.com:5050/hexmos/livereview
container_name: livereview-app
ports:
- "${LIVEREVIEW_BACKEND_PORT:-8888}:8888" # Backend API
- "${LIVEREVIEW_FRONTEND_PORT:-8081}:8081" # Frontend UI
env_file:
- .env
environment:
- LIVEREVIEW_VERSION=${LIVEREVIEW_VERSION:-production}
- DATABASE_URL=${DATABASE_URL:-postgres://livereview:${DB_PASSWORD}@livereview-db:5432/livereview?sslmode=disable}
# Minimal, customer-facing settings
- LIVEREVIEW_BACKEND_PORT=${LIVEREVIEW_BACKEND_PORT:-8888}
- LIVEREVIEW_FRONTEND_PORT=${LIVEREVIEW_FRONTEND_PORT:-8081}
- LIVEREVIEW_REVERSE_PROXY=${LIVEREVIEW_REVERSE_PROXY:-false}
depends_on:
livereview-db:
condition: service_healthy
volumes:
# Mount .env file as read-only
- ./.env:/app/.env:ro
# Mount entire lrdata directory for persistence
- ./lrdata:/app/lrdata
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8888/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
livereview-db:
image: postgres:15-alpine
container_name: livereview-db
environment:
- POSTGRES_USER=livereview
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=livereview
volumes:
- ./lrdata/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U livereview -d livereview"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
restart: unless-stopped
# Don't expose database port to host for security
# No volumes section needed since we're using bind mounts