Skip to main content

Docker Compose Deployment

Deploy EUDIPLO using Docker Compose for local development, testing, and small-scale deployments.

Quick Start

From the repository root:

# Create environment file
cp .env.example .env

# Start services
docker compose up -d

# Access the API
curl http://localhost:3000/health

Access points:

For the complete Docker Compose deployment guide including minimal, standard, and full presets, see the Server Setup Cookbook.

Deployment Presets

EUDIPLO offers three Docker Compose deployment options:

PresetDatabaseStorageKey ManagementProduction Ready
MinimalSQLiteLocal filesystemDatabase-backed⚠️ Limited
StandardPostgreSQLS3 via local MinIODatabase-backed✅ Yes (small)
FullPostgreSQLS3 via local MinIOVault✅ Yes

Environment Variables

Essential configuration for all presets:

# Public URL (for OAuth redirects)
PUBLIC_URL=http://localhost:3000

# Environment
NODE_ENV=production

# Application Secrets
MASTER_SECRET=your-secret-jwt-key-change-in-production
AUTH_CLIENT_ID=your-client-id
AUTH_CLIENT_SECRET=your-client-secret
Security Warning

Never use default credentials in production! Change all passwords, tokens, and secrets before deploying.

Full Deployment Configuration

For production deployments with PostgreSQL, MinIO, and optional Vault:

# PostgreSQL Configuration
DB_TYPE=postgres
DB_HOST=database
DB_PORT=5432
DB_USERNAME=eudiplo_user
DB_PASSWORD=strong-secure-password-here
DB_DATABASE=eudiplo

# MinIO (S3-compatible storage)
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin-secure-password

Service Management

View running services:

docker compose ps

View logs:

# All services
docker compose logs -f

# Specific service
docker compose logs -f eudiplo

Restart a service:

docker compose restart eudiplo

Stop services:

docker compose down

# Remove all data (volumes)
docker compose down -v