diff --git a/docker/Dockerfile-AWG-kernel b/docker/Dockerfile-AWG-kernel deleted file mode 100644 index 47cdd6cf..00000000 --- a/docker/Dockerfile-AWG-kernel +++ /dev/null @@ -1,117 +0,0 @@ -# -# AWG GOLANG BUILDING STAGE -# Base: Debian -# -FROM golang:1.25 AS awg-go - -# Standard working directory for WGDashboard -RUN mkdir -p /workspace && \ - git clone https://github.com/WGDashboard/amneziawg-go /workspace/awg - -WORKDIR /workspace/awg -RUN go mod download && \ - go mod verify && \ - go build -ldflags '-linkmode external -extldflags "-fno-PIC -static"' -v -o /usr/bin -# -# AWG TOOLS BUILDING STAGE -# Base: Debian -# -FROM debian:stable-slim AS awg-tools - -RUN apt-get update && apt-get install -y --no-install-recommends \ - make git build-essential linux-headers-generic ca-certificates && \ - rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /workspace && \ - git clone https://github.com/WGDashboard/amneziawg-tools /workspace/awg-tools - -WORKDIR /workspace/awg-tools/src -RUN make && chmod +x wg* - -# -# PIP DEPENDENCY BUILDING -# Base: Alpine -# -FROM python:3.13-alpine AS pip-builder - -RUN apk add --no-cache \ - build-base \ - mariadb-dev \ - pkgconfig \ - python3-dev \ - libffi-dev \ - linux-headers \ - && mkdir -p /opt/wgdashboard/src \ - && python3 -m venv /opt/wgdashboard/src/venv - -COPY ./src/requirements.txt /opt/wgdashboard/src -RUN . /opt/wgdashboard/src/venv/bin/activate && \ - pip3 install --upgrade pip && \ - pip3 install -r /opt/wgdashboard/src/requirements.txt - -# -# WGDashboard RUNNING STAGE -# Base: Debian -# -FROM python:3.13-alpine AS final -LABEL maintainer="dselen@nerthus.nl" - -# Install only the runtime dependencies -RUN apk add --no-cache \ - iproute2 \ - iptables \ - bash \ - curl \ - wget \ - unzip \ - procps \ - sudo \ - tzdata \ - wireguard-tools \ - openresolv - -# Copy only the final binaries from the builders -COPY --from=awg-go /usr/bin/amneziawg-go /usr/bin/amneziawg-go -COPY --from=awg-tools /workspace/awg-tools/src/wg /usr/bin/awg -COPY --from=awg-tools /workspace/awg-tools/src/wg-quick/linux.bash /usr/bin/awg-quick - -# Environment variables -ARG wg_net="10.0.0.1" -ARG wg_port="51820" -ENV TZ="Europe/Amsterdam" \ - global_dns="9.9.9.9" \ - wgd_port="10086" \ - public_ip="" \ - WGDASH=/opt/wgdashboard - -# Create directories -RUN mkdir /data /configs -p ${WGDASH}/src /etc/amnezia/amneziawg - -# Copy app source and prebuilt venv only (no pip cache) -COPY ./src ${WGDASH}/src -COPY --from=pip-builder /opt/wgdashboard/src/venv /opt/wgdashboard/src/venv - -# WireGuard interface template -SHELL ["/bin/bash", "-o", "pipefail", "-c"] -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}" > /configs/wg0.conf.template \ - && chmod 600 /configs/wg0.conf.template - -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD sh -c 'pgrep gunicorn > /dev/null && pgrep tail > /dev/null' || exit 1 - -COPY ./docker/entrypoint.sh /entrypoint.sh - -EXPOSE 10086 -WORKDIR $WGDASH/src - -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file