diff --git a/bot.py b/bot.py old mode 100644 new mode 100755 index 3b65d53..5b0fdf5 --- a/bot.py +++ b/bot.py @@ -48,7 +48,7 @@ def list_peers(update, context): peer_name = "_".join(update.message.text.split()[1:]) try: update.message.reply_photo( - open(f'clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'clients/{peer_name}.conf', 'r').read()) + open(f'/etc/wireguard/clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients/{peer_name}.conf', 'r').read()) except: update.message.reply_text("Wrong client name.") @@ -70,7 +70,7 @@ def add_peer(update, context): peer_name = "_".join(update.message.text.split()[1:]) log.info("Creating peer %s", peer_name) wg_add_peer(peer_name) - update.message.reply_photo(open(f'clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'clients/{peer_name}.conf', 'r').read()) + update.message.reply_photo(open(f'/etc/wireguard/clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients/{peer_name}.conf', 'r').read()) def error(update, context): update.message.reply_text("Something went wrong...") diff --git a/gen.py b/gen.py old mode 100644 new mode 100755 index 43f5476..b10c643 --- a/gen.py +++ b/gen.py @@ -9,7 +9,7 @@ import ipaddress import argparse import configparser from socket import getfqdn -from os import system +from os import system, path, mkdir from base64 import b64encode, b64decode from nacl.public import PrivateKey from ipaddress import ip_address @@ -36,6 +36,9 @@ peer_name = args.peer del_name = args.delete is_update = args.update wpm_config = configparser.ConfigParser() +client_dir = f"client_{args.config}" +if not path.isdir(client_dir): + mkdir(client_dir) if wpm_config.read('wpm.conf'): ips = wpm_config['Interface'].get('allowed_ips', '0.0.0.0/0') dns = wpm_config['Interface'].get('dns', '8.8.8.8') @@ -89,7 +92,7 @@ class Peer: def gen_config(self, helper): """Generate peer config""" - filename = f"clients/{self.comment.replace(' ', '_')}" + filename = f"/etc/wireguard/{client_dir}/{self.comment.replace(' ', '_')}" _wg = wgconfig.WGConfig(f"{filename}.conf") _wg.initialize_file() _wg.add_attr(None, 'Address', self.allowed_ips) @@ -97,7 +100,7 @@ class Peer: _wg.add_attr(None, 'PrivateKey', self.priv_key) _wg.add_peer(helper.server_pub_key) _wg.add_attr(helper.server_pub_key, 'AllowedIPs', f'{helper.dns}/32, {ips}') - _wg.add_attr(helper.server_pub_key, 'Endpoint', f"{helper.server_addr}:51820") + _wg.add_attr(helper.server_pub_key, 'Endpoint', f"{helper.server_addr}") _wg.add_attr(helper.server_pub_key, 'PersistentKeepalive', 10) _wg.write_file() system(f'qrencode -r {filename}.conf -o {filename}-qr.png')