From 9d811c3d9c1f4e7ad90c9b1e2bc0d85d1c7da225 Mon Sep 17 00:00:00 2001
From: Xiao Pan <gky44px1999@gmail.com>
Date: Fri, 22 Dec 2023 05:39:58 +0000
Subject: nginx enable ipv6. Switch from systemd-networkd to networkmanager
 because somehow I could not ping studio global pubic ipv6 (stateless address
 auto-configuration? (SLAAC)?), but I can ping link-local address which makes
 the issue very weird

---
 .../dispatcher.d/70-wifi-wired-exclusive           | 16 ++++++++++
 etc/nginx/nginx.conf                               | 11 +++++--
 etc/systemd/network/20-wired.network               |  9 ------
 .../wg-quick@wg_studio.service                     |  1 -
 home/xyz/.config/myconf/sye                        | 35 +++++++++++-----------
 5 files changed, 42 insertions(+), 30 deletions(-)
 create mode 100755 etc/NetworkManager/dispatcher.d/70-wifi-wired-exclusive
 delete mode 100644 etc/systemd/network/20-wired.network
 delete mode 120000 etc/systemd/system/multi-user.target.wants/wg-quick@wg_studio.service

diff --git a/etc/NetworkManager/dispatcher.d/70-wifi-wired-exclusive b/etc/NetworkManager/dispatcher.d/70-wifi-wired-exclusive
new file mode 100755
index 00000000..79ac666e
--- /dev/null
+++ b/etc/NetworkManager/dispatcher.d/70-wifi-wired-exclusive
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# https://wiki.archlinux.org/title/NetworkManager#Use_dispatcher_to_automatically_toggle_wireless_depending_on_LAN_cable_being_plugged_in
+
+if [ "$1" = "enp2s0" ]; then
+	case "$2" in
+		up)
+			nmcli radio wifi off
+			;;
+		down)
+			nmcli radio wifi on
+			;;
+	esac
+elif [ "$(nmcli -g GENERAL.STATE device show enp2s0)" = "20 (unavailable)" ]; then
+	nmcli radio wifi on
+fi
diff --git a/etc/nginx/nginx.conf b/etc/nginx/nginx.conf
index d66bffb9..6b7b8d2d 100644
--- a/etc/nginx/nginx.conf
+++ b/etc/nginx/nginx.conf
@@ -33,9 +33,12 @@ http {
     #gzip  on;
 
     server {
-        listen       80;
+        listen 80;
+        # needed for ipv6
+        listen [::]:80;
         # https://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server
-        listen       443 ssl;
+        listen 443 ssl;
+        listen [::]:443 ssl;
         server_name  flylightning.xyz;
 
         ssl_certificate      /etc/nginx/flylightning.pem;
@@ -121,7 +124,9 @@ http {
 
     server {
         listen 80;
+        listen [::]:80;
         listen 443 ssl;
+        listen [::]:443 ssl;
         server_name mirrors.flylightning.xyz;
 
         ssl_certificate      /etc/nginx/flylightning.pem;
@@ -140,7 +145,9 @@ http {
     # https://stackoverflow.com/questions/16182421/cgit-and-nginx-url-rewrite
     server {
         listen 80;
+        listen [::]:80;
         listen 443 ssl;
+        listen [::]:443 ssl;
         server_name git.flylightning.xyz;
         root /usr/share/webapps/cgit;
 
diff --git a/etc/systemd/network/20-wired.network b/etc/systemd/network/20-wired.network
deleted file mode 100644
index 429cab2a..00000000
--- a/etc/systemd/network/20-wired.network
+++ /dev/null
@@ -1,9 +0,0 @@
-# https://wiki.archlinux.org/title/Systemd-networkd#Wired_adapter_using_DHCP
-
-[Match]
-Name=enp2s0
-
-[Network]
-DHCP=yes
-# https://wiki.archlinux.org/title/Systemd-resolved#mDNS
-#MulticastDNS=yes
diff --git a/etc/systemd/system/multi-user.target.wants/wg-quick@wg_studio.service b/etc/systemd/system/multi-user.target.wants/wg-quick@wg_studio.service
deleted file mode 120000
index 0a92cb9a..00000000
--- a/etc/systemd/system/multi-user.target.wants/wg-quick@wg_studio.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/system/wg-quick@.service
\ No newline at end of file
diff --git a/home/xyz/.config/myconf/sye b/home/xyz/.config/myconf/sye
index 451129b7..6a5aba4e 100644
--- a/home/xyz/.config/myconf/sye
+++ b/home/xyz/.config/myconf/sye
@@ -1,19 +1,18 @@
-UNIT FILE                            STATE   PRESET
-ddclient.service                     enabled disabled
-getty@.service                       enabled enabled
-nftables.service                     enabled disabled
-nginx.service                        enabled disabled
-sshd.service                         enabled disabled
-systemd-network-generator.service    enabled enabled
-systemd-networkd-wait-online.service enabled enabled
-systemd-networkd.service             enabled enabled
-systemd-resolved.service             enabled enabled
-systemd-time-wait-sync.service       enabled disabled
-systemd-timesyncd.service            enabled enabled
-systemd-networkd.socket              enabled disabled
-remote-fs.target                     enabled enabled
-acme.sh.timer                        enabled disabled
-paccache.timer                       enabled disabled
-pacman-filesdb-refresh.timer         enabled disabled
+UNIT FILE                          STATE   PRESET
+ddclient.service                   enabled disabled
+getty@.service                     enabled enabled
+NetworkManager-dispatcher.service  enabled disabled
+NetworkManager-wait-online.service enabled disabled
+NetworkManager.service             enabled disabled
+nftables.service                   enabled disabled
+nginx.service                      enabled disabled
+sshd.service                       enabled disabled
+systemd-resolved.service           enabled enabled
+systemd-time-wait-sync.service     enabled disabled
+systemd-timesyncd.service          enabled enabled
+remote-fs.target                   enabled enabled
+acme.sh.timer                      enabled disabled
+paccache.timer                     enabled disabled
+pacman-filesdb-refresh.timer       enabled disabled
 
-16 unit files listed.
+15 unit files listed.
-- 
cgit v1.2.3-70-g09d2