fix(rathole): enforce server-only mode; expose 2333; update docs
This commit is contained in:
@@ -31,10 +31,9 @@ RUN mkdir -p /app/data && chown -R cloudron:cloudron /app/data
|
|||||||
USER cloudron
|
USER cloudron
|
||||||
|
|
||||||
ENV APP_PORT=3000 \
|
ENV APP_PORT=3000 \
|
||||||
RATHOLE_MODE=server \
|
|
||||||
RATHOLE_CONFIG_PATH=/app/data/rathole.toml
|
RATHOLE_CONFIG_PATH=/app/data/rathole.toml
|
||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000 2333
|
||||||
|
|
||||||
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
|
||||||
CMD curl -fsS http://127.0.0.1:${APP_PORT}/ || exit 1
|
CMD curl -fsS http://127.0.0.1:${APP_PORT}/ || exit 1
|
||||||
|
@@ -6,7 +6,7 @@ Upstream project: https://github.com/rathole-org/rathole
|
|||||||
This Cloudron package runs Rathole and a lightweight HTTP health endpoint.
|
This Cloudron package runs Rathole and a lightweight HTTP health endpoint.
|
||||||
|
|
||||||
## Defaults
|
## Defaults
|
||||||
- Mode: `server` (set `RATHOLE_MODE=client` to run client)
|
- Mode: `server` (server-only package)
|
||||||
- Config path: `/app/data/rathole.toml`
|
- Config path: `/app/data/rathole.toml`
|
||||||
- Health port: `3000` (Cloudron `httpPort`)
|
- Health port: `3000` (Cloudron `httpPort`)
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ scripts/packaging-exec.sh "docker build -t rathole:dev CloudronPackages/Rathole"
|
|||||||
scripts/packaging-exec.sh "docker run --rm -p 3000:3000 -p 2333:2333 -v rathole-data:/app/data rathole:dev"
|
scripts/packaging-exec.sh "docker run --rm -p 3000:3000 -p 2333:2333 -v rathole-data:/app/data rathole:dev"
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: expose additional service ports as needed per your TOML.
|
Note: expose additional service ports as needed per your TOML. Container exposes `2333` by default.
|
||||||
|
|
||||||
## Deploy to Cloudron
|
## Deploy to Cloudron
|
||||||
Use Cloudron CLI from inside the packaging container:
|
Use Cloudron CLI from inside the packaging container:
|
||||||
@@ -34,4 +34,3 @@ scripts/packaging-enter.sh
|
|||||||
cloudron login
|
cloudron login
|
||||||
cloudron install --image rathole:dev
|
cloudron install --image rathole:dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@@ -5,7 +5,6 @@ log() { echo "[rathole] $(date -Is) $*"; }
|
|||||||
abort() { echo "[rathole] ERROR: $*" >&2; exit 1; }
|
abort() { echo "[rathole] ERROR: $*" >&2; exit 1; }
|
||||||
|
|
||||||
: "${APP_PORT:=3000}"
|
: "${APP_PORT:=3000}"
|
||||||
: "${RATHOLE_MODE:=server}" # server|client
|
|
||||||
: "${RATHOLE_CONFIG_PATH:=/app/data/rathole.toml}"
|
: "${RATHOLE_CONFIG_PATH:=/app/data/rathole.toml}"
|
||||||
|
|
||||||
# Ensure data dir exists
|
# Ensure data dir exists
|
||||||
@@ -38,6 +37,5 @@ python3 -m http.server "$APP_PORT" --bind 0.0.0.0 >/dev/null 2>&1 &
|
|||||||
HEALTH_PID=$!
|
HEALTH_PID=$!
|
||||||
log "Started health endpoint on :${APP_PORT} (pid ${HEALTH_PID})"
|
log "Started health endpoint on :${APP_PORT} (pid ${HEALTH_PID})"
|
||||||
|
|
||||||
log "Launching rathole in ${RATHOLE_MODE} mode with config ${RATHOLE_CONFIG_PATH}"
|
log "Launching rathole in server mode with config ${RATHOLE_CONFIG_PATH}"
|
||||||
exec /app/pkg/rathole "$RATHOLE_MODE" -c "$RATHOLE_CONFIG_PATH"
|
exec /app/pkg/rathole server -c "$RATHOLE_CONFIG_PATH"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user