Companion Planning / Setup
Set up Companion Planning on your own server
Run the public Docker image on a computer you control, sign in with a username and password, then open the planner from any browser on your network.
What you need
- A computer that stays on: a desktop, a mini PC, a home server or a Docker host.
- Docker, or a Companion Hub appliance with Companion Planning installed from the store.
- Your time zone as an IANA name, such as Europe/Berlin.
Run it with Docker
The image is public and runs on amd64 and arm64. Replace the time zone, the address, the session secret and the password before you run it.
docker run -d --name ci-planning \
-p 3848:3848 \
-v ci-planning-data:/data \
-e TZ=Europe/Berlin \
-e AUTH_MODE=sso \
-e DISABLE_OIDC=true \
-e PUBLIC_BASE_URL=http://192.168.1.20:3848 \
-e SESSION_SECRET=REPLACE_WITH_OPENSSL_RAND_HEX_32 \
-e AUTH_DEFAULT_USERNAME=you \
-e AUTH_DEFAULT_PASSWORD=REPLACE_WITH_A_STRONG_PASSWORD \
ghcr.io/companionintelligence/ci-planning:latest
Settings to know
PUBLIC_BASE_URLis the address you type into the browser, with the scheme and port.- Generate
SESSION_SECRETonce withopenssl rand -hex 32, and keep it. If it changes, every device signs out. AUTH_DEFAULT_USERNAMEandAUTH_DEFAULT_PASSWORDcreate the first owner when the server starts for the first time. Changing them later does not change that account. Use the in-app password reset instead.- Your data lives in the
ci-planning-datavolume, mounted at/data.
Open it and sign in
- Check that the server answers. Open
http://192.168.1.20:3848/api/healthin a browser on your network. - Open
http://192.168.1.20:3848and sign in with the username and password you set. - On a phone, open the same address in the browser, then add the planner to your home screen.
Optional: AI, Google Calendar and crash reports
AI
Point the server at an Ollama model with OLLAMA_URL, or at an OpenAI-compatible endpoint with APP_OPENAI_BASE_URL. Without a reachable model, the AI features stay hidden. The project's docker-compose.yml runs the app with a bundled Ollama.
Google Calendar
Set CP_KEK_B64 to a random key, generated with openssl rand -base64 32, so that stored tokens are encrypted. Keep that key the same. Then add a Google OAuth client under Settings → Connections and save it. Each person connects their own Google account. The steps for creating the client are in the Google Cloud setup guide.
Crash reports
Released images send error reports by default. They contain errors only, are scrubbed, and never include your data. Set CI_TELEMETRY=off, or CI_LOCAL_ONLY=true, to turn them off.
Web Push
Browser notifications work without extra setup. The server creates its push keys the first time it starts.
Backups
Read the Backup and restore section of the project README before you rely on the server for real data. It covers built-in scheduled snapshots, Litestream, and export and import.
Run from source
Developers can run Companion Planning from a source checkout with Node.js 22 or newer and pnpm. The local development guide has the steps.