diff --git a/README.md b/README.md index 172b565..8d72f5d 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,7 @@ A collection of delicious docker recipes. - [x] mysql-proxy - [x] ngrok :+1: - [x] obfsproxy +- [x] outline-ss-server - [x] polipo - [x] privoxy - [x] privoxy-arm diff --git a/outline-ss-server/Dockerfile b/outline-ss-server/Dockerfile new file mode 100644 index 0000000..2f428c4 --- /dev/null +++ b/outline-ss-server/Dockerfile @@ -0,0 +1,29 @@ +# +# Dockerfile for outline-ss-server +# + +FROM alpine:3 +MAINTAINER EasyPi Software Foundation + +ARG OUTLINE_SS_SERVER_VERSION=1.4.0 +ARG OUTLINE_SS_SERVER_FILE=outline-ss-server_${OUTLINE_SS_SERVER_VERSION}_linux_x86_64.tar.gz +ARG OUTLINE_SS_SERVER_URL=https://github.com/Jigsaw-Code/outline-ss-server/releases/download/v${OUTLINE_SS_SERVER_VERSION}/${OUTLINE_SS_SERVER_FILE} + +ARG IP_COUNTRY_MMDB_VERSION=2023-06 +ARG IP_COUNTRY_MMDB_URL=https://download.db-ip.com/free/dbip-country-lite-${IP_COUNTRY_MMDB_VERSION}.mmdb.gz +ARG IP_COUNTRY_MMDB_FILE=ip-country.mmdb + +WORKDIR /app + +RUN set -xe \ + && apk add --no-cache curl tar \ + && mkdir -p bin etc var \ + && curl -sSL ${OUTLINE_SS_SERVER_URL} | tar xz -C bin outline-ss-server \ + && curl -sSL ${IP_COUNTRY_MMDB_URL} | gunzip -c > var/${IP_COUNTRY_MMDB_FILE} \ + && /app/bin/outline-ss-server -version \ + && apk del curl tar + +EXPOSE 9092 + +ENTRYPOINT ["/app/bin/outline-ss-server"] +CMD ["-config=etc/config.yml", "-ip_country_db=var/ip-country.mmdb", "-metrics=0.0.0.0:9092", "-replay_history=10000"] diff --git a/outline-ss-server/README.md b/outline-ss-server/README.md new file mode 100644 index 0000000..5ab6b1e --- /dev/null +++ b/outline-ss-server/README.md @@ -0,0 +1,21 @@ +outline-ss-server +================= + +The [Outline Shadowsocks service][1] allows for: + +- Multiple users on a single port. + - Does so by trying all the different credentials until one succeeds. +- Multiple ports +- Whitebox monitoring of the service using prometheus.io + - Includes traffic measurements and other health indicators. +- Live updates via config change + SIGHUP +- Replay defense (add `--replay_history 10000`). + +## up and running + +```bash +$ docker compose up -d +$ curl -s http://127.0.0.1:9092/metrics +``` + +[1]: https://github.com/Jigsaw-Code/outline-ss-server diff --git a/outline-ss-server/data/config.yml b/outline-ss-server/data/config.yml new file mode 100644 index 0000000..32db971 --- /dev/null +++ b/outline-ss-server/data/config.yml @@ -0,0 +1,9 @@ +keys: +- id: foo + port: 8388 + cipher: chacha20-ietf-poly1305 + secret: Thi8aoqu8Tha +- id: bar + port: 8388 + cipher: chacha20-ietf-poly1305 + secret: mAequ6Hied8M diff --git a/outline-ss-server/docker-compose.yml b/outline-ss-server/docker-compose.yml new file mode 100644 index 0000000..8a7842c --- /dev/null +++ b/outline-ss-server/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3.8" +services: + outline-ss-server: + image: vimagick/outline-ss-server + ports: + - "8388:8388/tcp" + - "8388:8388/udp" + - "9092:9092/tcp" + volumes: + - ./data:/app/etc + restart: unless-stopped