Skip to Content
DeploymentDocker Setup

Docker Setup

The Curate-Me platform uses Docker Compose for both local development and production deployment. The production configuration is defined in docker-compose.production.yml at the repository root.

Services Overview

ServiceImagePortDescription
mongomongo:727017 (internal)MongoDB database
redisredis:7-alpine6379 (internal)Redis cache and message broker
gatewayCustom8002AI Gateway — LLM proxy + governance chain
backend-b2bCustom8001B2B Dashboard API
celery-workerCustomBackground task worker
celery-beatCustomScheduled task scheduler
dashboardCustom3001Next.js ops console
docsCustom3003Nextra documentation site
caddycaddy:2-alpine80, 443Reverse proxy with auto HTTPS

Building Images

Build all service images:

docker compose -f docker-compose.production.yml build

Build a specific service:

docker compose -f docker-compose.production.yml build gateway docker compose -f docker-compose.production.yml build dashboard

Force a clean rebuild without cache:

docker compose -f docker-compose.production.yml build --no-cache

Running Services

Start all services in detached mode:

docker compose -f docker-compose.production.yml up -d

Start specific services:

docker compose -f docker-compose.production.yml up -d gateway backend-b2b

Stop all services:

docker compose -f docker-compose.production.yml down

Stop and remove volumes (destroys data):

docker compose -f docker-compose.production.yml down -v

Viewing Logs

Tail logs for all services:

docker compose -f docker-compose.production.yml logs -f

Tail logs for a specific service:

docker compose -f docker-compose.production.yml logs -f gateway docker compose -f docker-compose.production.yml logs -f backend-b2b docker compose -f docker-compose.production.yml logs -f caddy

View the last 100 lines:

docker compose -f docker-compose.production.yml logs --tail=100 gateway

Health Checks

All services include built-in Docker health checks. Check the health status of running containers:

docker compose -f docker-compose.production.yml ps

The STATUS column shows healthy, unhealthy, or starting for each service.

Individual service health check endpoints:

ServiceHealth Endpoint
gatewayGET /health
backend-b2bGET /api/v1/health
dashboardGET /api/health
mongomongosh --eval "db.runCommand('ping')"
redisredis-cli ping

Resource Requirements

Recommended minimums for production:

ResourceMinimumRecommended
CPU2 cores4 cores
RAM4 GB8 GB
Disk20 GB50 GB

Networking

All services communicate over an internal Docker network. Only Caddy exposes ports 80 and 443 to the host. Database and cache services are not accessible from outside the Docker network.

networks: curateme: driver: bridge

Persistent Volumes

Data is persisted across container restarts using Docker volumes:

VolumeServiceMount Point
mongo-datamongo/data/db
redis-dataredis/data
caddy-datacaddy/data
caddy-configcaddy/config