mirror of
https://github.com/DoTheEvo/selfhosted-apps-docker.git
synced 2026-11-11 01:10:08 +01:00
update
This commit is contained in:
1 parent
0868237c43
commit
f67e8e0340
1 file changed
+31
-36
+31
-36
@@ -23,11 +23,9 @@ Written in javascript.
|
|||||||
└── docker/
|
└── docker/
|
||||||
└── wg-easy/
|
└── wg-easy/
|
||||||
├── 🗁 wireguard_data/
|
├── 🗁 wireguard_data/
|
||||||
├── 🗋 .env
|
|
||||||
└── 🗋 docker-compose.yml
|
└── 🗋 docker-compose.yml
|
||||||
```
|
```
|
||||||
* `wireguard_data/` - a directory with wireguard config files
|
* `wireguard_data/` - a directory with wireguard config files
|
||||||
* `.env` - a file containing environment variables for docker compose
|
|
||||||
* `docker-compose.yml` - a docker compose file, telling docker how to run the container
|
* `docker-compose.yml` - a docker compose file, telling docker how to run the container
|
||||||
|
|
||||||
# Compose
|
# Compose
|
||||||
@@ -37,62 +35,50 @@ Written in javascript.
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
wg-easy:
|
wg-easy:
|
||||||
image: ghcr.io/wg-easy/wg-easy:14
|
image: ghcr.io/wg-easy/wg-easy:15.4
|
||||||
container_name: wg-easy
|
container_name: wg-easy
|
||||||
hostname: wg-easy
|
hostname: wg-easy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file: .env
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./wireguard_data:/etc/wireguard
|
- ./wireguard_data:/etc/wireguard
|
||||||
|
- /lib/modules:/lib/modules:ro
|
||||||
ports:
|
ports:
|
||||||
- "51820:51820/udp" # vpn traffic
|
- "51820:51820/udp" # vpn traffic
|
||||||
- "51821:51821" # web interface
|
expose:
|
||||||
|
- "51821" # web interface
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN
|
- NET_ADMIN
|
||||||
- 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
|
||||||
|
environment:
|
||||||
|
- INSECURE=true
|
||||||
|
- DISABLE_IPV6=true
|
||||||
|
# unattended setup on first run
|
||||||
|
- INIT_ENABLED=true
|
||||||
|
- INIT_USERNAME=myspecialadmin
|
||||||
|
- INIT_PASSWORD=mysecretpasswordthatislong12charAtleast
|
||||||
|
- INIT_HOST=vpn.example.com
|
||||||
|
- INIT_PORT=51820
|
||||||
|
- INIT_DNS=
|
||||||
|
- INIT_ALLOWED_IPS=192.168.1.0/24
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
name: $DOCKER_MY_NETWORK
|
name: caddy_net
|
||||||
external: true
|
external: true
|
||||||
```
|
```
|
||||||
|
|
||||||
`.env`
|
|
||||||
```bash
|
|
||||||
# GENERAL
|
|
||||||
DOCKER_MY_NETWORK=caddy_net
|
|
||||||
TZ=Europe/Bratislava
|
|
||||||
|
|
||||||
#WG-EASY
|
|
||||||
WG_HOST=vpn.example.com # can also be just public IP
|
|
||||||
# PASSWORD=supersecretpassword
|
|
||||||
PASSWORD_HASH=$$2a$$12$$52a84HoSf99aLL7lmt9NsO0hlhZmGuJnyBK.bToiSdbQhTvMjV3ce
|
|
||||||
WG_PORT=51820
|
|
||||||
WG_DEFAULT_ADDRESS=10.221.221.x
|
|
||||||
WG_ALLOWED_IPS=192.168.1.0/24
|
|
||||||
WG_DEFAULT_DNS=
|
|
||||||
```
|
|
||||||
|
|
||||||
In version 14 `PASSWORD` as env variable is no longer allowed
|
|
||||||
and `PASSWORD_HASH` must be used.<br>
|
|
||||||
It is [a bcrypt hash](https://github.com/wg-easy/wg-easy/blob/master/How_to_generate_an_bcrypt_hash.md)
|
|
||||||
of the password and in compose it must be without quotation marks
|
|
||||||
and any `$` symbol needs to be doubled - replaced with `$$`.
|
|
||||||
|
|
||||||
DNS is set to null as I had issues with it set, but it should be tried,
|
|
||||||
set it to ip address where at port 53 dns server answers. Test then with nslookup.
|
|
||||||
|
|
||||||
# Reverse proxy
|
# Reverse proxy
|
||||||
|
|
||||||
Caddy v2 is used, details
|
Caddy is used, that's why the web interface port is just exposed and not mapped
|
||||||
[here](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/caddy_v2).</br>
|
and why the insecure is set to true for just http.<br>
|
||||||
|
Details [here](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/caddy_v2).</br>
|
||||||
|
|
||||||
`Caddyfile`
|
`Caddyfile`
|
||||||
```php
|
```php
|
||||||
vpn.{$MY_DOMAIN} {
|
vpn.example.com {
|
||||||
reverse_proxy wg-easy:51821
|
reverse_proxy wg-easy:51821
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -101,11 +87,17 @@ vpn.{$MY_DOMAIN} {
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
Login with the password from the .env file.<br>
|
If you need to import old config, you need to change env variable `INIT_ENABLED=false` <br>
|
||||||
Add user, download config, use it.
|
It then guides you through setup and one of the steps is import of old config.
|
||||||
|
|
||||||
# Trouble shooting
|
# Trouble shooting
|
||||||
|
|
||||||
|
Make sure you forward udp port `51820`.
|
||||||
|
|
||||||
|
# Site-to-Site
|
||||||
|
|
||||||
|
[https://www.procustodibus.com/blog/2020/12/wireguard-site-to-site-config/](https://www.procustodibus.com/blog/2020/12/wireguard-site-to-site-config/)
|
||||||
|
|
||||||
# Update
|
# Update
|
||||||
|
|
||||||
Manual image update:
|
Manual image update:
|
||||||
@@ -114,3 +106,6 @@ Manual image update:
|
|||||||
- `docker compose up -d`</br>
|
- `docker compose up -d`</br>
|
||||||
- `docker image prune`
|
- `docker image prune`
|
||||||
|
|
||||||
|
# Alternative
|
||||||
|
|
||||||
|
[netbird](https://github.com/netbirdio/netbird)
|
||||||
Reference in new issue
Block a user