diff --git a/docker/routlin-dash/app/action_apply_vpn.py b/docker/routlin-dash/app/action_apply_vpn.py index 674e17b..ca1fa11 100644 --- a/docker/routlin-dash/app/action_apply_vpn.py +++ b/docker/routlin-dash/app/action_apply_vpn.py @@ -73,7 +73,7 @@ def _generate_wg_keypair(): def _server_pubkey(iface): """Read the server public key written by core.py --apply.""" try: - with open(f'{CONFIGS_DIR}/.wg-{iface}.pub') as f: + with open(f'{CONFIGS_DIR}/.{iface}.pub') as f: return f.read().strip() except OSError: return None diff --git a/routlin/USAGE.md b/routlin/USAGE.md index 8240a76..3c2f598 100644 --- a/routlin/USAGE.md +++ b/routlin/USAGE.md @@ -18,7 +18,7 @@ All configuration lives in two JSON files. Edit these to match your network befo | File | Purpose | |---|---| | `.radius-secret` | Shared secret between FreeRADIUS and RADIUS clients (APs, switches). Generated automatically on first `--apply` when RADIUS is enabled. Root-owned intentionally. | -| `.wg-.pub` | WireGuard server public key per interface (e.g. `.wg-wg0.pub`). Written by `core.py --apply`; read by the dashboard to embed in client config downloads. | +| `..pub` | WireGuard server public key per interface (e.g. `.wg0.pub`). Written by `core.py --apply`; read by the dashboard to embed in client config downloads. | | `.dashboard-queue` | Pending apply commands written by the dashboard; consumed by the 1-minute timer. | | `.dashboard-done` | UUIDs of already-processed queue entries; prevents duplicate execution. | | `.dashboard-last-run` | Epoch timestamp of the last timer execution. | diff --git a/routlin/core.py b/routlin/core.py index adc0fb3..e0b439a 100644 --- a/routlin/core.py +++ b/routlin/core.py @@ -924,7 +924,7 @@ def wg_server_key_path(iface): def wg_server_pubkey_path(iface): """Public key written to the configs dir so the Flask app can read it.""" - return SCRIPT_DIR / f".wg-{iface}.pub" + return SCRIPT_DIR / f".{iface}.pub" def wg_conf_path_for(iface): return WG_DIR / f"{iface}.conf"