diff --git a/api/wireguard_manager.py b/api/wireguard_manager.py index 7a06789..abc5d12 100644 --- a/api/wireguard_manager.py +++ b/api/wireguard_manager.py @@ -216,7 +216,16 @@ class WireGuardManager(BaseServiceManager): return {'restarted': restarted, 'warnings': warnings} try: with open(cf) as f: - lines = f.readlines() + raw = f.read() + + # Bootstrap from generate_config() if file is empty or has no [Interface] + if not raw.strip() or '[Interface]' not in raw: + raw = self.generate_config() + with open(cf, 'w') as f: + f.write(raw) + warnings.append('wg0.conf was empty — regenerated from keys') + + lines = raw.splitlines(keepends=True) def _set_iface_field(lines, key, value): result = []