TravelRouter

TravelRouter documentation Experimental

Security policy

Report vulnerabilities using GitHub private vulnerability reporting. Do not put passwords, exported backups, WireGuard private keys, proxy credentials, personal DNS histories, or full public-network captures in an issue.

This initial release is experimental. Only the current release is maintained. Image and CI qualification do not imply a completed physical hardware or provider test. Review the open hardware acceptance checklist before using it during travel.

Security boundaries

Updates

Application files must verify against the embedded Ed25519 release public key. An older/equal version cannot replace the running or already staged version. The signing private key is a repository secret available only to the tag release job; forks must generate their own release key and replace the embedded public key.

Alpine updates stay on the pinned stable branch and require official package/index signatures. They are staged for reboot; the running RAM root is not hot-upgraded. Kernel, initramfs and boot-firmware changes use a complete verified release image. The updater retains the previous package repository and configuration generation. FAT32 and abrupt power loss are still a recovery risk; keep an external backup.

GitHub Actions runs CodeQL (Python, JavaScript, workflow code), Bandit, Ruff, unit/HTTP tests, ShellCheck, secret scanning, dependency review/audit, and a HIGH/CRITICAL image package scan. These tools reduce risk; none proves absence of vulnerabilities.