All pages

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:

  1. Password – choose the password of the first account, admin.
  2. Recovery key – shown once. Keep it: it is the way back in if a password is forgotten.
  3. 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.yml instead.)
  4. KVMs – let QKVM find the KVMs on your network, or paste their addresses, and give their login; each one is checked and added.