mirror of
https://github.com/towalink/wgfrontend.git
synced 2025-04-19 08:55:11 +00:00
Added systemd service configuration for wgfrontend
This commit is contained in:
parent
6c478edf53
commit
87f98118c9
@ -255,7 +255,7 @@ class QueryUser():
|
|||||||
print(' Exception: {text}'.format(text=str(e)))
|
print(' Exception: {text}'.format(text=str(e)))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return self.get_and_validate_input('Please specify the IP address of the WireGuard interface incl. prefix length [192.168.0.1/24]:', default='192.168.0.1/24', check_function=check, expert_question=False)
|
return self.get_and_validate_input('Please specify the IP address of the WireGuard interface incl. prefix length [192.168.0.17/28]:', default='192.168.0.17/28', check_function=check, expert_question=False)
|
||||||
|
|
||||||
def get_wg_networks(self):
|
def get_wg_networks(self):
|
||||||
"""Query the user for the network ranges that the clients shall route to the WireGuard server"""
|
"""Query the user for the network ranges that the clients shall route to the WireGuard server"""
|
||||||
@ -312,6 +312,8 @@ def setup_environment():
|
|||||||
print(' https://github.com/towalink/wgfrontend/tree/main/doc/network-integration')
|
print(' https://github.com/towalink/wgfrontend/tree/main/doc/network-integration')
|
||||||
print(' Automated configuration is only supported for the ProxyARP setup.')
|
print(' Automated configuration is only supported for the ProxyARP setup.')
|
||||||
print(' For this, choose an unused subrange of your local network for WireGuard.')
|
print(' For this, choose an unused subrange of your local network for WireGuard.')
|
||||||
|
print(' If your local network were 192.168.0.0/24, you could use the subrange')
|
||||||
|
print(' 192.168.0.16/28 with 192.168.0.17/28 as the WireGuard interface address.')
|
||||||
print(' Press enter to select defaults.')
|
print(' Press enter to select defaults.')
|
||||||
wg_listenport = qu.get_wg_listenport()
|
wg_listenport = qu.get_wg_listenport()
|
||||||
endpoint = qu.get_endpoint()
|
endpoint = qu.get_endpoint()
|
||||||
@ -363,7 +365,34 @@ def setup_environment():
|
|||||||
if eh.os_id == 'alpine':
|
if eh.os_id == 'alpine':
|
||||||
setupenv_alpine.start_wgfrontend_onboot()
|
setupenv_alpine.start_wgfrontend_onboot()
|
||||||
else:
|
else:
|
||||||
print(' Sorry, this can\'t be configured by this assistant on your platform yet.')
|
# Create and install systemd service
|
||||||
|
systemd_content = textwrap.dedent(f'''\
|
||||||
|
[Unit]
|
||||||
|
Description=wgfrontend service
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=wgfrontend
|
||||||
|
User={cfg.user}
|
||||||
|
Group={cfg.user}
|
||||||
|
StandardOutput=append:/var/log/wgfrontend.log
|
||||||
|
StandardError=inherit
|
||||||
|
# journalctl -u sh-dimplex
|
||||||
|
#StandardOutput=syslog
|
||||||
|
#StandardError=syslog
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
''')
|
||||||
|
if os.path.isdir('/etc/systemd/system'):
|
||||||
|
with open('/etc/systemd/system/smarthome.service', 'w') as systemd_file:
|
||||||
|
systemd_file.write(systemd_content)
|
||||||
|
eh.execute('systemctl daemon-reload', suppressoutput=True, suppresserrors=True)
|
||||||
|
eh.enable_service('wgfrontend')
|
||||||
|
else:
|
||||||
|
print(' Sorry, "/etc/systemd/system" does not exist so that the service file could not be installed.')
|
||||||
print(f'Ensuring list permission of WireGuard config directory {os.path.dirname(cfg.wg_configfile)}.')
|
print(f'Ensuring list permission of WireGuard config directory {os.path.dirname(cfg.wg_configfile)}.')
|
||||||
os.chmod(os.path.dirname(cfg.wg_configfile), 0o711)
|
os.chmod(os.path.dirname(cfg.wg_configfile), 0o711)
|
||||||
print(f'Ensuring ownership of WireGuard config file {cfg.wg_configfile}.')
|
print(f'Ensuring ownership of WireGuard config file {cfg.wg_configfile}.')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user