Skip to main content

Docker Deployment

Deploy LusterCMS with Docker Compose.

docker-compose.yml

version: '3.8'

services:
backend:
build:
context: .
dockerfile: infrastructure/backend.Dockerfile
environment:
- DATABASE_URL=postgresql://postgres:postgres@db:5432/lustercms
- REDIS_URL=redis://redis:6379
- SECRET_KEY=${SECRET_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
ports:
- "8000:8000"
depends_on:
- db
- redis

frontend:
build:
context: .
dockerfile: infrastructure/frontend.Dockerfile
environment:
- NEXT_PUBLIC_API_URL=http://backend:8000
ports:
- "3000:3000"
depends_on:
- backend

collab:
build:
context: .
dockerfile: infrastructure/collab-websocket.Dockerfile
ports:
- "4000:4000"
depends_on:
- redis

db:
image: postgres:15
environment:
- POSTGRES_DB=lustercms
- POSTGRES_PASSWORD=postgres
volumes:
- postgres_data:/var/lib/postgresql/data

redis:
image: redis:7-alpine
volumes:
- redis_data:/data

volumes:
postgres_data:
redis_data:

Running

# Start all services
docker compose up -d

# View logs
docker compose logs -f

# Stop services
docker compose down

# Rebuild after changes
docker compose build
docker compose up -d

Environment Variables

Create .env file:

SECRET_KEY=your-secret-key-here
OPENAI_API_KEY=sk-...
DATABASE_URL=postgresql://postgres:postgres@db:5432/lustercms
REDIS_URL=redis://redis:6379

Health Checks

# Check service status
docker compose ps

# Check backend health
curl http://localhost:8000/health

# Check frontend
curl http://localhost:3000

Updating

# Pull latest changes
git pull

# Rebuild and restart
docker compose build
docker compose up -d

Troubleshooting

Container won't start

# Check logs
docker compose logs backend

# Check resources
docker stats

Database connection failed

# Verify database is running
docker compose ps db

# Check connection
docker exec -it infrastructure-db-1 psql -U postgres