Docs

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

VariableRequiredMeaning
DONNA_TOKENYesBearer token clients must send. The server refuses to start without it.
DONNA_PORTNoListen port, default 8377.
DONNA_BINDNoBind address, default 0.0.0.0 (the packaged app’s built-in server uses 127.0.0.1).
DONNA_DATA_DIRNoWhere the database, knowledge base, and credentials live.
TUNNEL_TOKENNoCloudflare Tunnel token for exposing the server publicly (needed for WhatsApp webhooks).
DONNA_WA_VERIFY_TOKEN / DONNA_WA_APP_SECRETNoWhatsApp webhook handshake and signature verification.