mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2024-11-06 16:00:28 +01:00
commit
2139865876
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user