Skip to main content

Self-hosting overview

Campbooks Next is made to run on your own hardware. One docker compose up -d starts everything you need to sign in and use the app.

:::warning Campbooks is mid-rewrite Campbooks is being rebuilt from scratch in Rust. This guide covers the new version (Campbooks Next), which is early and moving fast: some features, such as mail sync and the AI pass over your mail, are still landing. The older Rails version on the main branch (documented under Deployment) still exists, but it is unstable and unmaintained, and it no longer gets fixes. Start new installs on Next. :::

What you run​

PartWhat it doesPort
Campbooks serverOne image that serves the web app and the API (/api/v1/...). It also signs people in and runs the background job worker.8080
Postgres with pgvectorStores your data. Bundled in the compose file.internal
Local AI services (optional)Laya, Ollama and a text embeddings server, started with the ai profile.internal

Files (message bodies, attachments, documents) are stored outside Postgres, in a Docker volume by default. You can use an S3-compatible bucket instead. See Storage and database.

Requirements​

  • Docker with Compose v2.
  • A host that can run Postgres and the server. The sources give no minimum CPU or RAM for these.
  • For local AI (optional): Laya needs about 2 GB of RAM. CPU is fine for the decide and embed roles. For complete, use a GPU host or a hosted provider that serves open-weight models. See Local AI.
  • For a real domain: a reverse proxy that terminates TLS. See Sign-in.

Where to go next​

  1. Quickstart: from zero to a running instance.
  2. Configuration: every .env setting.
  3. Local AI: run the AI roles on your own hardware.
  4. Sign-in: the built-in sign-in, Google, Microsoft and Zoho, and signup policy.
  5. Mailboxes: connect Gmail and Zoho Mail.
  6. IMAP mailboxes: connect any other mailbox with an app password.
  7. Storage and database: blobs, database logins and workspace isolation.
  8. Upgrades and backups
  9. Troubleshooting