init
This commit is contained in:
commit
8e8eae11b5
13
Dockerfile
Normal file
13
Dockerfile
Normal file
@ -0,0 +1,13 @@
|
||||
FROM debian:stable-slim
|
||||
COPY wstunnel.conf /etc/nginx/conf.d/
|
||||
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh \
|
||||
&& apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y wget nginx \
|
||||
&& wget -O /usr/local/bin/wstunnel \
|
||||
https://github.com/erebe/wstunnel/releases/download/v5.0/wstunnel-linux-x64 \
|
||||
&& chmod +x /usr/local/bin/wstunnel \
|
||||
&& rm -vf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
|
||||
ENV WS_PATH_PREFIX=${WS_PATH_PREFIX:-}
|
||||
ENV SERVER_HOST=${SERVER_HOST:-localhost}
|
||||
ENV SERVER_PORT=${SERVER_PORT:-8080}
|
||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
30
README.md
Normal file
30
README.md
Normal file
@ -0,0 +1,30 @@
|
||||
# wstunnel with Nginx
|
||||
|
||||
[wstunnel](https://github.com/erebe/wstunnel) with nginx as reverse proxy.
|
||||
|
||||
Run server:
|
||||
|
||||
```
|
||||
docker run -d \
|
||||
--name wstunnel \
|
||||
-p 8080:80 \
|
||||
-e SERVER_PORT=8080 \
|
||||
-e WS_PATH_PREFIX=md77sthqtq-o_ptobrd65n0ol56fk5bz \
|
||||
nxhs/wstunnel
|
||||
```
|
||||
|
||||
Connect:
|
||||
|
||||
```
|
||||
wstunnel --upgradePathPrefix md77sthqtq-o_ptobrd65n0ol56fk5bz -D 1080 ws://localhost:8080
|
||||
```
|
||||
|
||||
Environment:
|
||||
|
||||
| Variable | Default | Description |
|
||||
| --- | --- | --- |
|
||||
| `SERVER_PORT` | Empty | Port what you want to publish |
|
||||
| `SERVER_HOST` | localhost | Your server IP or domain name |
|
||||
| `WS_PATH_PREFIX` | Random | Path prefix for websocket. Used as shared secret |
|
||||
|
||||
See `docker logs wstunnel` to view generated client connection command.
|
17
entrypoint.sh
Normal file
17
entrypoint.sh
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
[ -n "$WS_PATH_PREFIX" ] || WS_PATH_PREFIX="$(< /dev/urandom tr -dc 'a-z0-9\-_' | head -c32)"
|
||||
sed -i /etc/nginx/conf.d/wstunnel.conf -e "s/{{ws_path_prefix}}/$WS_PATH_PREFIX/"
|
||||
|
||||
cat << EOF
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Client connection command:
|
||||
wstunnel --upgradePathPrefix $WS_PATH_PREFIX -D 1080 ws://$SERVER_HOST:$SERVER_PORT
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
EOF
|
||||
|
||||
set -m
|
||||
nginx -g "daemon off;" &
|
||||
wstunnel --server ws://0.0.0.0:8080
|
13
wstunnel.conf
Normal file
13
wstunnel.conf
Normal file
@ -0,0 +1,13 @@
|
||||
server {
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
location / {
|
||||
return 404;
|
||||
}
|
||||
location /{{ws_path_prefix}}/ {
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user