Skip to content

lodge

lodge is a web shell for Frostyard’s own apps. One address on your tailnet opens Notes, Mail, Read, and the assistant Porter. A quick switcher moves between them, and each app stays loaded in its frame. You need it to use those apps in a browser on your tailnet, and to run Read and Porter.

  • lodge is the only process on the network. It joins your tailnet as a node of its own, lodge, and signs browsers in by their tailnet identity. Allow-lists of logins and devices decide who gets in. There are no passwords and no cookies, and nothing is on the public internet.
  • Apps are daemons behind it. Each one runs as its own system user on a Unix socket that only lodge can reach.
  • Agents get a scoped token for each app, at /mcp/<app>.
  • Untrusted bytes, such as mail parts and attachments, come from a second node, lodge-content.
  • One inference layer routes the apps’ model requests to a local model or to the providers you configure. It holds every credential.

lodge is pre-release. The latest release is v0.1.0. Each release attaches frostyard-lodge_X.Y.Z_amd64.deb, which the lodge system extension installs. On another host, you install lodge from the tarball that make dist builds. lodge v1 and its inference layer are built. Frostnotes as Notes and Frostmail as Mail run behind it. frostread runs behind it as Read, since 2026-10-21. Porter runs beside them, since 2026-10-20.

lodge is optional for the desktop apps. Frostnotes works on its own as a Flatpak. Frostmail and frostread follow the same rule when their Flatpaks ship. You opt into lodge for each app, and nothing turns it on for you. Frostnotes can sync with the hub in lodge. Frostmail can use the maild behind lodge as its backend. The server side stays as this page says.

Frostyard ships lodge and its app daemons as system extensions for Frostyard images: lodge, notesd, maild, readd, and porterd.

On a Frostyard image, enable the lodge system extension. On another systemd host, such as Debian 13, install it from the tarball. The install layout fixes /usr/share/lodge, and /usr is read-only on a Frostyard image.

The apps lodge serves share its host, because they meet lodge on Unix sockets. You build the shell in an nsl machine. The install writes only under /usr. Make the configuration directory yourself: sudo install -d -m 0755 /etc/lodge. The example configuration is /usr/share/lodge/config.example.json. The packaging README has the build, the install, the first start, and the allow-lists.

On a Frostyard image, Updex updates and rolls back the lodge system extension. Update, roll back, and remove has the steps, with the backup to take first. The release .deb is built for that extension, and it is not in the Frostyard APT repository. To check a download, run gh attestation verify frostyard-lodge_X.Y.Z_amd64.deb --repo frostyard/lodge.

On a host installed by hand with PREFIX=/opt/lodge, follow Update and Roll back in the packaging README. The Update steps take a rollback archive before the new build goes in.

lodge applies database migrations at start and refuses a database that is newer than itself. Back up /var/lib/lodge before you install a newer build.

Reviewed 2026-10-28.