1
0
mirror of https://github.com/donaldzou/WGDashboard.git synced 2024-11-06 16:00:28 +01:00

Merge pull request #1 from DaanSelen/dev

Dev
This commit is contained in:
dselen 2024-08-27 09:28:16 +02:00 committed by GitHub
commit 2139865876
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 21 deletions

View File

@ -26,9 +26,9 @@ ENV WGDASH=/opt/wireguarddashboard
# Removing the Linux Image package to preserve space on the image, for this reason also deleting apt lists, to be able to install packages: run apt update. # Removing the Linux Image package to preserve space on the image, for this reason also deleting apt lists, to be able to install packages: run apt update.
# Doing WireGuard Dashboard installation measures. Modify the git clone command to get the preferred version, with a specific branch for example. # Doing WireGuard Dashboard installation measures. Modify the git clone command to get the preferred version, with a specific branch for example.
RUN mkdir -p /setup/conf && mkdir /setup/app && mkdir ${WGDASH} \ RUN mkdir -p /setup/conf && mkdir /setup/app && mkdir ${WGDASH}
&& git clone ${Git_Url} /setup/app #&& git clone ${Git_Url} /setup/app
#COPY src /setup/app/src COPY src /setup/app/src
# Set the volume to be used for WireGuard configuration persistency. # Set the volume to be used for WireGuard configuration persistency.
VOLUME /etc/wireguard VOLUME /etc/wireguard

View File

@ -5,7 +5,7 @@ services:
container_name: wgdashboard container_name: wgdashboard
environment: environment:
#- tz= # <--- Set container timezone, default: Europe/Amsterdam. #- tz= # <--- Set container timezone, default: Europe/Amsterdam.
#- global_dns= # <--- Set global DNS address, default: 1.1.1.1. - global_dns=9.9.9.9 # <--- Set global DNS address, default: 1.1.1.1.
- enable=wg0 # <--- Set the interfaces that will be enabled on startup, default: none. The option "off" is also allowed. - enable=wg0 # <--- Set the interfaces that will be enabled on startup, default: none. The option "off" is also allowed.
- isolate=wg0 # <--- When set to true, it disallows peers to talk to eachother, setting to false, allows it, default: true. - isolate=wg0 # <--- When set to true, it disallows peers to talk to eachother, setting to false, allows it, default: true.
#- public_ip= # <--- Set public IP to ensure the correct one is chosen, defaulting to the IP give by ifconfig.me. #- public_ip= # <--- Set public IP to ensure the correct one is chosen, defaulting to the IP give by ifconfig.me.
@ -13,8 +13,8 @@ services:
- 10086:10086/tcp - 10086:10086/tcp
- 51820:51820/udp - 51820:51820/udp
volumes: volumes:
- app:/opt/wireguarddashboard - ./app:/opt/wireguarddashboard
- conf:/etc/wireguard - ./conf:/etc/wireguard
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN

View File

@ -10,7 +10,8 @@ ensure_installation() {
if [ -z "$(ls -A "${WGDASH}")" ]; then if [ -z "$(ls -A "${WGDASH}")" ]; then
echo "Detected empty directory, moving over..." echo "Detected empty directory, moving over..."
mv /setup/app/{.[!.],}* "${WGDASH}" mv /setup/app/* "${WGDASH}"
mv /setup/app/.* "${WGDASH}"
python3 -m venv "${WGDASH}"/src/venv python3 -m venv "${WGDASH}"/src/venv
. "${WGDASH}/src/venv/bin/activate" . "${WGDASH}/src/venv/bin/activate"
@ -22,10 +23,6 @@ ensure_installation() {
cd "${WGDASH}"/src || exit cd "${WGDASH}"/src || exit
./wgd.sh install ./wgd.sh install
echo "Generating some files..."
./wgd.sh start
./wgd.sh stop
echo "Looks like the installation succesfully moved over." echo "Looks like the installation succesfully moved over."
else else
echo "Looks like everything is present. Or the directory is not empty." echo "Looks like everything is present. Or the directory is not empty."
@ -86,7 +83,7 @@ clean_up() {
# === SET ENV VARS === # === SET ENV VARS ===
set_envvars() { set_envvars() {
printf "\n------------- SETTING ENVIRONMENT VARIABLES ----------------\n" #printf "\n------------- SETTING ENVIRONMENT VARIABLES ----------------\n"
# Changing the DNS used for clients and the dashboard itself. # Changing the DNS used for clients and the dashboard itself.
if [ "${global_dns}" != "$(grep "peer_global_dns = " /opt/wireguarddashboard/src/wg-dashboard.ini | awk '{print $NF}')" ]; then if [ "${global_dns}" != "$(grep "peer_global_dns = " /opt/wireguarddashboard/src/wg-dashboard.ini | awk '{print $NF}')" ]; then
@ -109,10 +106,6 @@ set_envvars() {
sed -i "s/^remote_endpoint = .*/remote_endpoint = ${public_ip}/" /opt/wireguarddashboard/src/wg-dashboard.ini sed -i "s/^remote_endpoint = .*/remote_endpoint = ${public_ip}/" /opt/wireguarddashboard/src/wg-dashboard.ini
fi fi
#echo "Restarting service for good measure"
#cd "${WGDASH}"/src || exit
#./wgd.sh restart
} }
# === CORE SERVICES === # === CORE SERVICES ===
@ -121,8 +114,8 @@ start_core() {
echo "Activating Python venv and executing the WireGuard Dashboard service." echo "Activating Python venv and executing the WireGuard Dashboard service."
. "${WGDASH}"/src/venv/bin/activate . "${WGDASH}"/src/venv/bin/activate
cd "${WGDASH}"/src || return # If changing the directory fails (permission or presence error), then bash will exist this function, causing the WireGuard Dashboard to not be succesfully launched. cd "${WGDASH}"/src || return
bash wgd.sh start bash wgd.sh start &>> /dev/null
# Isolated peers feature, first converting the existing configuration files and the given names to arrays. # Isolated peers feature, first converting the existing configuration files and the given names to arrays.
local configurations=(/etc/wireguard/*) local configurations=(/etc/wireguard/*)
@ -203,7 +196,11 @@ start_core() {
# === CLEAN UP === # === CLEAN UP ===
ensure_blocking() { ensure_blocking() {
printf "\n-------------- ENSURING CONTAINER CONTINUATION -------------\n" #printf "\n-------------- ENSURING CONTAINER CONTINUATION -------------\n"
. "${WGDASH}"/src/venv/bin/activate
cd "${WGDASH}"/src || return
bash wgd.sh restart
sleep 1s sleep 1s
echo "Ensuring container continuation." echo "Ensuring container continuation."
@ -223,6 +220,6 @@ ensure_blocking() {
# Execute functions for the WireGuard Dashboard services, then set the environment variables # Execute functions for the WireGuard Dashboard services, then set the environment variables
ensure_installation ensure_installation
clean_up clean_up
set_envvars
start_core start_core
set_envvars
ensure_blocking ensure_blocking