Install and run
Two ways, depending on what you already run. Both end the same way: Kustos is listening on port 8787, and you open it in a browser on that machine.
Windows — the installer
- Download the installer from the download page — one file, Kustos-Setup.exe.
- Run it. Windows will ask for administrator rights, because installing a service needs them.
- Let it finish. It registers Kustos as a Windows service and starts it, so it comes back on its own after a reboot and you never have to remember to launch it.
- Open http://localhost:8787, or use the Kustos shortcut in the Start menu, which points at the same address.
Uninstalling stops and removes the service for you.
Docker
The image runs in the foreground as the container's process, so Docker restarts it rather than a Windows service.
- Make a folder for the compose file and change into it. Anywhere you will remember is fine.
- Save the file below as docker-compose.yml in that folder.
- Start it. ``bash docker compose up -d ``
- Check it came up. docker compose ps should show the container running, and docker compose logs -f kustos shows it starting. Ctrl-C leaves the logs without stopping anything.
- Open it at http://localhost:8787, or the address of the machine running it on the same port, and work through the onboarding wizard below.
To update later, docker compose pull then docker compose up -d. Your data is in the volume, not the image, so it survives.
/config is the part worth getting right. That volume holds the database and everything Kustos has learned. Mapping it somewhere you back up is the difference between a container you can rebuild and a setup you would have to recreate by hand.
Should you let Kustos install Sonarr, Radarr, Prowlarr and qBittorrent? The answer turns on one thing: where your media lives.
| Your setup | Do this |
|---|---|
| Media on this machine, starting fresh | Let Kustos install the stack. Uncomment the provisioning block in the compose file. It sets the four up, wires your indexers to both arrs, connects the download client and keeps them updated. |
| Media on a NAS | **Install the arrs yourself* and point Kustos at them on the Connections screen. |
| Already running them | Nothing extra. Connect them and you are done. |
Why a NAS is different, and it is worth knowing rather than discovering: a container Kustos launches gets the mounts your compose file declares, and Kustos cannot guess which NAS share your library is on or what credentials reach it. The result is not an error — the arr comes up with a root folder that is simply empty. Installing the *arrs yourself takes a few minutes and avoids the whole question, because you are the one who knows the share.
If you do want provisioning, it needs Kustos to talk to Docker itself, since it is launching other containers. The compose file does this through a socket proxy that permits only the container, image and network calls the feature actually makes — rather than handing over the raw Docker socket, which is full control of the host.