improved Database & Models
This commit is contained in:
commit
0bbe91bec3
18 changed files with 956 additions and 0 deletions
40
lib/nftables/config.mjs
Normal file
40
lib/nftables/config.mjs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import {
|
||||
wireguardInterface,
|
||||
wireguardPeer,
|
||||
addressObject,
|
||||
accessPolicy,
|
||||
natPolicy
|
||||
} from "../models.mjs";
|
||||
|
||||
import path from "node:path";
|
||||
import file from "node:fs";
|
||||
import ejs from "ejs";
|
||||
|
||||
|
||||
const configTemplatePath = path.join(process.cwd(), 'templates', 'nftables.ejs');
|
||||
|
||||
|
||||
export async function generateNftablesConfig(interfaceId) {
|
||||
const ifData = Object.values(wireguardInterface.getAll()).find(fi => fi.id == interfaceId);
|
||||
const addressObjects = addressObject.getAll();
|
||||
const accessPolicies = accessPolicy.getAll();
|
||||
const natPolicies = natPolicy.getAll();
|
||||
|
||||
const configData = {
|
||||
interface: ifData,
|
||||
peerList
|
||||
};
|
||||
|
||||
const configContent = await ejs.renderFile(
|
||||
configTemplatePath,
|
||||
configData,
|
||||
{
|
||||
async: true
|
||||
}
|
||||
);
|
||||
|
||||
file.writeFileSync(
|
||||
path.join(process.cwd(), 'data', 'nftables', `${ifData.ifName}.conf`),
|
||||
configContent
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue