Four paths · amd64 and arm64 · No cloud required
Runs on your server. Even the little one on the shelf.
Four paths lead to your own OpenParrotAI installation: locally from source or with images, on a home network or in the cloud with your own domain. All images are built for amd64 and arm64; the Raspberry Pi is not a special case.
01Four paths
All four start with Docker Compose. The difference is where the stack runs and who may reach it.
- Local, source code
- Builds everything from the checkout. HTTP, internal mTLS off. For a first look and for contributions.
- Local, images
- The same topology, but with published images instead of a build. Up in five minutes.
- Home network
- No public domain, no Let's Encrypt, no port forwarding. Fully hardened, including internal mTLS.
- Cloud (host, own domain)
- Your own cloud host with its own domain, TLS, and a complete internal PKI.
02Without a public domain
The path for everyone who does not want their assistants reachable from the internet.
No domain name, no Let's Encrypt, no open port forwarding. You create your own local CA, Traefik gets a self-signed certificate, and you get in remotely through WireGuard or Tailscale.
Together with a local Ollama model, that means no packet leaves your network. Not as a promise, but because no outward connection exists to take it.
03The bundle
For NAS devices and appliances: one folder containing everything.
A script produces the Compose file, .env, Traefik configuration, and a freshly generated internal PKI. Copy the folder to the target system and start it. There is no source code on the NAS afterwards.
04What runs alongside it
- Traefik
- The only front door. Terminates TLS and obtains certificates through ACME.
- PostgreSQL
- Persistence for all services.
- ClamAV
- Scans uploaded files and attachments.
- Internal mTLS
- Services communicate with each other only through mutually authenticated TLS, with service tokens from Identity.
- Bubblewrap
- Sandbox for external tools, with a network policy per tool.
05Which model?
The provider is set per agent, not per installation.
Conrad can run on a local Ollama while Resi asks Gemini. Ollama, OpenAI, Claude, Gemini, and OpenRouter are supported — and beyond those, any OpenAI-compatible address, because every provider's base URL can be overridden.
Web search is configured separately: off, Google through Gemini, Tavily, or your own external tool.
06Four questions that always come up
Is there a hosted version?
No. OpenParrotAI is a self-hosted platform. A hosted offering is not part of the current product.
Does it run on a Raspberry Pi?
Yes. All images are built for amd64 and arm64. You should not run the language model on the same device, though — use a provider or a second device with a GPU instead.
Do I need an API key?
Only for hosted models. With Ollama, everything runs locally and without a key.
What happens if a run fails?
It is retried, and if it continues to fail, it visibly lands in the dead letter queue. There you can see which step failed and why.