Maintenance and operations¶
Day-2 procedures for operators. Availability: both editions unless noted.
Updating an existing instance¶
Backs up .env and a DB dump to backups/, tags the current images
as :rollback, rebuilds (source checkout) or loads images (airgap
bundle), recreates containers without touching volumes, and waits for
the backend health check. ./update.sh --rollback restores the previous
images; database migrations are not auto-reverted — restore the dump
from backups/ if a true revert is needed.
Start / stop / restart¶
docker compose up -d # start (also applies config changes)
docker compose restart backend # restart one service
docker compose down # stop (data volumes persist)
Alembic migrations run automatically on every backend start — there
is no separate migration command in normal operation. For
development, backend/Makefile exposes make db-status, db-upgrade,
db-downgrade, db-new, db-history (require DATABASE_URL).
Health checks¶
curl -s http://localhost:3000/api/health # db + redis connectivity
docker compose ps # service states
In the UI: System → Health (worker pool: running, active jobs,
max workers; entity counts) and System → Metrics (totals, job
status counts). The Jobs view shows a live worker badge
(⚙ active/max +queue).
Logs¶
Structured application logs also land in the UI under
System → Logs (filterable; GET /api/system/logs). The
DevOps Log (Admin → DevOps Log) records platform-side actions —
what Umbryx itself did to infrastructure (EE deploys, workstation
provisioning) with filters by stack/level/category.
Upgrades¶
- Migrations apply on startup; jobs awaiting ROE approval survive a backend restart
- Back up first — see Backup and restore
- EE↔Core moves are image swaps; the schema is shared
Configuration changes¶
Edit .env, then docker compose up -d (recreates containers with
the new environment). Variables marked "no restart" in the
Configuration reference are read
per-request.
Redis / worker backend¶
The default internal worker pool needs no extra services. Switching
to WORKER_BACKEND=arq requires enabling the worker compose
service; if the arq pool is unreachable the platform falls back to
in-process execution.
Rate limits (built-in)¶
Login 5/min (+ account lockout after 10 failures for 30 min when
Redis is up), report exports 10/min, webhook ingestion 120/min,
credential reveal 30/min. Disabled only in APP_ENV=test.