Skip to content

Last updated:

Configuration Reference ​

Every runtime parameter of Zipoly Server lives here: API keys, License entitlement, queue concurrency, file retention and log levels. Configuration comes in via ZIPOLY__-prefixed environment variables or a config.yaml file; restart the container to apply changes.

Two Ways to Configure ​

MethodWhen to usePriority
Environment variables (recommended)Passed via -e at container startup; secrets never touch the diskHigh
config.yamlA file for many settings, mounted into the containerLow

You can mix both — environment variables override the same-named keys in the YAML.

Quick Reference: The Most Common Settings ​

In most cases you only need to change these:

bash
docker run -d \
  -e ZIPOLY__SERVER__API_KEY=your-key \             # required! API access password
  -e ZIPOLY__LICENSE__KEY=your-license-key \        # optional, fill in after purchase
  -e ZIPOLY__QUEUE__MAX_CONCURRENT=10 \             # concurrent tasks (raise with more RAM)
  -e ZIPOLY__STORAGE__RETENTION_HOURS=24 \          # file retention (hours)
  zipoly-server:2.1.0

All Configuration Options ​

Server (server) ​

Environment variableDefaultDescription
ZIPOLY__SERVER__HOST0.0.0.0Listen address — usually leave as is
ZIPOLY__SERVER__PORT8080Port inside the container — usually leave as is (external port is controlled by -p)
ZIPOLY__SERVER__API_KEY(required)API key. Every request must carry it — it's the service's password
ZIPOLY__SERVER__RATE_LIMIT_PER_MINUTE60Reserved: rate limiting is not yet active in this version

Storage (storage) ​

Environment variableDefaultDescription
ZIPOLY__STORAGE__BACKENDlocalStorage backend — only local (local disk) is supported in this version
ZIPOLY__STORAGE__RETENTION_HOURS24How long uploaded files and results are kept before auto-cleanup (hours)

File cleanup behavior

Results are deleted automatically after 24 hours by default. If your team downloads late, consider:

  • Intranet use: set 168 (one week)
  • Public service: keep 24 or shorter

Task Queue (queue) ​

Environment variableDefaultDescription
ZIPOLY__QUEUE__MAX_CONCURRENT10Number of tasks processed simultaneously. With 8G+ RAM you can raise it to 20–30
ZIPOLY__QUEUE__TASK_TIMEOUT_SECONDS600Max execution time per task (seconds); timed-out tasks are terminated. Large models may need more

License (license) ​

Environment variableDefaultDescription
ZIPOLY__LICENSE__KEYemptyLicense Key — fill in after purchase. Empty = trial mode

Trial mode limits are described in Server Licensing.

Logging (logging) ​

Environment variableDefaultDescription
ZIPOLY__LOGGING__LEVELinfoLog level: debug (most verbose) → info → warn → error (least)
ZIPOLY__LOGGING__FORMATjsonOutput format: json (structured, easy to collect) or text (human-readable)

Switch to debug temporarily when troubleshooting:

bash
-e ZIPOLY__LOGGING__LEVEL=debug -e ZIPOLY__LOGGING__FORMAT=text

Configuring with config.yaml (Advanced) ​

When there are many settings, manage them with a YAML file:

yaml
# config.yaml
server:
  host: "0.0.0.0"
  port: 8080
  api_key: "your-secure-api-key"     # required
  rate_limit_per_minute: 60

storage:
  backend: "local"                   # only local is supported in this version
  retention_hours: 24                # file retention (hours)
  local:
    upload_dir: "/tmp/uploads"
    result_dir: "/tmp/results"

queue:
  max_concurrent: 10                  # concurrency
  task_timeout_seconds: 600           # timeout (seconds)

license:
  key: ""                            # License Key (optional)

logging:
  level: "info"                      # debug / info / warn / error
  format: "json"                     # json / text
  file_path: null                    # empty = console only

Mount it into the container:

bash
docker run -d \
  -v ./config.yaml:/app/config.yaml:ro \
  ...other parameters...

:ro mounts the file read-only — the container cannot modify it.

S3 Object Storage (Planned) ​

S3-compatible storage (MinIO, Alibaba Cloud OSS, etc.) is planned. This version only supports local disk storage (local).

Tuning Recommendations ​

Scenario 1: Daily team use (5–10 people) ​

bash
-e ZIPOLY__QUEUE__MAX_CONCURRENT=5 \
-e ZIPOLY__STORAGE__RETENTION_HOURS=168   # keep for a week

Scenario 2: CI/CD pipeline integration ​

bash
-e ZIPOLY__QUEUE__MAX_CONCURRENT=2 \
-e ZIPOLY__QUEUE__TASK_TIMEOUT_SECONDS=300 \
-e ZIPOLY__STORAGE__RETENTION_HOURS=4      # the pipeline fetches results immediately

Scenario 3: High-volume processing (100+ files/day) ​

bash
-e ZIPOLY__QUEUE__MAX_CONCURRENT=20 \
-e ZIPOLY__LOGGING__LEVEL=warn            # reduce log volume

Built for Web3D developers