From dd38809866e43429abd73bc545c1aa1191eeb4c1 Mon Sep 17 00:00:00 2001 From: Dselen Date: Thu, 3 Oct 2024 07:45:24 -0500 Subject: [PATCH] Rebase --- docker/alpine/Dockerfile => Dockerfile | 30 +++++++++++--------- docker/{alpine => }/compose.yaml | 2 +- docker/alpine/entrypoint.sh => entrypoint.sh | 3 +- 3 files changed, 19 insertions(+), 16 deletions(-) rename docker/alpine/Dockerfile => Dockerfile (65%) rename docker/{alpine => }/compose.yaml (97%) rename docker/alpine/entrypoint.sh => entrypoint.sh (99%) diff --git a/docker/alpine/Dockerfile b/Dockerfile similarity index 65% rename from docker/alpine/Dockerfile rename to Dockerfile index 73c893ea..dd204c40 100644 --- a/docker/alpine/Dockerfile +++ b/Dockerfile @@ -3,7 +3,6 @@ FROM alpine:latest AS build LABEL maintainer="dselen@nerthus.nl" # Declaring environment variables, change Peernet to an address you like, standard is a 24 bit subnet. -ARG Git_Url="https://github.com/DaanSelen/WGDashboard.git" ARG wg_net="10.0.0.1" ARG wg_port="51820" @@ -17,7 +16,7 @@ ENV public_ip="0.0.0.0" # Doing package management operations, such as upgrading RUN apk update \ && apk add --no-cache bash git tzdata \ - iptables ip6tables curl openrc wireguard-tools \ + iptables ip6tables openrc curl wireguard-tools \ sudo py3-psutil py3-bcrypt # Using WGDASH -- like wg_net functionally as a ARG command. But it is needed in entrypoint.sh so it needs to be exported as environment variable. @@ -26,8 +25,8 @@ 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. # 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} \ - && git clone ${Git_Url} /setup/app +RUN mkdir -p /setup/conf && mkdir /setup/app && mkdir ${WGDASH} +COPY ./src /setup/app/src #COPY src /setup/app/src # Set the volume to be used for WireGuard configuration persistency. @@ -37,16 +36,19 @@ VOLUME ${WGDASH} # Generate basic WireGuard interface. Echoing the WireGuard interface config for readability, adjust if you want it for efficiency. # Also setting the pipefail option, verbose: https://github.com/hadolint/hadolint/wiki/DL4006. SHELL ["/bin/bash", "-o", "pipefail", "-c"] -RUN echo "[Interface]" > /setup/conf/wg0.conf \ - && echo "Address = ${wg_net}/24" >> /setup/conf/wg0.conf \ - && echo "PrivateKey =" >> /setup/conf/wg0.conf \ - && echo "PostUp = iptables -t nat -I POSTROUTING 1 -s ${wg_net}/24 -o $(ip -o -4 route show to default | awk '{print $NF}') -j MASQUERADE" >> /setup/conf/wg0.conf \ - && echo "PostUp = iptables -I FORWARD -i wg0 -o wg0 -j DROP" >> /setup/conf/wg0.conf \ - && echo "PreDown = iptables -t nat -D POSTROUTING -s ${wg_net}/24 -o $(ip -o -4 route show to default | awk '{print $NF}') -j MASQUERADE" >> /setup/conf/wg0.conf \ - && echo "PreDown = iptables -D FORWARD -i wg0 -o wg0 -j DROP" >> /setup/conf/wg0.conf \ - && echo "ListenPort = ${wg_port}" >> /setup/conf/wg0.conf \ - && echo "SaveConfig = true" >> /setup/conf/wg0.conf \ - && echo "DNS = ${global_dns}" >> /setup/conf/wg0.conf +RUN out_adapt=$(ip -o -4 route show to default | awk '{print $NF}') \ + && echo -e "[Interface]\n\ +Address = ${wg_net}/24\n\ +PrivateKey =\n\ +PostUp = iptables -t nat -I POSTROUTING 1 -s ${wg_net}/24 -o ${out_adapt} -j MASQUERADE\n\ +PostUp = iptables -I FORWARD -i wg0 -o wg0 -j DROP\n\ +PreDown = iptables -t nat -D POSTROUTING -s ${wg_net}/24 -o ${out_adapt} -j MASQUERADE\n\ +PreDown = iptables -D FORWARD -i wg0 -o wg0 -j DROP\n\ +ListenPort = ${wg_port}\n\ +SaveConfig = true\n\ +DNS = ${global_dns}" > /setup/conf/wg0.conf + + # Defining a way for Docker to check the health of the container. In this case: checking the login URL. HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ diff --git a/docker/alpine/compose.yaml b/docker/compose.yaml similarity index 97% rename from docker/alpine/compose.yaml rename to docker/compose.yaml index 341fa271..16c812b1 100644 --- a/docker/alpine/compose.yaml +++ b/docker/compose.yaml @@ -1,6 +1,6 @@ services: wireguard-dashboard: - image: dselen:alpine + image: test:latest restart: unless-stopped container_name: wgdashboard environment: diff --git a/docker/alpine/entrypoint.sh b/entrypoint.sh similarity index 99% rename from docker/alpine/entrypoint.sh rename to entrypoint.sh index 20c27114..7f42b52c 100644 --- a/docker/alpine/entrypoint.sh +++ b/entrypoint.sh @@ -11,7 +11,8 @@ ensure_installation() { echo "Detected empty directory, moving over..." mv /setup/app/* "${WGDASH}" - mv /setup/app/.* "${WGDASH}" + #mv /setup/app/.* "${WGDASH}" + python3 -m venv "${WGDASH}"/src/venv . "${WGDASH}/src/venv/bin/activate"