diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..409dc16 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "fastd/source"] + path = fastd/source + url = https://github.com/NeoRaider/fastd.git diff --git a/fastd/Dockerfile b/fastd/Dockerfile index 4e397ba..43d9f71 100644 --- a/fastd/Dockerfile +++ b/fastd/Dockerfile @@ -1,3 +1,26 @@ +FROM docker.io/library/debian:bullseye AS builder + +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + bison \ + build-essential \ + libcap-dev \ + libjson-c-dev \ + libmnl-dev \ + libsodium-dev \ + libssl-dev \ + libuecc-dev \ + meson \ + ninja-build \ + pkg-config \ + && mkdir /build + +WORKDIR /build +COPY ./source /source +RUN meson setup /source /build -Dbuildtype=release \ + && ninja \ + && ninja install + FROM docker.io/library/debian:bullseye ENV FASTD_INTERFACE= @@ -9,13 +32,12 @@ ENV FASTD_SECRET_KEY= ENV FASTD_ON_UP_MASTER_INTERFACE= ENV FASTD_DONT_VERIFY_PEERS=0 -ARG DEBIAN_FRONTEND=noninteractive - EXPOSE 10000/udp RUN apt-get update \ - && apt-get install -y fastd batctl iproute2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y batctl iproute2 \ && rm -rf /var/lib/apt/lists /var/cache/apt/archives +COPY --from=builder /usr/local/bin/fastd /usr/local/bin/fastd COPY fastd.conf /etc/fastd/fastd.conf COPY on_up.sh /etc/fastd/on_up.sh COPY entry-point.sh /entry-point.sh diff --git a/fastd/entry-point.sh b/fastd/entry-point.sh index 6a5186b..4c1a7fa 100755 --- a/fastd/entry-point.sh +++ b/fastd/entry-point.sh @@ -23,4 +23,12 @@ for method in ${FASTD_METHODS} ; do echo "method \"${method}\";" >>/etc/fastd/fastd_generated.conf done -exec /usr/bin/fastd --config /etc/fastd/fastd.conf +if [ "${FASTD_FORWARD}" ] ; then + echo "forward \"${FASTD_FORWARD}\";" >>/etc/fastd/fastd_generated.conf +fi + +if [ "${FASTD_MODE}" ] ; then + echo "mode ${FASTD_MODE};" >>/etc/fastd/fastd_generated.conf +fi + +exec /usr/local/bin/fastd --config /etc/fastd/fastd.conf diff --git a/fastd/source b/fastd/source new file mode 160000 index 0000000..0f47d83 --- /dev/null +++ b/fastd/source @@ -0,0 +1 @@ +Subproject commit 0f47d83eac2047d33efdab6eeaa9f81f17e3ebd1