Refactor environment variables with shorter names and add comprehensive override support
- Rename OVERRIDE_INTERFACE_* to WG_* (shorter, non-conflicting) - Add interface overrides: WG_PORT, WG_DEVICE, WG_MTU, WG_IPV4_CIDR, WG_IPV6_CIDR, WG_ENABLED - Add client config overrides: WG_HOST, WG_CLIENT_PORT, WG_DEFAULT_DNS, WG_DEFAULT_ALLOWED_IPS, WG_DEFAULT_MTU, WG_DEFAULT_PERSISTENT_KEEPALIVE - Add general config overrides: WG_SESSION_TIMEOUT, WG_METRICS_PROMETHEUS, WG_METRICS_JSON - Update all API endpoints to apply and filter overrides - Update documentation with all new environment variables - Exclude AmneziaWG parameters (j*, s*, i*, h*) as requested Co-authored-by: kaaax0815 <32197462+kaaax0815@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
export default definePermissionEventHandler('admin', 'any', async () => {
|
||||
const generalConfig = await Database.general.getConfig();
|
||||
return generalConfig;
|
||||
const generalConfigWithOverrides = applyGeneralOverrides(generalConfig);
|
||||
return generalConfigWithOverrides;
|
||||
});
|
||||
|
||||
@@ -8,7 +8,20 @@ export default definePermissionEventHandler(
|
||||
event,
|
||||
validateZod(GeneralUpdateSchema, event)
|
||||
);
|
||||
await Database.general.update(data);
|
||||
|
||||
// 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);
|
||||
return { success: true };
|
||||
}
|
||||
);
|
||||
|
||||
@@ -9,7 +9,16 @@ export default definePermissionEventHandler(
|
||||
validateZod(InterfaceCidrUpdateSchema, event)
|
||||
);
|
||||
|
||||
await Database.interfaces.updateCidr(data);
|
||||
// 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);
|
||||
await WireGuard.saveConfig();
|
||||
return { success: true };
|
||||
}
|
||||
|
||||
@@ -11,15 +11,24 @@ export default definePermissionEventHandler(
|
||||
|
||||
// Remove overridden fields from the update data
|
||||
const updateData = { ...data };
|
||||
if (WG_OVERRIDE_ENV.INTERFACE_PORT !== undefined) {
|
||||
if (WG_OVERRIDE_ENV.PORT !== undefined) {
|
||||
delete updateData.port;
|
||||
}
|
||||
if (WG_OVERRIDE_ENV.INTERFACE_DEVICE !== undefined) {
|
||||
if (WG_OVERRIDE_ENV.DEVICE !== undefined) {
|
||||
delete updateData.device;
|
||||
}
|
||||
if (WG_OVERRIDE_ENV.INTERFACE_MTU !== undefined) {
|
||||
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);
|
||||
await WireGuard.saveConfig();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
export default definePermissionEventHandler('admin', 'any', async () => {
|
||||
const userConfig = await Database.userConfigs.get();
|
||||
return userConfig;
|
||||
const userConfigWithOverrides = applyUserConfigOverrides(userConfig);
|
||||
return userConfigWithOverrides;
|
||||
});
|
||||
|
||||
@@ -8,7 +8,29 @@ export default definePermissionEventHandler(
|
||||
event,
|
||||
validateZod(UserConfigUpdateSchema, event)
|
||||
);
|
||||
await Database.userConfigs.update(data);
|
||||
|
||||
// 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);
|
||||
await WireGuard.saveConfig();
|
||||
return { success: true };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user