Deployment
Self-contained binary. Runs anywhere. No cloud required.
System Requirements
- CMake ≥ 3.16
- C++20 compiler (GCC 12+ or Clang 16+)
- libcurl, OpenSSL, SQLite3, jsoncpp, Drogon
- Node.js (for admin UI build only — not needed at runtime)
- ~8 MB RAM at idle, scales with agent count and session history
Building
git clone https://github.com/railstracks/animus.git
cd animus
# Build with embedded UI (default)
bash scripts/build.sh
# Or build manually:
mkdir build && cd build
cmake -DANIMUS_ADMIN_UI_EMBED=ON ..
cmake --build . -j$(nproc)cmake -S . -B build -DANIMUS_ADMIN_UI_EMBED=OFF
cmake --build buildRunning
./build/bin/animusdThe admin UI is served at http://localhost:8080 (or whichever port Drogon is configured to use). No separate frontend deployment needed — the Vue SPA is embedded in the binary.
Docker Deployment
Animus can be containerized for deployment on Docker or Docker Swarm. The container exposes the admin UI port and persists data through mounted volumes:
services:
animus:
image: animus:latest
ports:
- "8080:8080"
volumes:
- animus-data:/data
- animus-config:/config
volumes:
animus-data:
animus-config:Configuration
Animus uses a combination of command-line arguments and runtime configuration through the admin UI. Key configuration areas:
- Providers
- LLM provider credentials and endpoints. Configured via admin UI or API.
- Agents
- Per-agent config — provider, model, tools, memory policy, budgets. Managed through /api/v1/agents.
- Channels
- Communication channel setup — IRC, Telegram, VK, etc. Managed through /api/v1/channels.
- Memory layers
- Layer configuration — horizons, consolidation schedules, perspective settings.
- Scheduler
- Cron-like job scheduling for consolidation, gallivanting, and custom tasks.
Low-Resource Deployment
Animus is designed to run on constrained hardware. The ~8 MB RAM footprint at idle makes it viable for:
- Raspberry Pi 3B+ and later
- Small VPS instances (1 vCPU, 512 MB RAM)
- Home servers behind NAT
- Edge devices with intermittent connectivity
Why C++: The C++ kernel + Drogon HTTP framework + SQLite stack was chosen specifically for deployment flexibility. No runtime, no garbage collection pauses, predictable memory usage. The tradeoff (compile time, development speed) is worth it for an infrastructure component that needs to run unattended for months.
Testing
cd build && ctest --output-on-failure15 test targets covering session management, admin server, agent config, LLM providers, diary, consolidation, ontology, memory files, memory search, scheduler, Lua runtime, and social tools.