Skip to main content

Self-hosting

Run it on your own server.

One image and Postgres, with sign-in built in, started with Docker Compose. Your mail, your files and your models stay on your machine.

Mid-rewrite. Campbooks is being rebuilt from scratch in Rust; this page covers the new version, which is early and moving fast (mail sync and the AI pass are still landing). The older Rails version still exists, but it is unstable and unmaintained, and it no longer gets fixes.

  1. CampbooksWeb app and API, one image:8080
  2. PostgresWith pgvector, bundledvolume
  3. Local AIOptional, open-weight models--profile ai
01 / QuickstartAbout ten minutes, with Docker installed
  1. 01

    Get the deploy files

    Everything you need lives in the deploy folder of the repository.

    git clone --branch next https://github.com/notacamp/campbooks
    cd campbooks/deploy
  2. 02

    Configure

    Copy the example settings, then set a database password and the address people will use.

    cp .env.example .env
    # then edit .env:
    POSTGRES_PASSWORD=change-me
    CAMPBOOKS_PUBLIC_URL=http://localhost:8080
  3. 03

    Start it

    Starts Campbooks (sign-in is built in) and Postgres. Migrations run on startup.

    docker compose up -d
  4. 04

    Check it

    The health check answers once the server and the database are up.

    curl http://localhost:8080/api/v1/system/health
    # {"status":"ok","database":"ok"}
  5. 05

    Open it and sign in

    Go to http://localhost:8080/. The first person to sign in creates the workspace and invites the others from Settings → Members.

    open http://localhost:8080/

You need Docker with Compose v2. Without local AI it runs comfortably on a small server; for local AI, the deciding and search models run fine on CPU, and writing is much faster on a GPU or a hosted open-weight endpoint.

02 / Local AIOptional

Your models, on your hardware.

Campbooks only uses open-weight models, one per job: deciding, writing, reading and search. Run them next to it with one profile, or point any job at an OpenAI-compatible endpoint you trust.

Local AI guide
1 · Set a key for the deciding model in .env
openssl rand -hex 32
# CAMPBOOKS_AI__DECIDE__API_KEY=<that value>
2 · Start the AI services
docker compose --profile ai up -d
3 · Pull the writing model once
docker compose exec ollama ollama pull qwen3:8b
03 / UpgradesOn your schedule

One command to upgrade.

Pull the new image and restart. Database migrations run on startup. Back up the database and file volumes first.

Upgrades and backups
docker compose pull && docker compose up -d
04 / DocumentationEverything else

Rather we ran it for you?

The hosted version is rolling out a few at a time.