Aelio
Server

Aelio Server

Deploy and configure the Aelio agentic runtime server.

The Aelio Server (@aelio/server) is the agentic harness that powers conversations. It runs the LLM tool loop, safety rails, identity resolution, memory, and channel adapters.

It ships as a Docker image (aelio/server:latest) — not as an npm package.

What the server does

  • Receives messages from the chat widget (/widget/ws) and WhatsApp (/wa/webhook)
  • Runs the LLM turn engine (harness: plan → execute → synthesize)
  • Invokes your SDK tools over WebSocket (/sdk)
  • Manages customer identity, session, and memory
  • Enforces safety gates and write confirmations
  • Serves the widget bundle at /widget.js

Quick run (local)

export AELIO_SDK_SECRET=change-me-in-production
export OPENAI_API_KEY=sk-...
pnpm --filter @aelio/server dev

Server starts on http://localhost:3010.

Health checks

# Liveness
curl http://localhost:3010/health

# Readiness (db, migrations, widget, sdk status)
curl http://localhost:3010/ready

Docker

docker run -p 3010:3010 \
  -e AELIO_SDK_SECRET=change-me-in-production \
  -e OPENAI_API_KEY=sk-... \
  -e AELIO_CONFIG=/config/config.docker.yaml \
  -v ./config.docker.yaml:/config/config.docker.yaml \
  aelio/server:latest

Single-container deployment, ~190MB distroless image.

Config profiles

FilePurpose
config.yamlLocal dev (OpenAI, hash embeddings, mock WhatsApp)
config.docker.yamlDocker deployment
config.openai.yamlOpenAI profile
config.anthropic.yamlAnthropic + Voyage embeddings
config.gemini.yamlGemini (768d embeddings)
config.byo.yamlBring-your-own WhatsApp provider
config.proactive.yamlProactive messaging enabled

Point to a profile with AELIO_CONFIG=/path/to/config.yaml.

On this page