Run it
Get the source first:
git clone https://github.com/qkvm/qkvm
cd qkvm
As a program (Python 3.11 or newer):
pip install .
python -m qkvm
Then open http://127.0.0.1:8787/. For JetKVM devices install with pip install ".[jetkvm]" instead (see JetKVM); the container has that built in. Settings are kept in a data folder where you start it; --data-dir puts them elsewhere.
As a container:
docker compose up -d
docker compose logs qkvm # shows the setup code asked for on the first visit
Then open http://<that machine>:8787/. The image is built from the source on your machine and runs as an unprivileged user on a read-only file system; settings live in the qkvm-data volume. (If you mount a folder of your own at /data instead, it has to be writable by that user, uid 10001.) To update, run git pull and then docker compose up -d --build.
The first visit walks you through four steps:
- Password – choose the password of the first account,
admin. - Recovery key – shown once. Keep it: it is the way back in if a password is forgotten.
- Network – where it is reachable: this computer only, Tailscale, the local network. (In a container this is decided by the port mapping in
docker-compose.ymlinstead.) - KVMs – let QKVM find the KVMs on your network, or paste their addresses, and give their login; each one is checked and added.