Skip to content
Features: Running Ronne

Running Ronne

Screenshots of version 0.5.0, running on a new instance with the sample items from the repository. The people in them are sample accounts, and the usage counts are simulated. The identity provider in them is a stand-in made for tests.

Backups, logs and telemetry

rmk-server backup writes one archive of the database, the stored items and the settings file while Ronne runs; --verify checks it and restore brings it back, on the same machine or another. The server writes one JSON line per event, with the request it belongs to and never a secret. Metrics and traces go to an OpenTelemetry collector only if you point the server at one.

$ pnpm run backup --out <backups folder> --yes
Wrote <backups folder>/ronne-backup-20261020-204036.tar (607 KiB) in 0.0 s.
2,968 rows in 35 tables, 16 stored files (7 KiB).
! It holds the settings file, with AUTH_SECRET and the database's password: keep it as safe as the server itself, and use --encrypt for copies that leave this machine.
! STORAGE_PATH comes from the environment and isn't in this backup.

$ pnpm run backup --verify <archive>
ronne-backup-20261020-204036.tar is complete: every checksum matches, and every released version's artifact is in it.
Made by Ronne 0.5.0 at 2026-10-20T20:40:36.894Z from SQLite, 31 migrations applied (607 KiB).
2,968 rows in 35 tables, 16 stored files (7 KiB), with the settings file.
! Not in it, as they came from the environment: STORAGE_PATH.

$ pnpm run restore <archive> --yes   (into a second, empty data folder)
Restored 2,968 rows in 35 tables and 16 stored files from ronne-backup-20261020-204036.tar (made by Ronne 0.5.0 at 2026-10-20T20:40:36.894Z from SQLite) into the SQLite database.
! Wrote a settings file with a new AUTH_SECRET (not the backup's: run with --with-settings for that), so everyone signs in again.
Next, start the server: pnpm dev, or pnpm start after pnpm build.
A backup, its check and a restore, from the test instance used for these screenshots.
{"time":"2026-10-20T20:40:49.115Z","level":"info","msg":"Access token issued","domain":"identity","event":"token.exchanged","requestId":"01M5DGQ6629QT5AMV0FGJ0CKWB","userId":"01M5DG4FKEPH4D7JQ4AR11QFYY"}
{"time":"2026-10-20T20:40:49.180Z","level":"info","msg":"Draft uploaded","domain":"submissions","event":"draft.uploaded","requestId":"01M5DGQ677G9KEC0JAPHK2C9E2","userId":"01M5DG4FKEPH4D7JQ4AR11QFYY","files":2,"bytes":489}
{"time":"2026-10-20T20:40:50.128Z","level":"info","msg":"Released","domain":"submissions","event":"version.released","requestId":"01M5DGQ75PQDZC2SJDE1ATMY5P","userId":"01M5DG4FKEPH4D7JQ4AR11QFYY","count":1}
{"time":"2026-10-20T20:40:53.314Z","level":"info","msg":"Request handled","domain":"http","event":"http.request","requestId":"01M5DGQA9Z8Y2AKHNE9K8D402D","userId":"01M5DG4FKEPH4D7JQ4AR11QFYY","method":"GET","route":"/api/v1/workspaces/[workspace]/items/[scope]/[name]/[version]/tarball","status":200,"ms":2}
Four log lines from the same instance, as the server wrote them.

Usage counts, if root wants them

Root decides whether rmk and the MCP server report installs and runs: off (the default), people choose, or required. Only daily counts per item, version and tool are kept, for 90 days, never who ran what or where.

Admin settings, Usage reporting: Off, People choose (selected) or Required, and the minimum before an item's usage is shown.Admin settings, Usage reporting: Off, People choose (selected) or Required, and the minimum before an item's usage is shown.

Want to try it? Run the Docker image, or read the code.