master
wgapi Cloud9 2021-10-21 12:05:24 -06:00
parent 8571d2147a
commit 3ec541c282
1 changed files with 13 additions and 8 deletions

View File

@ -61,7 +61,8 @@ module.exports = async (req, res) => {
let keypair; try {
keypair = await wg.generateKeypair()
} catch (err) {
console.log(err)
console.error(`Unable to generateKeypair:\n${err}`)
res.sendStatus(409); return
}
// Peer with each server
@ -70,12 +71,13 @@ module.exports = async (req, res) => {
let psk; try {
psk = await wg.generatePSK()
} catch (err) {
console.log(err)
console.error(`Unable to generate PSK:\n${err}`)
res.sendStatus(409); return
}
// Add server to client as [Peer]
// Add server to user config as [Peer]
const allowed_ipv4s = `${server.ipv4}/${(server.host===env.LOCAL_SERVER)?env.IPV4_CIDR:'32'}`
const allowed_ipv6s = `${server.ipv6}/${(server.host===env.LOCAL_SERVER)?env.IPV6_CIDR:'128'}`
client_peers.push(`
[Peer] # ${server.host}.${env.TLD}
PublicKey = ${server.pubkey}
@ -83,18 +85,21 @@ PresharedKey = ${psk}
AllowedIPs = ${allowed_ipv4s}, ${allowed_ipv6s}
Endpoint = ${server.endpoint}
PersistentKeepAlive = 25`)
// Add client to server as [Peer]
// Add new user device to server config as [Peer]
const server_config = `\n
[Peer] # ${new_hostname}.${user.name}.${env.TLD}
PublicKey = ${keypair[0]}
PresharedKey = ${psk}
AllowedIPs = ${ipv4_addr}/32, ${ipv6_addr}/128`
// Add server_config to local wg0.conf
if (server.host===env.LOCAL_SERVER) {
// Add server_config to wg0.conf
try { await fs.appendFile(env.WG_CONFIG_FILE, server_config) }
catch (err) { console.error(err); return}
// Remote server: send config
} else {
// Send config to other server
console.log(`Sending config to ${server.host}.gf4`)
try {
await axios.post(`${server.admin_endpoint}/add`, server_config, {
@ -110,7 +115,7 @@ AllowedIPs = ${ipv4_addr}/32, ${ipv6_addr}/128`
//TODO: Nameserver config
// Generate config
// Generate user config
const listen_port = Math.floor(50000 + Math.random() * 10000)
const config = `[Interface]
PrivateKey = ${keypair[1]}