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

Full build (C++ kernel + embedded admin UI)
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)
C++ only (skip admin UI)
cmake -S . -B build -DANIMUS_ADMIN_UI_EMBED=OFF
cmake --build build

Running

Start the daemon
./build/bin/animusd

The 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:

Docker Compose example
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

Run the test suite
cd build && ctest --output-on-failure

15 test targets covering session management, admin server, agent config, LLM providers, diary, consolidation, ontology, memory files, memory search, scheduler, Lua runtime, and social tools.