A lightweight, multi-architecture Docker image for Snell.
linux/amd64, linux/386, linux/arm64, linux/arm/v7PSK is not provideddocker run -d --name=snell -v $HOME/app/snell:/etc/snell --restart always -p 8388:8388 -p 8388:8388/udp axelburks/snell-server-docker
On first run a config is generated under /etc/snell/ (mounted to $HOME/app/snell
above). If PSK is not provided, a random one is generated — read it from the logs.
docker logs snell
Proxy = snell, [SERVER ADDRESS], 8388, psk=xxx, version=6, reuse = true, tfo = true
| name | default | description |
|---|---|---|
| LISTEN | 0.0.0.0:8388 | listen addresses, e.g. '0.0.0.0:8388,[::]:8388' for dual-stack |
| PSK | [RANDOM] | pre-shared key; auto-generated when unset |
| MODE | (unset) | crypto/obfuscation mode, e.g. default, unshaped, unsafe-raw |
| DNS_IP_PREFERENCE | (unset) | DNS IP family preference, e.g. default, prefer-ipv4, prefer-ipv6, ipv4-only, ipv6-only |
| OBFS | (unset) | obfuscation mode, e.g. http, off |
| OBFS_HOST | (unset) | obfuscation host, nly used when OBFS=http |
| ARGS | (unset) | extra arguments appended to snell-server |
# one-time: create and use a multi-arch capable builder
docker buildx create --name multi --driver docker-container --use
# one-time: set up a proxy for multi-arch builder on OrbStack
docker buildx create --name multi --driver docker-container --use \
--driver-opt env.http_proxy=http://proxy.orb.internal:8305 \
--driver-opt env.https_proxy=http://proxy.orb.internal:8305
# build with the default SNELL_VERSION in the Dockerfile
docker buildx build \
--platform linux/amd64,linux/386,linux/arm64 \
-t axelburks/snell-server-docker:latest \
-t axelburks/snell-server-docker:v6.0.0rc2 \
--push .
# build with a custom SNELL_VERSION
docker buildx build \
--platform linux/amd64,linux/386,linux/arm64 \
-t axelburks/snell-server-docker:latest \
-t axelburks/snell-server-docker:v6.0.0rc2 \
--build-arg SNELL_VERSION=v6.0.0rc2 \
--push .
Add
linux/arm/v7to--platformafter surge releases armv7l.
Regular release (recommended) — builds and pushes both :latest and :vX.Y.Z to Docker Hub:
# edit ARG SNELL_VERSION=vX.Y.Z in the Dockerfile
git commit -am "update snell to vX.Y.Z"
git push
Publish a single version without touching latest — builds and pushes only :vX.Y.Z to Docker Hub:
git tag vX.Y.Z
git push origin vX.Y.Z
Content type
Image
Digest
sha256:05abf8c93…
Size
29.6 MB
Last updated
about 1 month ago
docker pull axelburks/snell-server-docker