mirror of
https://github.com/tobychui/zoraxy.git
synced 2025-06-01 13:17:21 +02:00
Update Docker image for 3.2.0
This commit is contained in:
parent
136989f2ea
commit
c4266559be
@ -1,4 +1,5 @@
|
|||||||
FROM docker.io/golang:alpine AS build-zoraxy
|
## Build Zoraxy
|
||||||
|
FROM docker.io/golang:bookworm AS build-zoraxy
|
||||||
|
|
||||||
RUN mkdir -p /opt/zoraxy/source/ &&\
|
RUN mkdir -p /opt/zoraxy/source/ &&\
|
||||||
mkdir -p /usr/local/bin/
|
mkdir -p /usr/local/bin/
|
||||||
@ -12,7 +13,9 @@ RUN go mod tidy &&\
|
|||||||
go build -o /usr/local/bin/zoraxy &&\
|
go build -o /usr/local/bin/zoraxy &&\
|
||||||
chmod 755 /usr/local/bin/zoraxy
|
chmod 755 /usr/local/bin/zoraxy
|
||||||
|
|
||||||
FROM docker.io/ubuntu:latest AS build-zerotier
|
|
||||||
|
## Build ZeroTier
|
||||||
|
FROM docker.io/golang:bookworm AS build-zerotier
|
||||||
|
|
||||||
RUN mkdir -p /opt/zerotier/source/ &&\
|
RUN mkdir -p /opt/zerotier/source/ &&\
|
||||||
mkdir -p /usr/local/bin/
|
mkdir -p /usr/local/bin/
|
||||||
@ -29,14 +32,20 @@ RUN curl -Lo ZeroTierOne.tar.gz https://codeload.github.com/zerotier/ZeroTierOne
|
|||||||
mv ./zerotier-one /usr/local/bin/zerotier-one &&\
|
mv ./zerotier-one /usr/local/bin/zerotier-one &&\
|
||||||
chmod 755 /usr/local/bin/zerotier-one
|
chmod 755 /usr/local/bin/zerotier-one
|
||||||
|
|
||||||
FROM docker.io/ubuntu:latest
|
|
||||||
|
FROM docker.io/golang:bookworm
|
||||||
|
|
||||||
|
COPY --chmod=700 ./entrypoint.sh /opt/zoraxy/
|
||||||
|
COPY --chmod=700 ./build_plugins.sh /usr/local/bin/build_plugins
|
||||||
|
COPY --chmod=700 ./example/plugins/ztnc/mod/zoraxy_plugin/ /opt/zoraxy/zoraxy_plugin/
|
||||||
|
|
||||||
|
COPY --from=build-zerotier /usr/local/bin/zerotier-one /usr/local/bin/zerotier-one
|
||||||
|
COPY --from=build-zoraxy /usr/local/bin/zoraxy /usr/local/bin/zoraxy
|
||||||
|
|
||||||
RUN apt-get update -y &&\
|
RUN apt-get update -y &&\
|
||||||
apt-get install -y bash sudo netcat-openbsd libssl-dev ca-certificates openssh-server
|
apt-get install -y bash sudo netcat-openbsd libssl-dev ca-certificates openssh-server
|
||||||
|
|
||||||
COPY --chmod=700 ./entrypoint.sh /opt/zoraxy/
|
RUN mkdir -p /opt/zoraxy/plugin/
|
||||||
COPY --from=build-zoraxy /usr/local/bin/zoraxy /usr/local/bin/zoraxy
|
|
||||||
COPY --from=build-zerotier /usr/local/bin/zerotier-one /usr/local/bin/zerotier-one
|
|
||||||
|
|
||||||
WORKDIR /opt/zoraxy/config/
|
WORKDIR /opt/zoraxy/config/
|
||||||
|
|
||||||
@ -51,14 +60,13 @@ ENV FASTGEOIP="false"
|
|||||||
ENV MDNS="true"
|
ENV MDNS="true"
|
||||||
ENV MDNSNAME="''"
|
ENV MDNSNAME="''"
|
||||||
ENV NOAUTH="false"
|
ENV NOAUTH="false"
|
||||||
|
ENV PLUGIN="/opt/zoraxy/plugin/"
|
||||||
ENV PORT="8000"
|
ENV PORT="8000"
|
||||||
ENV SSHLB="false"
|
ENV SSHLB="false"
|
||||||
ENV UPDATE_GEOIP="false"
|
ENV UPDATE_GEOIP="false"
|
||||||
ENV VERSION="false"
|
ENV VERSION="false"
|
||||||
ENV WEBFM="true"
|
ENV WEBFM="true"
|
||||||
ENV WEBROOT="./www"
|
ENV WEBROOT="./www"
|
||||||
ENV ZTAUTH=""
|
|
||||||
ENV ZTPORT="9993"
|
|
||||||
|
|
||||||
VOLUME [ "/opt/zoraxy/config/" ]
|
VOLUME [ "/opt/zoraxy/config/" ]
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ docker run -d \
|
|||||||
-p 443:443 \
|
-p 443:443 \
|
||||||
-p 8000:8000 \
|
-p 8000:8000 \
|
||||||
-v /path/to/zoraxy/config/:/opt/zoraxy/config/ \
|
-v /path/to/zoraxy/config/:/opt/zoraxy/config/ \
|
||||||
|
-v /path/to/zoraxy/plugin/:/opt/zoraxy/plugin/ \
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
-v /etc/localtime:/etc/localtime \
|
-v /etc/localtime:/etc/localtime \
|
||||||
-e FASTGEOIP="true" \
|
-e FASTGEOIP="true" \
|
||||||
@ -43,6 +44,7 @@ services:
|
|||||||
- 8000:8000
|
- 8000:8000
|
||||||
volumes:
|
volumes:
|
||||||
- /path/to/zoraxy/config/:/opt/zoraxy/config/
|
- /path/to/zoraxy/config/:/opt/zoraxy/config/
|
||||||
|
- /path/to/zoraxy/plugin/:/opt/zoraxy/plugin/
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- /etc/localtime:/etc/localtime
|
- /etc/localtime:/etc/localtime
|
||||||
environment:
|
environment:
|
||||||
@ -62,6 +64,7 @@ services:
|
|||||||
| Volume | Details |
|
| Volume | Details |
|
||||||
|:-|:-|
|
|:-|:-|
|
||||||
| `/opt/zoraxy/config/` | Zoraxy configuration. |
|
| `/opt/zoraxy/config/` | Zoraxy configuration. |
|
||||||
|
| `/opt/zoraxy/plugin/` | Zoraxy plugins. |
|
||||||
| `/var/run/docker.sock` | Docker socket. Used for additional functionality with Zoraxy. |
|
| `/var/run/docker.sock` | Docker socket. Used for additional functionality with Zoraxy. |
|
||||||
| `/etc/localtime` | Localtime. Set to ensure the host and container are synchronized. |
|
| `/etc/localtime` | Localtime. Set to ensure the host and container are synchronized. |
|
||||||
|
|
||||||
@ -80,6 +83,7 @@ Variables are the same as those in [Start Parameters](https://github.com/tobychu
|
|||||||
| `MDNS` | `true` (Boolean) | Enable mDNS scanner and transponder. |
|
| `MDNS` | `true` (Boolean) | Enable mDNS scanner and transponder. |
|
||||||
| `MDNSNAME` | `''` (String) | mDNS name, leave empty to use default (zoraxy_{node-uuid}.local). |
|
| `MDNSNAME` | `''` (String) | mDNS name, leave empty to use default (zoraxy_{node-uuid}.local). |
|
||||||
| `NOAUTH` | `false` (Boolean) | Disable authentication for management interface. |
|
| `NOAUTH` | `false` (Boolean) | Disable authentication for management interface. |
|
||||||
|
| `PLUGIN` | `/opt/zoraxy/plugin/` (String) | Set the path for Zoraxy plugins. Only change this if you know what you are doing. |
|
||||||
| `PORT` | `8000` (Integer) | Management web interface listening port |
|
| `PORT` | `8000` (Integer) | Management web interface listening port |
|
||||||
| `SSHLB` | `false` (Boolean) | Allow loopback web ssh connection (DANGER). |
|
| `SSHLB` | `false` (Boolean) | Allow loopback web ssh connection (DANGER). |
|
||||||
| `UPDATE_GEOIP` | `false` (Boolean) | Download the latest GeoIP data and exit. |
|
| `UPDATE_GEOIP` | `false` (Boolean) | Download the latest GeoIP data and exit. |
|
||||||
@ -87,17 +91,24 @@ Variables are the same as those in [Start Parameters](https://github.com/tobychu
|
|||||||
| `WEBFM` | `true` (Boolean) | Enable web file manager for static web server root folder. |
|
| `WEBFM` | `true` (Boolean) | Enable web file manager for static web server root folder. |
|
||||||
| `WEBROOT` | `./www` (String) | Static web server root folder. Only allow change in start parameters. |
|
| `WEBROOT` | `./www` (String) | Static web server root folder. Only allow change in start parameters. |
|
||||||
| `ZEROTIER` | `false` (Boolean) | Enable ZeroTier functionality for GAN. |
|
| `ZEROTIER` | `false` (Boolean) | Enable ZeroTier functionality for GAN. |
|
||||||
| `ZTAUTH` | `""` (String) | ZeroTier authtoken for the local node. |
|
|
||||||
| `ZTPORT` | `9993` (Integer) | ZeroTier controller API port. |
|
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> Contrary to the Zoraxy README, Docker usage of the port flag should NOT include the colon. Ex: `-e PORT="8000"` for Docker run and `PORT: "8000"` for Docker compose.
|
> Contrary to the Zoraxy README, Docker usage of the port flag should NOT include the colon. Ex: `-e PORT="8000"` for Docker run and `PORT: "8000"` for Docker compose.
|
||||||
|
|
||||||
|
### Plugins
|
||||||
|
|
||||||
|
You can find official plugins at https://github.com/aroz-online/zoraxy-official-plugins
|
||||||
|
|
||||||
|
Place your plugins inside the volume `/path/to/zoraxy/plugin/:/opt/zoraxy/plugin/` (Adjust to your actual install location). Any plugins you have added will then be built and used on the next restart.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> Plugins are currently experimental.
|
||||||
|
|
||||||
### Building
|
### Building
|
||||||
|
|
||||||
To build the Docker image:
|
To build the Docker image:
|
||||||
- Check out the repository/branch.
|
- Check out the repository/branch.
|
||||||
- Copy the Zoraxy `src/` directory into the `docker/` (here) directory.
|
- Copy the Zoraxy `src/` and `example/` directory into the `docker/` (here) directory.
|
||||||
- Run the build command with `docker build -t zoraxy_build .`
|
- Run the build command with `docker build -t zoraxy_build .`
|
||||||
- You can now use the image `zoraxy_build`
|
- You can now use the image `zoraxy_build`
|
||||||
- If you wish to change the image name, then modify`zoraxy_build` in the previous step and then build again.
|
- If you wish to change the image name, then modify`zoraxy_build` in the previous step and then build again.
|
||||||
|
19
docker/build_plugins.sh
Normal file
19
docker/build_plugins.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Copying zoraxy_plugin to all mods..."
|
||||||
|
for dir in "$1"/*; do
|
||||||
|
if [ -d "$dir" ]; then
|
||||||
|
cp -r "/opt/zoraxy/zoraxy_plugin/" "$dir/mod/"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Running go mod tidy and go build for all directories..."
|
||||||
|
for dir in "$1"/*; do
|
||||||
|
if [ -d "$dir" ]; then
|
||||||
|
cd "$dir" || exit 1
|
||||||
|
go mod tidy
|
||||||
|
go build
|
||||||
|
cd "$1" || exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
@ -1,19 +1,23 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
trap cleanup TERM INT
|
|
||||||
|
|
||||||
cleanup() {
|
cleanup() {
|
||||||
echo "Shutting down..."
|
echo "Stop signal received. Shutting down..."
|
||||||
kill -TERM "$(pidof zoraxy)" &> /dev/null && echo "Zoraxy stopped."
|
kill -TERM "$(pidof zoraxy)" &> /dev/null && echo "Zoraxy stopped."
|
||||||
kill -TERM "$(pidof zerotier-one)" &> /dev/null && echo "ZeroTier-One stopped."
|
kill -TERM "$(pidof zerotier-one)" &> /dev/null && echo "ZeroTier-One stopped."
|
||||||
|
unlink /var/lib/zerotier-one/zerotier/
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
update-ca-certificates
|
trap cleanup SIGTERM SIGINT TERM INT
|
||||||
echo "CA certificates updated."
|
|
||||||
|
|
||||||
zoraxy -update_geoip=true
|
update-ca-certificates && echo "CA certificates updated."
|
||||||
echo "Updated GeoIP data."
|
zoraxy -update_geoip=true && echo "GeoIP data updated ."
|
||||||
|
|
||||||
|
echo "Building plugins..."
|
||||||
|
cd /opt/zoraxy/plugin/ || exit 1
|
||||||
|
build_plugins "$PWD"
|
||||||
|
echo "Plugins built."
|
||||||
|
cd /opt/zoraxy/config/ || exit 1
|
||||||
|
|
||||||
if [ "$ZEROTIER" = "true" ]; then
|
if [ "$ZEROTIER" = "true" ]; then
|
||||||
if [ ! -d "/opt/zoraxy/config/zerotier/" ]; then
|
if [ ! -d "/opt/zoraxy/config/zerotier/" ]; then
|
||||||
@ -36,17 +40,16 @@ zoraxy \
|
|||||||
-mdns="$MDNS" \
|
-mdns="$MDNS" \
|
||||||
-mdnsname="$MDNSNAME" \
|
-mdnsname="$MDNSNAME" \
|
||||||
-noauth="$NOAUTH" \
|
-noauth="$NOAUTH" \
|
||||||
|
-plugin="$PLUGIN" \
|
||||||
-port=:"$PORT" \
|
-port=:"$PORT" \
|
||||||
-sshlb="$SSHLB" \
|
-sshlb="$SSHLB" \
|
||||||
-update_geoip="$UPDATE_GEOIP" \
|
-update_geoip="$UPDATE_GEOIP" \
|
||||||
-version="$VERSION" \
|
-version="$VERSION" \
|
||||||
-webfm="$WEBFM" \
|
-webfm="$WEBFM" \
|
||||||
-webroot="$WEBROOT" \
|
-webroot="$WEBROOT" \
|
||||||
-ztauth="$ZTAUTH" \
|
|
||||||
-ztport="$ZTPORT" \
|
|
||||||
&
|
&
|
||||||
|
|
||||||
zoraxypid=$!
|
zoraxypid=$!
|
||||||
wait $zoraxypid
|
wait "$zoraxypid"
|
||||||
wait $zerotierpid
|
wait "$zerotierpid"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user