#!/bin/bash # Setup keys, psk and config for a central wireguard server including peers # Dependencies # apk add wireguard-tools libqrencode ### References # https://wiki.archlinux.org/title/WireGuard # Source global variables source server.cfg # ---------Functions----------- ## Create key-pair wgkeypair() { wg genkey | (umask 0077 && tee $1.key) | wg pubkey > $1.pub; } ## Create psk wgpsk() { wg genpsk | (umask 0077 && cat > $1.psk) } ## Create peer config file wgconfig() { peer=$1 ip=$2 cat >$confdir/$peer.conf < $peer-qr.txt qrencode -t png -r $confdir/$peer.conf > $peer.png } # ---------Functions----------- ## Create and move to output folder mkdir -p $confdir cd $confdir ## Create server keys wgkeypair $servername ## Create server config cat >$confdir/$servername.conf <>$confdir/$servername.conf <