kineuroExperimental Neuroradiology Research
Karolinska Institutet

One machine, no login

A laptop, one person, nothing to sign in to. The whole product in two processes.

The wizard does this for you. This page is what it does, for when you would rather do it yourself.

This is the standalone install: one machine, one person, no accounts anywhere. It is two processes and about five minutes.

The engine

nils --registry ~/nils/registry key add nils      # passphrase on stdin
nils --registry ~/nils/registry init --key nils
nils serve --auth off --bind 127.0.0.1:8437 \
  --registry ~/nils/registry --pack-dir ~/nils/packs

The desk

# ~/nils/desk/nils-desk.toml
bind = "127.0.0.1:7200"
origin = "http://127.0.0.1:7200"
mode = "off"
store = "nils-desk.sqlite"

[engine]
url = "http://127.0.0.1:8437"
cd ~/nils/desk && nils-desk serve --config nils-desk.toml

Open http://127.0.0.1:7200. There is no login: you are the local person, hold every grant and see everything in records. A fresh install opens on Get started, the steps that make it ready for real work.

Reaching it from another machine on the same network

Sometimes you want the desk on the laptop but the browser on a tablet. Bind it wider and name the address it will be reached at:

bind = "0.0.0.0:7200"
origin = "http://192.168.1.20:7200"
also_origins = ["http://127.0.0.1:7200"]

In off mode there is no login, so anyone on that network who finds the port has the whole registry. Do this only on a network you trust, and put it back to 127.0.0.1 afterwards. If more than one person needs it, use local mode instead: it is barely more work and it asks for a password.

Keeping them running

Two user services, as in the engine’s page; the desk’s is the same shape:

# ~/.config/systemd/user/nils-desk.service
[Unit]
Description=NILS desk
After=nils-engine.service

[Service]
ExecStart=/usr/local/bin/nils-desk serve --config %h/nils/desk/nils-desk.toml
WorkingDirectory=%h/nils/desk
Restart=on-failure

[Install]
WantedBy=default.target

Updated 16 October 2026