Skip to content

Latest commit

 

History

History
83 lines (60 loc) · 1.48 KB

File metadata and controls

83 lines (60 loc) · 1.48 KB

ZnDraw Production Deployment

Horizontal scaling deployment with Caddy load balancer and multiple ZnDraw instances.

Quick Start

docker compose up -d

Access at http://localhost

Architecture

flowchart TB
    caddy[Caddy :80]

    caddy --> zndraw1[ZnDraw]
    caddy --> zndraw2[ZnDraw]
    caddy --> zndraw3[ZnDraw]

    zndraw1 --> redis[(Redis)]
    zndraw2 --> redis
    zndraw3 --> redis

    redis --> worker1[TaskIQ Worker]
    redis --> worker2[TaskIQ Worker]

    subgraph "ZnDraw Replicas (x3)"
        zndraw1
        zndraw2
        zndraw3
    end

    subgraph "TaskIQ Workers (x2)"
        worker1
        worker2
    end
Loading

Scaling

Adjust replicas in docker-compose.yaml:

services:
  zndraw:
    deploy:
      replicas: 5  # Increase for higher load

  taskiq-worker:
    deploy:
      replicas: 4  # Increase for more background tasks

Configuration

Variable Description Default
ZNDRAW_SERVER_REDIS_URL Redis connection redis://redis:6379
ZNDRAW_AUTH_SECRET_KEY JWT secret Change in production!
ZNDRAW_AUTH_DEFAULT_ADMIN_EMAIL Admin email Disabled
ZNDRAW_AUTH_DEFAULT_ADMIN_PASSWORD Admin password Disabled

Commands

# Start
docker compose up -d

# Scale on the fly
docker compose up -d --scale zndraw=5 --scale taskiq-worker=3

# View logs
docker compose logs -f

# Stop
docker compose down

# Stop and remove data
docker compose down -v