summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-08 18:37:18 +0300
committerPaul Buetow <paul@buetow.org>2026-04-08 18:37:18 +0300
commit7f446b9a08e7f1c3f7b486f8c72635cc0e305c03 (patch)
tree28c7ca1982beca8f9bca8e84fbb029d93675980b
parentb44540cb6aeede82b38e017adef9def5a10ef017 (diff)
Add Pi gateway peers to mesh generator
-rw-r--r--wireguardmeshgenerator.rb8
-rw-r--r--wireguardmeshgenerator.yaml52
2 files changed, 59 insertions, 1 deletions
diff --git a/wireguardmeshgenerator.rb b/wireguardmeshgenerator.rb
index cb0f819..c4dc11a 100644
--- a/wireguardmeshgenerator.rb
+++ b/wireguardmeshgenerator.rb
@@ -245,6 +245,7 @@ InstallConfig = Struct.new(:myself, :hosts) do
@myself = myself
data = hosts[myself]
+ @os = data['os']
domain = data.dig('lan', 'domain') || data.dig('internet', 'domain')
@fqdn = "#{myself}.#{domain}"
@ssh_user = data['ssh']['user']
@@ -265,13 +266,18 @@ InstallConfig = Struct.new(:myself, :hosts) do
# Ensures the configuration directory exists and has the correct permissions.
def install!
puts "Installing Wireguard config on #{@myself}"
+ owner_group = @os == 'Linux' ? 'root:root' : 'root:wheel'
ssh <<~SH
if [ ! -d #{@conf_dir} ]; then
#{@sudo_cmd} mkdir -p #{@conf_dir}
fi
#{@sudo_cmd} chmod 700 #{@conf_dir}
#{@sudo_cmd} mv -v wg0.conf #{@conf_dir}
- #{@sudo_cmd} chmod 644 #{@conf_dir}/wg0.conf
+ #{@sudo_cmd} chown #{owner_group} #{@conf_dir}/wg0.conf
+ #{@sudo_cmd} chmod 600 #{@conf_dir}/wg0.conf
+ if command -v restorecon >/dev/null 2>&1; then
+ #{@sudo_cmd} restorecon -v #{@conf_dir}/wg0.conf || true
+ fi
SH
end
diff --git a/wireguardmeshgenerator.yaml b/wireguardmeshgenerator.yaml
index c33c301..34a0a07 100644
--- a/wireguardmeshgenerator.yaml
+++ b/wireguardmeshgenerator.yaml
@@ -211,3 +211,55 @@ hosts:
# Note: No 'lan' or 'internet' section = roaming client
# Note: No 'ssh' section = manual installation
# Note: gateway: false = connect to gateways but don't route internet through them
+ pi0:
+ os: Linux
+ ssh:
+ user: paul
+ conf_dir: /etc/wireguard
+ sudo_cmd: sudo
+ reload_cmd: systemctl reload wg-quick@wg0.service
+ lan:
+ domain: 'lan.buetow.org'
+ ip: '192.168.1.125'
+ wg0:
+ domain: 'wg0.wan.buetow.org'
+ ip: '192.168.2.203'
+ ipv6: 'fd42:beef:cafe:2::203'
+ exclude_peers:
+ - f0
+ - f1
+ - f2
+ - f3
+ - r0
+ - r1
+ - r2
+ - earth
+ - pixel7pro
+ - freebsd
+ - pi1
+ pi1:
+ os: Linux
+ ssh:
+ user: paul
+ conf_dir: /etc/wireguard
+ sudo_cmd: sudo
+ reload_cmd: systemctl reload wg-quick@wg0.service
+ lan:
+ domain: 'lan.buetow.org'
+ ip: '192.168.1.126'
+ wg0:
+ domain: 'wg0.wan.buetow.org'
+ ip: '192.168.2.204'
+ ipv6: 'fd42:beef:cafe:2::204'
+ exclude_peers:
+ - f0
+ - f1
+ - f2
+ - f3
+ - r0
+ - r1
+ - r2
+ - earth
+ - pixel7pro
+ - freebsd
+ - pi0