mirror of
https://github.com/ngoduykhanh/wireguard-ui.git
synced 2025-05-23 00:15:19 +03:00
Add docker-compose examples (#339)
This commit is contained in:
parent
7b848c841f
commit
b8341dd36f
7 changed files with 151 additions and 12 deletions
30
examples/docker-compose/README.md
Normal file
30
examples/docker-compose/README.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
## Prerequisites
|
||||
|
||||
### Kernel Module
|
||||
|
||||
Depending on if the Wireguard kernel module is available on your system you have more or less choices which example to use.
|
||||
|
||||
You can check if the kernel modules are available via the following command:
|
||||
```shell
|
||||
modprobe wireguard
|
||||
```
|
||||
|
||||
If the command exits successfully and doesn't print an error the kernel modules are available.
|
||||
If it does error, you either have to install them manually (or activate if deactivated) or use an userspace implementation.
|
||||
For an example of an userspace implementation, see _borigtun_.
|
||||
|
||||
### Credentials
|
||||
|
||||
Username and password for all examples is `admin` by default.
|
||||
For security reasons it's highly recommended to change them before the first startup.
|
||||
|
||||
## Examples
|
||||
- **[system](system.yml)**
|
||||
|
||||
If you have Wireguard already installed on your system and only want to run the UI in docker this might fit the most.
|
||||
- **[linuxserver](linuxserver.yml)**
|
||||
|
||||
If you have the Wireguard kernel modules installed (included in the mainline kernel since version 5.6) but want it running inside of docker, this might fit the most.
|
||||
- **[boringtun](boringtun.yml)**
|
||||
|
||||
If Wireguard kernel modules are not available, you can switch to an userspace implementation like [boringtun](https://github.com/cloudflare/boringtun).
|
43
examples/docker-compose/boringtun.yml
Normal file
43
examples/docker-compose/boringtun.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
version: "3"
|
||||
|
||||
services:
|
||||
boringtun:
|
||||
image: ghcr.io/ntkme/boringtun:edge
|
||||
command:
|
||||
- wg0
|
||||
container_name: boringtun
|
||||
# use the network of the 'wireguard-ui' service. this enables to show active clients in the status page
|
||||
network_mode: service:wireguard-ui
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
volumes:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
- ./config:/etc/wireguard
|
||||
|
||||
wireguard-ui:
|
||||
image: ngoduykhanh/wireguard-ui:latest
|
||||
container_name: wireguard-ui
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
environment:
|
||||
- SENDGRID_API_KEY
|
||||
- EMAIL_FROM_ADDRESS
|
||||
- EMAIL_FROM_NAME
|
||||
- SESSION_SECRET
|
||||
- WGUI_USERNAME=admin
|
||||
- WGUI_PASSWORD=admin
|
||||
- WG_CONF_TEMPLATE
|
||||
- WGUI_MANAGE_START=true
|
||||
- WGUI_MANAGE_RESTART=true
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 50m
|
||||
volumes:
|
||||
- ./db:/app/db
|
||||
- ./config:/etc/wireguard
|
||||
ports:
|
||||
# port for wireguard-ui
|
||||
- "5000:5000"
|
||||
# port of the wireguard server. this must be set here as the `boringtun` container joins the network of this container and hasn't its own network over which it could publish the ports
|
||||
- "51820:51820/udp"
|
42
examples/docker-compose/linuxserver.yml
Normal file
42
examples/docker-compose/linuxserver.yml
Normal file
|
@ -0,0 +1,42 @@
|
|||
version: "3"
|
||||
|
||||
services:
|
||||
wireguard:
|
||||
image: linuxserver/wireguard:latest
|
||||
container_name: wireguard
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
volumes:
|
||||
- ./config:/config
|
||||
ports:
|
||||
# port for wireguard-ui. this must be set here as the `wireguard-ui` container joins the network of this container and hasn't its own network over which it could publish the ports
|
||||
- "5000:5000"
|
||||
# port of the wireguard server
|
||||
- "51820:51820/udp"
|
||||
|
||||
wireguard-ui:
|
||||
image: ngoduykhanh/wireguard-ui:latest
|
||||
container_name: wireguard-ui
|
||||
depends_on:
|
||||
- wireguard
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
# use the network of the 'wireguard' service. this enables to show active clients in the status page
|
||||
network_mode: service:wireguard
|
||||
environment:
|
||||
- SENDGRID_API_KEY
|
||||
- EMAIL_FROM_ADDRESS
|
||||
- EMAIL_FROM_NAME
|
||||
- SESSION_SECRET
|
||||
- WGUI_USERNAME=admin
|
||||
- WGUI_PASSWORD=admin
|
||||
- WG_CONF_TEMPLATE
|
||||
- WGUI_MANAGE_START=true
|
||||
- WGUI_MANAGE_RESTART=true
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 50m
|
||||
volumes:
|
||||
- ./db:/app/db
|
||||
- ./config:/etc/wireguard
|
27
examples/docker-compose/system.yml
Normal file
27
examples/docker-compose/system.yml
Normal file
|
@ -0,0 +1,27 @@
|
|||
version: "3"
|
||||
|
||||
services:
|
||||
wireguard-ui:
|
||||
image: ngoduykhanh/wireguard-ui:latest
|
||||
container_name: wireguard-ui
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
# required to show active clients. with this set, you don't need to expose the ui port (5000) anymore
|
||||
network_mode: host
|
||||
environment:
|
||||
- SENDGRID_API_KEY
|
||||
- EMAIL_FROM_ADDRESS
|
||||
- EMAIL_FROM_NAME
|
||||
- SESSION_SECRET
|
||||
- WGUI_USERNAME=admin
|
||||
- WGUI_PASSWORD=admin
|
||||
- WG_CONF_TEMPLATE
|
||||
- WGUI_MANAGE_START=false
|
||||
- WGUI_MANAGE_RESTART=false
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 50m
|
||||
volumes:
|
||||
- ./db:/app/db
|
||||
- /etc/wireguard:/etc/wireguard
|
Loading…
Add table
Add a link
Reference in a new issue