From b90436ea6c411430fd4666056186a896282096d9 Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 19 Jul 2026 08:55:46 -0700 Subject: [PATCH] feat: add self-built Snell 5.0.1 projects --- servers/bwh-hk-dc3/snell/.env.example | 3 +++ servers/bwh-hk-dc3/snell/Dockerfile | 19 +++++++++++++++++++ servers/bwh-hk-dc3/snell/README.md | 5 +++++ servers/bwh-hk-dc3/snell/compose.yaml | 20 ++++++++++++++++++++ servers/bwh-hk-dc3/snell/entrypoint.sh | 19 +++++++++++++++++++ servers/bwh-us-dc9/snell/.env.example | 3 +++ servers/bwh-us-dc9/snell/Dockerfile | 19 +++++++++++++++++++ servers/bwh-us-dc9/snell/README.md | 6 ++++++ servers/bwh-us-dc9/snell/compose.yaml | 19 +++++++++++++++++++ servers/bwh-us-dc9/snell/entrypoint.sh | 19 +++++++++++++++++++ 10 files changed, 132 insertions(+) create mode 100644 servers/bwh-hk-dc3/snell/.env.example create mode 100644 servers/bwh-hk-dc3/snell/Dockerfile create mode 100644 servers/bwh-hk-dc3/snell/README.md create mode 100644 servers/bwh-hk-dc3/snell/compose.yaml create mode 100644 servers/bwh-hk-dc3/snell/entrypoint.sh create mode 100644 servers/bwh-us-dc9/snell/.env.example create mode 100644 servers/bwh-us-dc9/snell/Dockerfile create mode 100644 servers/bwh-us-dc9/snell/README.md create mode 100644 servers/bwh-us-dc9/snell/compose.yaml create mode 100644 servers/bwh-us-dc9/snell/entrypoint.sh diff --git a/servers/bwh-hk-dc3/snell/.env.example b/servers/bwh-hk-dc3/snell/.env.example new file mode 100644 index 0000000..24ed8a5 --- /dev/null +++ b/servers/bwh-hk-dc3/snell/.env.example @@ -0,0 +1,3 @@ +PSK=change-me +HOST_PORT=47854 + diff --git a/servers/bwh-hk-dc3/snell/Dockerfile b/servers/bwh-hk-dc3/snell/Dockerfile new file mode 100644 index 0000000..6e63c68 --- /dev/null +++ b/servers/bwh-hk-dc3/snell/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:3.21 AS downloader + +ARG SNELL_VERSION=5.0.1 +ARG SNELL_ZIP_SHA256=9bea1c2b9e35b73b31634856c04d18c393072b9e5dcde6a32781d8b8f908c539 + +RUN apk add --no-cache curl unzip \ + && curl -fsSL "https://dl.nssurge.com/snell/snell-server-v${SNELL_VERSION}-linux-amd64.zip" -o /tmp/snell.zip \ + && echo "${SNELL_ZIP_SHA256} /tmp/snell.zip" | sha256sum -c - \ + && unzip -p /tmp/snell.zip snell-server > /snell-server \ + && chmod 755 /snell-server + +FROM alpine:3.21 + +RUN apk add --no-cache ca-certificates +COPY --from=downloader /snell-server /usr/local/bin/snell-server +COPY --chmod=755 entrypoint.sh /usr/local/bin/entrypoint.sh + +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] + diff --git a/servers/bwh-hk-dc3/snell/README.md b/servers/bwh-hk-dc3/snell/README.md new file mode 100644 index 0000000..18df8f5 --- /dev/null +++ b/servers/bwh-hk-dc3/snell/README.md @@ -0,0 +1,5 @@ +# Snell Server + +- 当前锁定 Snell Server 5.0.1,由本目录 Dockerfile 从官方包构建并校验 SHA-256。 +- 客户端因禁用 QUIC 显示 `version=4` 属现有兼容用法,不改变服务端 5.0.1 部署。 +- Snell 6 与 5 不兼容。迁移时新增独立 `snell-v6` 服务、端口和 PSK,与 v5 并存;客户端迁移完成后再停 v5。 diff --git a/servers/bwh-hk-dc3/snell/compose.yaml b/servers/bwh-hk-dc3/snell/compose.yaml new file mode 100644 index 0000000..cb5a439 --- /dev/null +++ b/servers/bwh-hk-dc3/snell/compose.yaml @@ -0,0 +1,20 @@ +services: + snell-v5: + build: + context: . + args: + SNELL_VERSION: 5.0.1 + SNELL_ZIP_SHA256: 9bea1c2b9e35b73b31634856c04d18c393072b9e5dcde6a32781d8b8f908c539 + image: local/snell-server:5.0.1 + restart: unless-stopped + ports: + - "${HOST_PORT}:9102/tcp" + environment: + PSK: ${PSK} + PORT: 9102 + logging: + driver: json-file + options: + max-size: 200k + max-file: "2" + diff --git a/servers/bwh-hk-dc3/snell/entrypoint.sh b/servers/bwh-hk-dc3/snell/entrypoint.sh new file mode 100644 index 0000000..2f7c82d --- /dev/null +++ b/servers/bwh-hk-dc3/snell/entrypoint.sh @@ -0,0 +1,19 @@ +#!/bin/sh +set -eu + +: "${PSK:?PSK is required}" +: "${PORT:?PORT is required}" + +case "$PORT" in + *[!0-9]*|'') echo "PORT must be numeric" >&2; exit 1 ;; +esac + +umask 077 +cat > /tmp/snell-server.conf < /snell-server \ + && chmod 755 /snell-server + +FROM alpine:3.21 + +RUN apk add --no-cache ca-certificates +COPY --from=downloader /snell-server /usr/local/bin/snell-server +COPY --chmod=755 entrypoint.sh /usr/local/bin/entrypoint.sh + +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] + diff --git a/servers/bwh-us-dc9/snell/README.md b/servers/bwh-us-dc9/snell/README.md new file mode 100644 index 0000000..3cc64c0 --- /dev/null +++ b/servers/bwh-us-dc9/snell/README.md @@ -0,0 +1,6 @@ +# Snell Server + +- 当前锁定 Snell Server 5.0.1,由本目录 Dockerfile 从官方包构建并校验 SHA-256。 +- 客户端因禁用 QUIC 显示 `version=4` 属现有兼容用法,不改变服务端 5.0.1 部署。 +- Snell 6 与 5 不兼容。迁移时新增独立 `snell-v6` 服务、端口和 PSK,与 v5 并存;客户端迁移完成后再停 v5。 + diff --git a/servers/bwh-us-dc9/snell/compose.yaml b/servers/bwh-us-dc9/snell/compose.yaml new file mode 100644 index 0000000..5497162 --- /dev/null +++ b/servers/bwh-us-dc9/snell/compose.yaml @@ -0,0 +1,19 @@ +services: + snell-v5: + build: + context: . + args: + SNELL_VERSION: 5.0.1 + SNELL_ZIP_SHA256: 9bea1c2b9e35b73b31634856c04d18c393072b9e5dcde6a32781d8b8f908c539 + image: local/snell-server:5.0.1 + restart: unless-stopped + network_mode: host + environment: + PSK: ${PSK} + PORT: ${PORT} + logging: + driver: json-file + options: + max-size: 200k + max-file: "2" + diff --git a/servers/bwh-us-dc9/snell/entrypoint.sh b/servers/bwh-us-dc9/snell/entrypoint.sh new file mode 100644 index 0000000..2f7c82d --- /dev/null +++ b/servers/bwh-us-dc9/snell/entrypoint.sh @@ -0,0 +1,19 @@ +#!/bin/sh +set -eu + +: "${PSK:?PSK is required}" +: "${PORT:?PORT is required}" + +case "$PORT" in + *[!0-9]*|'') echo "PORT must be numeric" >&2; exit 1 ;; +esac + +umask 077 +cat > /tmp/snell-server.conf <