Backlog: Reliability & durability
Problem
FileMill is started by a scheduled task at logon (scripts/Install-FileMillScheduledTask.ps1 → Start-FileMill.ps1). That covers reboots and logins, but a scheduled task is a launcher, not a supervisor: if the filemill process crashes, it stays down until the next logon. Today's resilience is "survives reboot, does not survive a crash." For an always-on service this is the biggest gap.
Proposed solution
Run FileMill under a supervisor configured to restart it, easiest first:
- Wrap as a Windows Service with NSSM or WinSW (recommended) — turns the console app into a service with a "restart on exit/failure" recovery policy, no code change. This is exactly how
cloudflared (the tunnel) already runs on the same box, so there's precedent.
- Add restart-on-failure to the scheduled task — Task Scheduler Settings → "If the task fails, restart every N minutes." Weaker, zero new tooling.
- Native Windows service (handle service control messages in Go) — most work, least benefit over NSSM/WinSW.
Notes
Backlog: Reliability & durability
Problem
FileMill is started by a scheduled task at logon (
scripts/Install-FileMillScheduledTask.ps1→Start-FileMill.ps1). That covers reboots and logins, but a scheduled task is a launcher, not a supervisor: if the filemill process crashes, it stays down until the next logon. Today's resilience is "survives reboot, does not survive a crash." For an always-on service this is the biggest gap.Proposed solution
Run FileMill under a supervisor configured to restart it, easiest first:
cloudflared(the tunnel) already runs on the same box, so there's precedent.Notes