Evose
Private

Private · Docker Deployment

Single-host Docker Compose · Configuration · Health checks

Suitable for small-mid scale (< 200 users) or non-critical scenarios. For production, we recommend Kubernetes + HA.

Topology

[Nginx] →  [Evose Web] → [Evose API]

   [MySQL]   [PostgreSQL+pgvector]   [Redis]   [Object storage]

Steps

1 · Prepare

# Verify Docker
docker --version       # ≥ 20.10
docker compose version # v2
 
# Working directory
mkdir -p /opt/evose && cd /opt/evose

2 · Extract the Deployment Package

tar -xzf evose-edition-*.tar.gz
cd evose-edition

Layout:

evose-edition/
├── docker-compose.yml      # Compose
├── .env.example            # Env var template
├── config/                 # Config
└── scripts/                # Ops scripts

3 · Configure .env

cp .env.example .env

Key variables:

# Domain (use reverse proxy + HTTPS)
EVOSE_DOMAIN=evose.example.com
 
# DB password (random)
DB_PASSWORD=$(openssl rand -hex 16)
REDIS_PASSWORD=$(openssl rand -hex 16)
 
# Encryption key (credential / data encryption)
SECRET_KEY=$(openssl rand -hex 32)
 
# Initial admin
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=<at least 12-char strong password>
 
# At least one LLM
LLM_PROVIDER=openai                       # openai / anthropic / azure / openai-compatible
OPENAI_API_KEY=<key>
OPENAI_BASE_URL=https://api.openai.com/v1
 
# File storage
STORAGE_TYPE=local                        # local / s3 / oss
STORAGE_PATH=/opt/evose/data/files

4 · Start

# Pull images
docker compose pull
 
# Start
docker compose up -d
 
# Watch initialization
docker compose logs -f evose-init
# Continue after seeing "Initialization complete"
 
# Health check
docker compose ps                         # All healthy

5 · Reverse Proxy + HTTPS

Set up Nginx + Let's Encrypt (or your corporate cert):

server {
    listen 443 ssl http2;
    server_name evose.example.com;
 
    ssl_certificate     /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
 
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Enforce HTTPS:

server {
    listen 80;
    server_name evose.example.com;
    return 301 https://$host$request_uri;
}

Common Operations

Backup

# MySQL
docker compose exec mysql mysqldump -u root -p evose > backup.sql
 
# PostgreSQL (knowledge base vectors)
docker compose exec postgres pg_dump -U postgres evose_kb > kb-backup.sql
 
# Files
tar -czf files-backup.tar.gz /opt/evose/data/files

Restore

Reverse the dumps. Recommend daily auto-backup to a separate machine / object storage.

Upgrade

Upgrade procedure

Scale-Out

Docker Compose single-host scaling is limited. If needed:

  • Add business instances → set replicas on the Web/API service (same host)
  • Cross-host scale → switch to Kubernetes

Health Checks

EndpointUse
GET /healthApp-layer health (200 / DB connectivity)
GET /readinessReadiness check (suits K8s readiness probe)

Troubleshooting

SymptomCheck
Web 502evose-api logs; DB connectivity
Model 401 / timeoutTest connection on Model platform; verify credentials
Slow KB writesPostgreSQL memory config (shared_buffers ≥ 25% of host memory)
Boots with secret errorCheck SECRET_KEY is properly generated 64-char hex

Next Steps

On this page