From fae25b5aaf489d5f9de3b15b9f882eff544055de Mon Sep 17 00:00:00 2001 From: vx3r Date: Thu, 30 Jan 2020 17:16:10 +0900 Subject: [PATCH] update readme with systemd and inotify examples --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8843874..edbd035 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Simple Web based configuration generator for [WireGuard](https://wireguard.com). ## Whay another one ? -All WireGuard UI implementation are trying to manage the WireGuard by applying configurations or creation network rules. +All WireGuard UI implementation are trying to manage the service by applying configurations and creating network rules. This implementation only generate configuration and its up to you to create network rules and apply configuration to WireGuard. For example by monituring generated directory with [inotifywait](https://github.com/inotify-tools/inotify-tools/wiki). @@ -50,6 +50,51 @@ services: volumes: - /mnt/raid-lv-data/docker-persistent-data/wg-gen-web:/data ``` +## How to trigger WireGuard on host + +Before going further create a symlink from docker mounted volume to `/etc/wireguard` +``` +ln -s /mnt/raid-lv-data/docker-persistent-data/wg-gen-web /etc/wireguard +``` + +### Example with ```systemd``` +Using `systemd.path` monitor for directory changes see [systemd doc](https://www.freedesktop.org/software/systemd/man/systemd.path.html) +``` +# /etc/systemd/system/wg-gen-web.path +[Unit] +Description=Watch /etc/wireguard for changes + +[Path] +PathModified=/etc/wireguard + +[Install] +WantedBy=multi-user.target +``` +This `.path` will activate unit file with the same name +``` +# /etc/systemd/system/wg-gen-web.service +[Unit] +Description=Restart WireGuard +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service + +[Install] +WantedBy=multi-user.target +``` +Which will restart WireGuard service + +### Example with ```inotifywait``` +Using whatever init system create a daemon running this script +``` +#!/bin/sh +while inotifywait -e modify -e create /etc/wireguard; do + wg-quick down wg0 + wg-quick up wg0 +done +``` ## What is out of scope @@ -58,7 +103,6 @@ services: ## TODO - * Full setup example with `inotifywait` and `systemd` * Multi-user support behind [Authelia](https://github.com/authelia/authelia) (suggestions / thoughts are welcome) * Send configs by email to client