Self-hosting
For a Donna that works while your laptop sleeps.
Why self-host?
The built-in brain stops when your computer is off. Run donna-server on a VPS, home server, or Raspberry Pi instead and Donna is on duty 24/7: proactive routines fire, WhatsApp two-way works, and every desktop app you point at it shares one memory.
The short version
git clone https://github.com/duckyquang/Donna.git
cd Donna/donna-server
cp .env.example .env # set DONNA_TOKEN to a real secret
docker compose up -d
curl http://localhost:8377/health # → ok
Then in the desktop app: Settings → Server, enter the server’s URL and your DONNA_TOKEN, and Test connection. To migrate existing data, export a bundle from the app and run donna-server import; full steps in the server README.
Environment variables
| Variable | Required | Meaning |
|---|---|---|
DONNA_TOKEN | Yes | Bearer token clients must send. The server refuses to start without it. |
DONNA_PORT | No | Listen port, default 8377. |
DONNA_BIND | No | Bind address, default 0.0.0.0 (the packaged app’s built-in server uses 127.0.0.1). |
DONNA_DATA_DIR | No | Where the database, knowledge base, and credentials live. |
TUNNEL_TOKEN | No | Cloudflare Tunnel token for exposing the server publicly (needed for WhatsApp webhooks). |
DONNA_WA_VERIFY_TOKEN / DONNA_WA_APP_SECRET | No | WhatsApp webhook handshake and signature verification. |