Install with Docker
Diffrook runs as one Docker container with a persistent data volume. There is no separate database service: configuration, run history and the encryption key live in that volume. These steps install version v0.2.0-beta.3.
Requirements
- A Linux server (x86-64 or ARM64) with Docker Engine and the Docker Compose plugin.
- Git, to fetch the tagged source.
- An AI provider: an Anthropic or OpenAI-compatible API key, or an Ollama instance the server can reach.
- An access token for a bot account on your code host (GitHub, GitLab, Bitbucket, Forgejo or Gitea).
1. Get the source
Check out the release tag. The image is built from this source; no prebuilt registry image is published.
git clone --branch v0.2.0-beta.3 --depth 1 https://github.com/Alexandre1116/diffrook.git
cd diffrook
2. Configure (optional)
The defaults work for a first local run: Diffrook listens on 127.0.0.1:8080 only. To change the address, port or public URL, copy the example settings and edit them:
cp .env.example .env
| Setting | Purpose |
|---|---|
DIFFROOK_BIND_ADDRESS | Address the port is published on. Keep 127.0.0.1 behind a reverse proxy. |
DIFFROOK_PUBLISHED_PORT | Host port, 8080 by default. |
DIFFROOK_PUBLIC_URL | The HTTPS URL people use to open Diffrook, for example https://reviews.your-company.example. |
DIFFROOK_SECURE_COOKIES | Set to true when Diffrook is served over HTTPS. |
DIFFROOK_LICENSE_FILE | Path to a signed licence file, mounted read-only. Leave empty for the free plan. |
Single sign-on and the remaining settings are covered in SSO and HTTPS.
3. Start Diffrook
docker compose up --build -d
docker compose logs diffrook
The first build compiles the server and the web interface, so it can take a few minutes. The logs print a setup token: a one-time code for creating the first administrator. It is not an AI API key.
4. Create the administrator
Open http://localhost:8080 (or your server's address), enter the setup token and choose a username and password. You are signed in to the dashboard.
5. Connect your tools
- In Connections, add your code host with the bot account's token and a webhook secret, then test it.
- In AI providers, add your provider and default model, then test it.
- Optionally add Discord, Slack, Teams or webhook destinations in Notifications.
- In Automations, create an automation: repositories, trigger, action, model and limits.
- In your repository settings, add a webhook that posts to
https://YOUR-HOST/api/webhooks/CONNECTION_IDwith the same secret, or rely on scheduled and manual runs. The connection ID is returned byGET /api/connections.
The overview lists the token, repository format and webhook events for each code host.
Access from other machines
The Compose file binds to localhost on purpose. For remote access, put Diffrook behind an HTTPS reverse proxy that forwards to port 8080, set DIFFROOK_PUBLIC_URL and DIFFROOK_SECURE_COOKIES=true, and keep the plain HTTP port off the Internet. See SSO and HTTPS.
Back up the data volume
The volume holds the encryption key. Encrypted credentials cannot be restored without it, so back up the whole volume while Diffrook is stopped:
docker compose stop diffrook
docker run --rm -v YOUR_VOLUME_NAME:/data:ro -v "$PWD/backups:/backup" alpine tar czf /backup/diffrook-data.tgz -C /data .
docker compose start diffrook
Find the volume name with docker volume ls. Keep backups private.
Update to a new version
Back up first, then check out the new tag and rebuild:
git fetch --tags
git checkout NEW_TAG
docker compose up --build -d
Keep the same Compose project name and data volume. Linux installations can also install updates from the dashboard. Read releases and upgrades before upgrading across versions.
Written for Diffrook v0.2.0-beta.3.