Feat/remote

TE
5d ago
+20581-20589

Summary by cubic

Adds remote access to Tofu. A server can now be reached from other devices over Tailscale, the local network, or a reverse proxy, with pairing, invitations, role-based permissions, and per-device grants; previously all access was local.

Remote access

  • The new pairing flow exchanges secrets and issues session cookies; invites carry a device role (playback, management, administration) and optional profile and file-deletion grants.
  • The new Go companion (native/tailscale) embeds a tsnet node plus the LAN HTTPS ingress, controlled only over inherited pipes.
  • Exposures are independent: embedded or system Tailscale, LAN HTTPS with a generated CA, and a trusted reverse proxy. Dashboard and destination data are projected by viewer role.

Build and platform

  • Release builds, signing, and publication moved into GitHub Actions; setup now produces runtime resources and the Tailscale companion.
  • The integration suite now runs 15 essential API scenarios against real servers and peers, covering missing-file recovery and remote permissions.
  • Custom logging replaced with evlog, HTTPError with Elysia problem, and the codegen wrapper with the graphql-codegen CLI; vendored Furin and Electrobun packages updated.