From fe0087314d9faa45318e900a01e7b9af55b7872d Mon Sep 17 00:00:00 2001 From: Nathan Young Date: Wed, 23 Sep 2026 23:44:54 -0600 Subject: [PATCH] Add wireguard server --- wireguard/.env | 11 ++++++++ wireguard/README.md | 4 +++ wireguard/docker-compose.yml | 28 +++++++++++++++++++ wireguard/wireguard/.donoteditthisfile | 7 +++++ wireguard/wireguard/coredns/Corefile | 6 ++++ wireguard/wireguard/peer1/peer1.conf | 11 ++++++++ wireguard/wireguard/peer1/peer1.png | Bin 0 -> 1145 bytes wireguard/wireguard/peer1/presharedkey-peer1 | 1 + wireguard/wireguard/peer1/privatekey-peer1 | 1 + wireguard/wireguard/peer1/publickey-peer1 | 1 + wireguard/wireguard/peer2/peer2.conf | 11 ++++++++ wireguard/wireguard/peer2/peer2.png | Bin 0 -> 1130 bytes wireguard/wireguard/peer2/presharedkey-peer2 | 1 + wireguard/wireguard/peer2/privatekey-peer2 | 1 + wireguard/wireguard/peer2/publickey-peer2 | 1 + wireguard/wireguard/peer3/peer3.conf | 11 ++++++++ wireguard/wireguard/peer3/peer3.png | Bin 0 -> 1135 bytes wireguard/wireguard/peer3/presharedkey-peer3 | 1 + wireguard/wireguard/peer3/privatekey-peer3 | 1 + wireguard/wireguard/peer3/publickey-peer3 | 1 + wireguard/wireguard/server/privatekey-server | 1 + wireguard/wireguard/server/publickey-server | 1 + wireguard/wireguard/templates/peer.conf | 11 ++++++++ wireguard/wireguard/templates/server.conf | 6 ++++ wireguard/wireguard/wg_confs/wg0.conf | 25 +++++++++++++++++ 25 files changed, 142 insertions(+) create mode 100644 wireguard/.env create mode 100644 wireguard/README.md create mode 100644 wireguard/docker-compose.yml create mode 100644 wireguard/wireguard/.donoteditthisfile create mode 100644 wireguard/wireguard/coredns/Corefile create mode 100644 wireguard/wireguard/peer1/peer1.conf create mode 100644 wireguard/wireguard/peer1/peer1.png create mode 100644 wireguard/wireguard/peer1/presharedkey-peer1 create mode 100644 wireguard/wireguard/peer1/privatekey-peer1 create mode 100644 wireguard/wireguard/peer1/publickey-peer1 create mode 100644 wireguard/wireguard/peer2/peer2.conf create mode 100644 wireguard/wireguard/peer2/peer2.png create mode 100644 wireguard/wireguard/peer2/presharedkey-peer2 create mode 100644 wireguard/wireguard/peer2/privatekey-peer2 create mode 100644 wireguard/wireguard/peer2/publickey-peer2 create mode 100644 wireguard/wireguard/peer3/peer3.conf create mode 100644 wireguard/wireguard/peer3/peer3.png create mode 100644 wireguard/wireguard/peer3/presharedkey-peer3 create mode 100644 wireguard/wireguard/peer3/privatekey-peer3 create mode 100644 wireguard/wireguard/peer3/publickey-peer3 create mode 100644 wireguard/wireguard/server/privatekey-server create mode 100644 wireguard/wireguard/server/publickey-server create mode 100644 wireguard/wireguard/templates/peer.conf create mode 100644 wireguard/wireguard/templates/server.conf create mode 100644 wireguard/wireguard/wg_confs/wg0.conf diff --git a/wireguard/.env b/wireguard/.env new file mode 100644 index 0000000..f36c4de --- /dev/null +++ b/wireguard/.env @@ -0,0 +1,11 @@ +# These top ones are required to be filled out + +# Mullvad keys work here +WIREGUARD_PRIVATE_KEY= +WIREGUARD_ADDRESSES= + +# Optional vars +# Exposed port (default is 51820) +PORT=1984 +# Number of client.conf files you want automatically generated (into /config/peer*/peer*.conf) +PEERS= diff --git a/wireguard/README.md b/wireguard/README.md new file mode 100644 index 0000000..e1c5881 --- /dev/null +++ b/wireguard/README.md @@ -0,0 +1,4 @@ +Changes to the docker-compose and .env files may not affect the previously made wireguard config files. So it is recommended to: +- Stop/Remove the container +- Delete the previous configuration (default location is ./wireguard) +- Start the container diff --git a/wireguard/docker-compose.yml b/wireguard/docker-compose.yml new file mode 100644 index 0000000..385df69 --- /dev/null +++ b/wireguard/docker-compose.yml @@ -0,0 +1,28 @@ +--- +services: + wireguard: + image: lscr.io/linuxserver/wireguard:latest + container_name: wireguard + cap_add: + - NET_ADMIN + - SYS_MODULE #optional + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + - SERVERURL=wg.happylizard.me #optional + - PEERS=${PEERS:-3} + - SERVERPORT=${PORT:-51820} #optional + - PEERDNS=auto #optional + - INTERNAL_SUBNET=10.20.0.0 #optional + - ALLOWEDIPS=0.0.0.0/0 #optional + - PERSISTENTKEEPALIVE_PEERS= #optional + - LOG_CONFS=true #optional + volumes: + - ./wireguard:/config + - /lib/modules:/lib/modules #optional + ports: + - ${PORT:-51820}:${PORT:-51820}/udp + sysctls: + - net.ipv4.conf.all.src_valid_mark=1 + restart: unless-stopped diff --git a/wireguard/wireguard/.donoteditthisfile b/wireguard/wireguard/.donoteditthisfile new file mode 100644 index 0000000..03ab3f5 --- /dev/null +++ b/wireguard/wireguard/.donoteditthisfile @@ -0,0 +1,7 @@ +ORIG_SERVERURL="wg.happylizard.me" +ORIG_SERVERPORT="1984" +ORIG_PEERDNS="10.20.0.1" +ORIG_PEERS="3" +ORIG_INTERFACE="10.20.0" +ORIG_ALLOWEDIPS="0.0.0.0/0" +ORIG_PERSISTENTKEEPALIVE_PEERS="" diff --git a/wireguard/wireguard/coredns/Corefile b/wireguard/wireguard/coredns/Corefile new file mode 100644 index 0000000..e26fbe6 --- /dev/null +++ b/wireguard/wireguard/coredns/Corefile @@ -0,0 +1,6 @@ +. { + loop + errors + health + forward . /etc/resolv.conf +} diff --git a/wireguard/wireguard/peer1/peer1.conf b/wireguard/wireguard/peer1/peer1.conf new file mode 100644 index 0000000..b93ea11 --- /dev/null +++ b/wireguard/wireguard/peer1/peer1.conf @@ -0,0 +1,11 @@ +[Interface] +Address = 10.20.0.2 +PrivateKey = 2Me6IkZWRid7dL7B0uQqyGAgNzVrNbzfWOd8tN2jYmw= +ListenPort = 51820 +DNS = 10.20.0.1 + +[Peer] +PublicKey = eEYoSfzAsXWz++EV7y8h2DS7RubpyiGJojx6V6HgAiI= +PresharedKey = 5WP5+4ZIy6a8ROn/2ZKaYT0m/23sbOHMFvT/euWH/Cw= +Endpoint = wg.happylizard.me:1984 +AllowedIPs = 0.0.0.0/0 diff --git a/wireguard/wireguard/peer1/peer1.png b/wireguard/wireguard/peer1/peer1.png new file mode 100644 index 0000000000000000000000000000000000000000..2620f1da554cc47a1f20a1e27891bd3c9f72fa90 GIT binary patch literal 1145 zcmV-<1cv*GP)edtA^8y(7*<&oo>q?4^l{dMT?`UOgy$aT=Q zZu~osMWNv#s?SrDYm~yyYx*(0A;NrBWt(G&@O`?p-HW}@CZpv zqPaXrY7*UuYFwop+U{e2$!9lGUR?%1I&xe@A2l9zyN&IkNK5Wj-Dn@STZl*$&0lJ} zR`k$5M?ZR%;zXshpi<7uKAzoM050?#`b%Qb+dar_+%8#~-101Lv=0cWs1~XrLwVHx zo;dNNBb~Q_W~2h!)fB~#86AGK^Y~KMRE~t;+gZvoZq0kWT06uUjB$EAolT8ybR-4^*D6XiQh6lq{G8N}_7NY9Goy_4sth8gkaR)a2%~w_ zvgYk-`fpe4+wMPpfoyKfVvVyfhZVt7b3fvkX-2G2wk}{aeK(YOP&Z;+NZ2r}W#j~X zZi3b3=tc)q7uQDfi8`1>pCeYQew6x2^^r(Z1RmUWo9raI5tSsB38pi~L+Q;z2OZUq z4y6dJ6yK0iEa}bENBoFswpv^)hXs}P^_%S`>PEyKwDd@HCB3tCBgHvojBcdaD!}6} z!F-{q_M7f)h%SVpri3`-Yhd;ld?)p9L-Zll_Q*_cvIJRFmw@0&&gw=_Ggj+FyqoBF zS2Kv)D~tNjk#!EFS;UWXmDeM1Q9q)Xcls!k=Lu$nMqK;HAabGIf+7-XAC~mcmF1}J zJvV%4#8~M>){8om@d&!i-snbXX~wc^`(TFKrS1DqSGthe7-!GYvRUf_Ne{<4C47N2 zt`_M(4!Z=5yDUNdD3hJeCgHPmDB|C`flqWJ){DQ}4GbT`Ek0`&w)|L12V%K#gj?uu zOg4m6nZx$+BZ-e}1MN_DF_!dRT^Zd-6WiVvpS{}VsJ9~L*G0W(XOagx5f`Hr`bsGX z>a!bkAX z^YeW}i~i?J{-Qrci^yw=OWM0>megpeOKL@;8?CxOQ+!X&XOp|kx6(dS`_c=jv}dgP zDa6ttSA~X4s4I0XaY)UojZSq4S5co-xB6DOsUD$@vR^{FciP^j{k6qK=1zC}U;T)B zbyNGVzu%>FAhiR}_YglCm#j;UZvy>lHV0aSPpu6QdL*mY zk>_uEeP}IvA9M-L667)M_e^?qOn$_hN3QQ8&ouX$riw?B*QRcylXP2Mf(~hZY>X29 zAbq}owr0${X%j@fMyX5Q@4=5&ox4fjS_hFk&rEWgn)ep{Xk)G`L$q4y>w9Zo%=>wG zAF_@L@gT`*K08X$5G~P-4$;qs3e|NYvCSZr@)zXzzjYNuQz{sm4)s z%mgC0N;V#x{M%73bjbYBIE1tMnY7Saar`-k3ne|s>W1VJj%S)B&%IngHikP|F$jU$ zXP&!avgt;PRJA13&on;@RV*o!hXBi*GmyncJ$iOdTc#+*)|MMc`X&8E5$!gwoZv9d^@KbcKzBDxXhTmpft zQp?$*N5*Q^jaEHZh=QPzUfdR;qpzYHov}DJ)?g01PL&B-H+7?x3v=$SJj!E1QrTL|15MQbEA^hu2IEkMP zF((kl-F);4BBfLxTb#|dlo_9Ile!Uo{+Zfd8X_LnSGGs>;z!gA{jm+an5vKVzWmxM zJ;(;o=kz|3yIl`ZiK_y)MT>C^@`Oy;2JCUtVUw8mR&HJcgDwJT|oB9 zrvq*xhz536M8YN1O}N8(cv~G$Ey|bBGuirtXAP-+P3M-Y7m)7kIcBM*Y@EEY>rD0| w>h;8BaP3SK``y5PjwpWgKfkm6MSq0;0h0=qDSIZiA^-pY07*qoM6N<$f++_l$^ZZW literal 0 HcmV?d00001 diff --git a/wireguard/wireguard/peer2/presharedkey-peer2 b/wireguard/wireguard/peer2/presharedkey-peer2 new file mode 100644 index 0000000..4a9afb7 --- /dev/null +++ b/wireguard/wireguard/peer2/presharedkey-peer2 @@ -0,0 +1 @@ +bJnoOmSwf9tbLt59nMNRdL98CtC+gMLczbqz/6hBJzo= diff --git a/wireguard/wireguard/peer2/privatekey-peer2 b/wireguard/wireguard/peer2/privatekey-peer2 new file mode 100644 index 0000000..860bf9c --- /dev/null +++ b/wireguard/wireguard/peer2/privatekey-peer2 @@ -0,0 +1 @@ +8FM+qjgHlcmWjVKYaPKH8qM7HtfXbcYf0A8lXGJ160E= diff --git a/wireguard/wireguard/peer2/publickey-peer2 b/wireguard/wireguard/peer2/publickey-peer2 new file mode 100644 index 0000000..afc1f77 --- /dev/null +++ b/wireguard/wireguard/peer2/publickey-peer2 @@ -0,0 +1 @@ +mNTq/XTXXZFtyXc7t1uQ9vdcwneU2XkWrWzjPgRe/1E= diff --git a/wireguard/wireguard/peer3/peer3.conf b/wireguard/wireguard/peer3/peer3.conf new file mode 100644 index 0000000..06b1d0b --- /dev/null +++ b/wireguard/wireguard/peer3/peer3.conf @@ -0,0 +1,11 @@ +[Interface] +Address = 10.20.0.4 +PrivateKey = SNzbsWlC/6+TI74yStzmuzKog6fAPBStdlfffp/nk3c= +ListenPort = 51820 +DNS = 10.20.0.1 + +[Peer] +PublicKey = eEYoSfzAsXWz++EV7y8h2DS7RubpyiGJojx6V6HgAiI= +PresharedKey = YLYvms8UHwE2IkF7WgIrDNDisUK4JveacI5EQpAHHUw= +Endpoint = wg.happylizard.me:1984 +AllowedIPs = 0.0.0.0/0 diff --git a/wireguard/wireguard/peer3/peer3.png b/wireguard/wireguard/peer3/peer3.png new file mode 100644 index 0000000000000000000000000000000000000000..3700ad26c8057b0658c8033de59cffabf28b9473 GIT binary patch literal 1135 zcmV-#1d#iQP)<}JYnlCS~Tl4stAB{l#v28jBnlGi=>QcJC3+9-;69E3x; z>ej92kr!y>r2gb~y*XP7;>Gb*?tKA7cNK8z^(aTI-VQ z5apd#f%;o$EbE@b%rBQ#%KG+q(JS{|I-A2aB9~uhciuvBj&eeqBW$j6-jwrqpbUup z8cYAb&+n}?AdV|K#|djC*-~KdekYp&ZLV)}JC$`2=MsCTc{Rs7NZwIqeTDNGb-%7e zOoAC*zJI!Q^X*>RrJTBPg*)wN&+VMn>2QNPpQ+s?T;%*Ab|mK`la?}*_D8!MOK0~E5j zU+k3jFHO-a(Q3tvc3LVblo2!x4^5|zdJ@ct=c}gq`eX^uohuczA2*O{FDb+oT#7oq zxBnF=6B40zR37>LRMV{Y)aN%)CbX&E;(63f4JsWy&gU!UHndaYDvw&@?0$2!mpdPy zs!yQYxv{PCc3sUmf;eskW2geI7A-Grm!az#z}kEt*s;d*`I>KSCz<+3gxJKB*) zs9Sjplntk+w#V6#WH-=aJ{yO=H97{mpJ