3.8 KiB
Linux Hosting Validation
This runbook defines the operational validation standard for VoxVera's only supported hosting target:
- Linux CLI with
systemd --user
Everything else remains below that bar until equivalent evidence exists.
Prerequisites
voxverainstalled and onPATHtorinstalledonionshare-cliavailable- a user account that can run
systemctl --user
Quick Verification
Use the helper script first:
bash scripts/linux-recovery-check.sh
This checks:
platform-status --jsondoctor --jsonautostart status --json- expected Linux support tier and platform id
- presence of
~/host - Tor and OnionShare discovery
- autostart artifacts and timer state
- per-site state for
.onionshare-session,onionshare.log, andserver.pid
Core Commands
Install autostart:
voxvera autostart
Inspect autostart:
voxvera autostart status
systemctl --user status voxvera-start.timer
systemctl --user status voxvera-start.service
Remove autostart:
voxvera autostart uninstall
Inspect runtime diagnostics:
voxvera doctor
voxvera doctor --json
Validation Checklist
1. Fresh install
Run the Linux installer or install through the supported CLI path, then confirm:
voxvera platform-status --json
voxvera doctor --json
voxvera autostart status --json
Expected:
platform_idislinux_cli_systemd- support tier is
supported voxvera_cli,onionshare_cli, andtor_binarypass
2. Build and serve
Create or edit a site, then build and serve it:
voxvera build
voxvera serve
Expected:
- site output appears under
~/host/<folder_name>/ index.htmland QR code images existonionshare.logis written.onionshare-sessionappears after the hidden service is started
3. Identity persistence
Confirm the site keeps its identity across rebuilds:
ls -la ~/host/<folder_name>/
voxvera build --config ~/host/<folder_name>/config.json
Expected:
.onionshare-sessionstill exists after rebuild
4. Autostart persistence
Confirm the recovery timer exists and is enabled:
voxvera autostart status
systemctl --user is-enabled voxvera-start.timer
systemctl --user is-active voxvera-start.timer
Expected:
- timer artifacts exist under
~/.config/systemd/user/ - timer is enabled
5. Reboot recovery
After a reboot, verify:
bash scripts/linux-recovery-check.sh
systemctl --user status voxvera-start.timer
journalctl --user -u voxvera-start.service --no-pager -n 50
Expected:
- timer remains enabled
- service has retried
start-all - configured sites are restorable without manual reconfiguration
6. Offline/reconnect recovery
Temporarily disconnect the host from the network, reconnect, then wait through at least one timer interval.
Verify:
systemctl --user status voxvera-start.timer
journalctl --user -u voxvera-start.service --no-pager -n 50
bash scripts/linux-recovery-check.sh
Expected:
- timer is still active
start-allretries appear in the service logs- Tor becomes reachable again
Paths That Matter
~/.config/systemd/user/voxvera-start.service~/.config/systemd/user/voxvera-start.timer~/host/<folder_name>/config.json~/host/<folder_name>/.onionshare-session~/host/<folder_name>/onionshare.log~/host/<folder_name>/server.pid
Failure Interpretation
If bash scripts/linux-recovery-check.sh fails:
- missing
onionshare_cliortor_binarymeans the runtime is incomplete - missing
host_rootmeans no sites are built yet - missing autostart artifacts means recovery was never installed or was removed
tor_socks_reachablewarning means Tor is not currently reachable even if it is installed
Linux should remain the only supported target until this runbook is repeatable on real hosts without caveats.