Skip to main content

Deployment & Operations

This guide covers running FERAL in production — Docker Compose, environment variables, systemd services, reverse proxy, and a production checklist.

Docker Compose

The recommended production setup uses Docker Compose to run the Brain, web UI, and optional services.

Environment Variables

Production Checklist

Before going live:
  • Set FERAL_AUTONOMY=strict or hybrid (never loose in multi-user)
  • Store all API keys via feral key add or env vars — never in config files
  • Set FERAL_CORS_ORIGINS to your actual domains
  • Enable HTTPS via reverse proxy (see below)
  • Set FERAL_LOG_LEVEL=warning to reduce log volume
  • Mount feral-data on persistent storage with backups
  • Set resource limits on Docker containers
  • Enable health checks for orchestrator restarts
  • Review the Security Model and configure a SandboxPolicy
  • Test channel integrations (Telegram, Slack) in a staging environment first

Systemd Service

For bare-metal deployments without Docker:

Reverse Proxy

Nginx

Caddy

Caddy handles TLS automatically via Let’s Encrypt and upgrades WebSocket connections without extra configuration.

Monitoring

FERAL exposes a health endpoint and optional Prometheus metrics:
Enable metrics in config:
Key metrics exported:

Backup & Restore

FERAL stores all per-user state under ~/.feral/ — back it up like any other directory. There is no dedicated CLI verb; standard tar/rsync is the supported path.
The directory includes memory.db (or memory.db.enc if you ran feral memory encrypt), settings.json, USER.md, SOUL.md, credentials.enc (ChaCha20-Poly1305 encrypted vault), wiki pages, and skill manifests.