Add environment variables to override admin panel interface settings

Co-authored-by: kaaax0815 <32197462+kaaax0815@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-11-14 13:01:39 +00:00
parent 5d6c35b183
commit e444936c04
5 changed files with 87 additions and 15 deletions
+2 -1
View File
@@ -1,8 +1,9 @@
export default definePermissionEventHandler('admin', 'any', async () => {
const wgInterface = await Database.interfaces.get();
const wgInterfaceWithOverrides = applyInterfaceOverrides(wgInterface);
return {
...wgInterface,
...wgInterfaceWithOverrides,
privateKey: undefined,
};
});
+14 -1
View File
@@ -8,7 +8,20 @@ export default definePermissionEventHandler(
event,
validateZod(InterfaceUpdateSchema, event)
);
await Database.interfaces.update(data);
// Remove overridden fields from the update data
const updateData = { ...data };
if (WG_OVERRIDE_ENV.INTERFACE_PORT !== undefined) {
delete updateData.port;
}
if (WG_OVERRIDE_ENV.INTERFACE_DEVICE !== undefined) {
delete updateData.device;
}
if (WG_OVERRIDE_ENV.INTERFACE_MTU !== undefined) {
delete updateData.mtu;
}
await Database.interfaces.update(updateData);
await WireGuard.saveConfig();
return { success: true };
}