Quick start
Everything you need is Docker. There is no cloud account to create and nothing to register.
Run it
cp .env.example .env # optional — the defaults are fine
docker compose up -dkillBottleneck is now running at http://SERVER-IP:8090. Colleagues on the same network just open that address in a browser.
Create the first account
Open the address and register. The first account to register automatically becomes the administrator. Everyone else can register themselves, or the administrator invites them from Administration — an invitation creates an account with a temporary password to hand over.
If the machine is reachable from the internet
Registration is open by default, so anyone who knows the address could create an account. Set KB_SETUP_CODE in .env before you expose it — every registration then requires that key.
Check it is really up
docker compose ps # the killbottleneck service should be "running"
docker compose logs -f killbottleneck # startup log, including the superuser link
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:8090 # expect 200Where the data is
In the ./pb_data folder next to docker-compose.yml — an SQLite database plus uploaded files. It lives on the host, not inside the container, so rebuilding or removing the container does not lose anything. Read Backup and restore before you rely on that.
What next
| Put it on a domain with HTTPS | HTTPS and a reverse proxy |
| Turn on AI | Configuration → AI |
| Let people sign in with Google | Configuration → Sign in with Google |
| Send invitation e-mails | Configuration → E-mail |
| Drive it from code | REST API |
| Connect an AI assistant | MCP server |

