Quickstart
This takes you from zero to a running instance. You need Docker with Compose v2.
1. Get the deploy files
The self-hosting files live in the deploy/ folder of the next branch.
git clone --branch next https://github.com/notacamp/campbooks
cd campbooks/deploy
2. Create your settings file
Copy the example. Every setting lives in this one .env file.
cp .env.example .env
3. Set the two required values
Open .env and set at least these two. POSTGRES_PASSWORD must use URL-safe characters only, because it is embedded in a connection URL. openssl rand -hex 24 makes a good one. CAMPBOOKS_PUBLIC_URL is the address people use to reach your instance. It also builds the invitation links.
POSTGRES_PASSWORD=change-me
CAMPBOOKS_PUBLIC_URL=https://campbooks.example.com
For a trial on your own machine, use http://localhost:8080 as the public URL and add CAMPBOOKS_ENV=development to .env. Plain http:// is accepted only in development. Never use CAMPBOOKS_ENV=development on a server other people can reach: a real install uses https:// and leaves CAMPBOOKS_ENV unset.
4. Start it
This starts the server and Postgres (with pgvector). Sign-in is built into the server, so there is no separate service for it. On first boot, a one-shot service also generates the instance secret key. Keep a copy of it (see Upgrades and backups).
docker compose up -d
5. Check that it is healthy
The health endpoint confirms the server can reach the database.
curl http://localhost:8080/api/v1/system/health
You should get this back:
{"status":"ok","database":"ok"}
6. Open the app and sign in
The server answers the web app on port 8080. If you are not signed in, it sends you to the sign-in screen and back. People sign in with Google, Microsoft, Zoho or a passkey. To offer a provider, register its OAuth app first (see Sign-in).
http://localhost:8080/
7. Create the first workspace
The first person to sign in creates the first workspace. Invite the others from Settings, then Members. Invitations are not emailed yet: you get the link once, right after inviting, and send it on yourself. See Sign-in for who else may create a workspace.
Next steps
- Serve it on a real domain: see Sign-in.
- Connect Gmail or Zoho Mail: see Connecting mailboxes.
- Add local AI: see Local AI.
- Read about upgrades and backups before you rely on it.