Allow admin panel updates to be saved while overrides remain effective; remove WG_ENABLED

- Remove WG_ENABLED environment variable (interface cannot be disabled)
- Allow all admin panel updates to be saved to database
- Environment variable overrides take precedence at runtime only
- Users can now update values in admin panel even when overridden
- Updated documentation to clarify override behavior

Co-authored-by: kaaax0815 <32197462+kaaax0815@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-11-14 13:41:33 +00:00
parent 67185192fd
commit 11ab71b5d2
6 changed files with 38 additions and 99 deletions
+3 -13
View File
@@ -9,19 +9,9 @@ export default definePermissionEventHandler(
validateZod(GeneralUpdateSchema, event)
);
// Remove overridden fields from the update data
const updateData = { ...data };
if (WG_GENERAL_OVERRIDE_ENV.SESSION_TIMEOUT !== undefined) {
delete updateData.sessionTimeout;
}
if (WG_GENERAL_OVERRIDE_ENV.METRICS_PROMETHEUS !== undefined) {
delete updateData.metricsPrometheus;
}
if (WG_GENERAL_OVERRIDE_ENV.METRICS_JSON !== undefined) {
delete updateData.metricsJson;
}
await Database.general.update(updateData);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.general.update(data);
return { success: true };
}
);
+3 -10
View File
@@ -9,16 +9,9 @@ export default definePermissionEventHandler(
validateZod(InterfaceCidrUpdateSchema, event)
);
// Remove overridden fields from the update data
const updateData = { ...data };
if (WG_OVERRIDE_ENV.IPV4_CIDR !== undefined) {
delete updateData.ipv4Cidr;
}
if (WG_OVERRIDE_ENV.IPV6_CIDR !== undefined) {
delete updateData.ipv6Cidr;
}
await Database.interfaces.updateCidr(updateData);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.interfaces.updateCidr(data);
await WireGuard.saveConfig();
return { success: true };
}
+3 -22
View File
@@ -9,28 +9,9 @@ export default definePermissionEventHandler(
validateZod(InterfaceUpdateSchema, event)
);
// Remove overridden fields from the update data
const updateData = { ...data };
if (WG_OVERRIDE_ENV.PORT !== undefined) {
delete updateData.port;
}
if (WG_OVERRIDE_ENV.DEVICE !== undefined) {
delete updateData.device;
}
if (WG_OVERRIDE_ENV.MTU !== undefined) {
delete updateData.mtu;
}
if (WG_OVERRIDE_ENV.IPV4_CIDR !== undefined) {
delete updateData.ipv4Cidr;
}
if (WG_OVERRIDE_ENV.IPV6_CIDR !== undefined) {
delete updateData.ipv6Cidr;
}
if (WG_OVERRIDE_ENV.ENABLED !== undefined) {
delete updateData.enabled;
}
await Database.interfaces.update(updateData);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.interfaces.update(data);
await WireGuard.saveConfig();
return { success: true };
}
+3 -22
View File
@@ -9,28 +9,9 @@ export default definePermissionEventHandler(
validateZod(UserConfigUpdateSchema, event)
);
// Remove overridden fields from the update data
const updateData = { ...data };
if (WG_CLIENT_OVERRIDE_ENV.HOST !== undefined) {
delete updateData.host;
}
if (WG_CLIENT_OVERRIDE_ENV.CLIENT_PORT !== undefined) {
delete updateData.port;
}
if (WG_CLIENT_OVERRIDE_ENV.DEFAULT_DNS !== undefined) {
delete updateData.defaultDns;
}
if (WG_CLIENT_OVERRIDE_ENV.DEFAULT_ALLOWED_IPS !== undefined) {
delete updateData.defaultAllowedIps;
}
if (WG_CLIENT_OVERRIDE_ENV.DEFAULT_MTU !== undefined) {
delete updateData.defaultMtu;
}
if (WG_CLIENT_OVERRIDE_ENV.DEFAULT_PERSISTENT_KEEPALIVE !== undefined) {
delete updateData.defaultPersistentKeepalive;
}
await Database.userConfigs.update(updateData);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.userConfigs.update(data);
await WireGuard.saveConfig();
return { success: true };
}