fix: the web service works in every state of the router.
Release / release (push) Successful in 11s

This commit is contained in:
slawek committed 2026-10-23 22:35:53 +02:00
1 parent cc6748a622
commit a4cffb67e4
10 files changed
+370 -139

No files matched your search

+8 -5
View File
@@ -493,11 +493,14 @@ curl -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"name": "alice", "password": "s3cr3t-pass"}' http://10.0.0.4:8080/users
```
`vpn-router-setup` opens `web.port` on the internal interface in the firewall, writes the address,
the port, the secret and the facts for `/config` to `/run/vpn-router/web.json` (readable by root
only) and restarts the service, so a changed `web` section
applies with `systemctl restart vpn-router-setup`. The service ends without an error when
`web.enabled` is `false`, and keeps trying to start until the router has an internal address.
The service starts on its own, without waiting for `vpn-router-setup`, and keeps running. Every
30 seconds it works out the internal address from `vpn-router.json` as `general.mode` directs,
and reads `web.port` and `web.enabled`; it listens there, moves when the address or the port
changes, and stops listening while `web.enabled` is `false` or the address is not known. Each
request reads the token secret from `vpn-router.json`, and the features and the facts for
`/config` from `/run/vpn-router/web.json` (readable by root only), which `vpn-router-setup` writes;
before that file exists the page shows no features. `vpn-router-setup` opens `web.port` on the
internal interface in the firewall.
## Removal