- Default hosting mode is now Localtunnel — public *.loca.lt URL,
no account, auto-fetched on first run. Replaces the prototyped
Tailscale mode.
- Tailscale code purged from launcher + CLI; docs swapped to
Localtunnel throughout (easy-setup, joining-a-server, server-cli,
troubleshooting, faq, READMEs).
- Launcher sidebar gains an Open admin panel button — opens
https://admin.<apex> in the browser once the server is live.
- SQLite db moves to %APPDATA%\DorkNet\dorknet.db (server reads
Database__SqlitePath env var, launcher passes it). Existing dbs
under <serverDir>\data\ are migrated on first run.
- CLI Program.cs: --mode default flips from tailscale to localtunnel;
csproj links in LocaltunnelTunnel + LocaltunnelInstaller.
- New Backend files: LauncherNameServer, LocaltunnelInstaller,
LocaltunnelTunnel, SingleOriginServiceMap.
- .gitignore: exclude installer/out/.
Raw exception messages ("Access is denied", HttpRequestException
stack traces) gave the user nothing to do. The flow now translates
the common failures into plain language and offers a one-click
retry that re-runs the host/join flow from the top:
- ErrorTranslator handles HttpRequestException (network down),
TaskCanceledException (timeout), SocketException (firewall),
UnauthorizedAccessException + IOException "in use" (Rec Room
open), missing folder / files (re-pick install), cloudflared
download truncation (suggests LAN mode), port 5005 already bound
- Patcher log output goes through TranslateMessage which catches
the same "access denied" / missing files cases
- HostStepsPanel / JoinStepsPanel gain a Retry + "Get help" row
below the steps; visible only on failure
- "Get help" opens README.md#troubleshooting on GitHub
- Stop / new run hides the retry row so a fresh start is clean