Browse Source

Merge pull request #3 from blumberg/Wireguard

Wireguard
Robert Middleswarth 3 years ago
parent
commit
7ac7a70231

+ 1 - 0
docs/AppList.md

@@ -109,6 +109,7 @@ List of all apps included in this project with info related to it.
 |Quassel IRC|32/64 bit|Container|  |  |  |  |
 |Quassel IRC|32/64 bit|Container|  |  |  |  |
 |Radarr|32/64 bit|Container|  |  |  |  |
 |Radarr|32/64 bit|Container|  |  |  |  |
 |Raspberry Pi Docker Monitor|32/64 bit|Stack| [![](../build/images/doc_icon.png)](../docs/rpi_docker_monitor.md) | [![](../build/images/script_icon.png)](../tools/rpi_docker_monitor.sh) |  | [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)](https://www.youtube.com/watch?v=IoD3vFuep64&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=8) |
 |Raspberry Pi Docker Monitor|32/64 bit|Stack| [![](../build/images/doc_icon.png)](../docs/rpi_docker_monitor.md) | [![](../build/images/script_icon.png)](../tools/rpi_docker_monitor.sh) |  | [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)](https://www.youtube.com/watch?v=IoD3vFuep64&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=8) |
+|Reactive-Resume|64 bit|Container|  |  |  |  |
 |Redmine|32/64 bit|Stack|  |  |  |  |
 |Redmine|32/64 bit|Stack|  |  |  |  |
 |Resilio Sync|32/64 bit|Container|  |  |  |  |
 |Resilio Sync|32/64 bit|Container|  |  |  |  |
 |ruTorrent|32/64 bit|Container|  |  |  |  |
 |ruTorrent|32/64 bit|Container|  |  |  |  |

BIN
docs/images/wireguard_DeployStack.png


+ 9 - 20
docs/wireguard-install.md

@@ -15,34 +15,23 @@ An easy to use VPN server powered by [WireGuard](https://github.com/WeeJeWel/wg-
 First find Wiregaurd in the listing of templates from the project.
 First find Wiregaurd in the listing of templates from the project.
 ![find wireguard](https://user-images.githubusercontent.com/42878642/140615769-aad713c2-630c-437a-b56d-9102e2f7b1ed.png)
 ![find wireguard](https://user-images.githubusercontent.com/42878642/140615769-aad713c2-630c-437a-b56d-9102e2f7b1ed.png)
 
 
-Then you will want to "Copy as Custom" because we will need to change some of the default values to tailor it for your use.
-![copy custom](https://user-images.githubusercontent.com/42878642/140615790-b8fda3f3-496d-46d7-aa02-16de1877f289.png)
+## Set all variables
 
 
-### This Step is now complete go to the next step.
-<br><br>
-## Customize the App Template.<br>
-
-We will need to edit the template to change a few values.
-![edit template](https://user-images.githubusercontent.com/42878642/140615811-9307f1cf-078a-4e38-b5d9-bad661c1bfad.png)
+![DeployStack](images/wireguard_DeployStack.png)
 
 
-First Ensure the top 3 items (highlighted yellow) are filled out with your own values.
+- `WG_HOST`: A domain name (usually a DDNS) that points to your public IP
+- `PASSWORD`: Password to access the WebUI interface. If left blank, there will be no login page
+- `WG_PORT`: PORT to use to connect to Wireguard from outside
+- `WG_DEFAULT_DNS`: DNS to use while on VPN. It can point to your router (usually 192.168.x.x) or an external one (like 1.1.1.1 or 8.8.8.8). You can set 2 separating them by comma
+- `WG_ALLOWED_IPS`: IPs which connection will be allowed.
 
 
-Second you will need to change the two values in the environment section that are circled.
+On my network I deploy a Pi-Hole for DNS level ad blocking and I also have multiple networks which all have various devices on them. So for my setup I used the following values, but make sure you use what will work for your setup:
 
 
-Third you may want to change the 2 items with lines next to them.  On my network I deploy a Pi-Hole for DNS level ad blocking and I also have multiple networks which all have
-various devices on them.  So for my setup I used the following values, but make sure you use what will work for your setup:<br>
 `- WG_DEFAULT_DNS=192.168.1.1` #This is the address of my router for DNS forwarding on my network, you can use outside DNS servers for this ie. 8.8.8.8, 8.8.4.4<br>
 `- WG_DEFAULT_DNS=192.168.1.1` #This is the address of my router for DNS forwarding on my network, you can use outside DNS servers for this ie. 8.8.8.8, 8.8.4.4<br>
 `- WG_ALLOWED_IPS=0.0.0.0/0, ::/0` #This will allow all addresses from any network, you may want to lock this down for your own setup.
 `- WG_ALLOWED_IPS=0.0.0.0/0, ::/0` #This will allow all addresses from any network, you may want to lock this down for your own setup.
 
 
-Finally make sure you save these values by clicking on the "Update the Template" button on the bottom
-![update template](https://user-images.githubusercontent.com/42878642/140615992-60749352-c0b5-4566-ba1f-06b675a3b517.png)
-<br><br>
+Once done, just click `Deploy the stack`.
 
 
-## Deploy the Stack
-
-Find the new entry (WireGuard) in your Custom Templates and click on it, then click on the "Deploy the stack" button on the bottom.
-![deploy stack](https://user-images.githubusercontent.com/42878642/140616046-89987892-358c-488d-ad97-afb82338c5e0.png)
-<br><br>
 ### Setup a User
 ### Setup a User
  
  
 On your main browser navigate to your pi's ip address with port attached (http://192.168.1.10:51821/)
 On your main browser navigate to your pi's ip address with port attached (http://192.168.1.10:51821/)

+ 31 - 2
pi-hosted_template/template/portainer-v2.json

@@ -5436,13 +5436,42 @@
 				"Other",
 				"Other",
 				"VPN"
 				"VPN"
 			],
 			],
-			"description": "You have found the easiest way to install & manage WireGuard on any Linux host!",
-			"image": "weejewel/wg-easy",
+			"description": "Fast VPN Server with easy to use User Interface",
+			"image": "weejewel/wg-easy:latest",
 			"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/wireguard.png",
 			"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/wireguard.png",
 			"name": "wg-easy",
 			"name": "wg-easy",
 			"platform": "linux",
 			"platform": "linux",
 			"title": "Wireguard Server",
 			"title": "Wireguard Server",
 			"type": 3,
 			"type": 3,
+			"env": [
+				{
+					"default": "example.domain.com",
+					"name": "WG_HOST",
+					"label": "WG_HOST",
+					"description": "Set here your DDNS domain"
+				},
+				{
+					"default": "ENTER AN ADMIN PASSWORD",
+					"name": "PASSWORD",
+					"label": "PASSWORD",
+					"description": "Leave blank to access WebUI without loggin"
+				},
+				{
+					"default": "51820",
+					"name": "WG_PORT",
+					"label": "WG_PORT"
+				},
+				{
+					"default": "1.1.1.1",
+					"name": "WG_DEFAULT_DNS",
+					"label": "WG_DEFAULT_DNS"
+				},
+				{
+					"default": "0.0.0.0/0, ::/0",
+					"name": "WG_ALLOWED_IPS",
+					"label": "WG_ALLOWED_IPS"
+				}
+			],
 			"repository": {
 			"repository": {
 				"stackfile": "stack/wireguard-easy.yml",
 				"stackfile": "stack/wireguard-easy.yml",
 				"url": "https://github.com/pi-hosted/pi-hosted"
 				"url": "https://github.com/pi-hosted/pi-hosted"

+ 7 - 7
stack/wireguard-easy.yml

@@ -4,21 +4,21 @@ services:
     environment:
     environment:
       # ⚠️ Required:
       # ⚠️ Required:
       # Change this to your host's public address
       # Change this to your host's public address
-      - WG_HOST=raspberrypi.local
+      - WG_HOST=${WG_HOST}
 
 
       # Optional:
       # Optional:
-      - PASSWORD=foobar123
-      - WG_PORT=51820
+      - PASSWORD=${PASSWORD}
+      - WG_PORT=${WG_PORT}
       - WG_DEFAULT_ADDRESS=10.8.0.x
       - WG_DEFAULT_ADDRESS=10.8.0.x
-      - WG_DEFAULT_DNS=1.1.1.1
-      - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24
+      - WG_DEFAULT_DNS=${WG_DEFAULT_DNS}
+      - WG_ALLOWED_IPS=${WG_ALLOWED_IPS}
       
       
     image: weejewel/wg-easy
     image: weejewel/wg-easy
     container_name: wg-easy
     container_name: wg-easy
     volumes:
     volumes:
       - /portainer/Files/AppData/Config/wireguard:/etc/wireguard
       - /portainer/Files/AppData/Config/wireguard:/etc/wireguard
     ports:
     ports:
-      - "51820:51820/udp"
+      - "${WG_PORT}:51820/udp"
       - "51821:51821/tcp"
       - "51821:51821/tcp"
     restart: unless-stopped
     restart: unless-stopped
     cap_add:
     cap_add:
@@ -26,4 +26,4 @@ services:
       - SYS_MODULE
       - SYS_MODULE
     sysctls:
     sysctls:
       - net.ipv4.ip_forward=1
       - net.ipv4.ip_forward=1
-      - net.ipv4.conf.all.src_valid_mark=1
+      - net.ipv4.conf.all.src_valid_mark=1

+ 31 - 2
template/portainer-v2-arm32.json

@@ -5402,13 +5402,42 @@
 				"Other",
 				"Other",
 				"VPN"
 				"VPN"
 			],
 			],
-			"description": "You have found the easiest way to install & manage WireGuard on any Linux host!",
-			"image": "weejewel/wg-easy",
+			"description": "Fast VPN Server with easy to use User Interface",
+			"image": "weejewel/wg-easy:latest",
 			"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/wireguard.png",
 			"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/wireguard.png",
 			"name": "wg-easy",
 			"name": "wg-easy",
 			"platform": "linux",
 			"platform": "linux",
 			"title": "Wireguard Server",
 			"title": "Wireguard Server",
 			"type": 3,
 			"type": 3,
+			"env": [
+				{
+					"default": "example.domain.com",
+					"name": "WG_HOST",
+					"label": "WG_HOST",
+					"description": "Set here your DDNS domain"
+				},
+				{
+					"default": "ENTER AN ADMIN PASSWORD",
+					"name": "PASSWORD",
+					"label": "PASSWORD",
+					"description": "Leave blank to access WebUI without loggin"
+				},
+				{
+					"default": "51820",
+					"name": "WG_PORT",
+					"label": "WG_PORT"
+				},
+				{
+					"default": "1.1.1.1",
+					"name": "WG_DEFAULT_DNS",
+					"label": "WG_DEFAULT_DNS"
+				},
+				{
+					"default": "0.0.0.0/0, ::/0",
+					"name": "WG_ALLOWED_IPS",
+					"label": "WG_ALLOWED_IPS"
+				}
+			],
 			"repository": {
 			"repository": {
 				"stackfile": "stack/wireguard-easy.yml",
 				"stackfile": "stack/wireguard-easy.yml",
 				"url": "https://github.com/pi-hosted/pi-hosted"
 				"url": "https://github.com/pi-hosted/pi-hosted"

+ 30 - 1
template/portainer-v2-arm64.json

@@ -5681,13 +5681,42 @@
 				"Other",
 				"Other",
 				"VPN"
 				"VPN"
 			],
 			],
-			"description": "You have found the easiest way to install & manage WireGuard on any Linux host!",
+			"description": "Fast VPN Server with easy to use User Interface",
 			"image": "weejewel/wg-easy:latest",
 			"image": "weejewel/wg-easy:latest",
 			"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/wireguard.png",
 			"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/wireguard.png",
 			"name": "wg-easy",
 			"name": "wg-easy",
 			"platform": "linux",
 			"platform": "linux",
 			"title": "Wireguard Server",
 			"title": "Wireguard Server",
 			"type": 3,
 			"type": 3,
+			"env": [
+				{
+					"default": "example.domain.com",
+					"name": "WG_HOST",
+					"label": "WG_HOST",
+					"description": "Set here your DDNS domain"
+				},
+				{
+					"default": "ENTER AN ADMIN PASSWORD",
+					"name": "PASSWORD",
+					"label": "PASSWORD",
+					"description": "Leave blank to access WebUI without loggin"
+				},
+				{
+					"default": "51820",
+					"name": "WG_PORT",
+					"label": "WG_PORT"
+				},
+				{
+					"default": "1.1.1.1",
+					"name": "WG_DEFAULT_DNS",
+					"label": "WG_DEFAULT_DNS"
+				},
+				{
+					"default": "0.0.0.0/0, ::/0",
+					"name": "WG_ALLOWED_IPS",
+					"label": "WG_ALLOWED_IPS"
+				}
+			],
 			"repository": {
 			"repository": {
 				"stackfile": "stack/wireguard-easy.yml",
 				"stackfile": "stack/wireguard-easy.yml",
 				"url": "https://github.com/pi-hosted/pi-hosted"
 				"url": "https://github.com/pi-hosted/pi-hosted"