Skip to main content

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​