gini-creative / start.sh
toolss180's picture
Upload 4 files
b223aad verified
Raw
History Blame Contribute Delete
1.86 kB
#!/bin/sh
set -eu
: "${PORT:=7860}"
: "${XRAY_PORT:=10000}"
: "${UUID:?UUID environment variable is required}"
: "${WS_PATH:?WS_PATH environment variable is required}"
case "$WS_PATH" in
/*) ;;
*)
echo "ERROR: WS_PATH must start with /"
exit 1
;;
esac
cat > /tmp/xray-config.json <<EOF_CONFIG
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "127.0.0.1",
"port": ${XRAY_PORT},
"protocol": "vless",
"settings": {
"clients": [
{
"id": "${UUID}",
"email": "mobile-user"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"path": "${WS_PATH}"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
}
]
}
EOF_CONFIG
cat > /etc/nginx/http.d/default.conf <<EOF_NGINX
server {
listen ${PORT};
server_name _;
location = / {
default_type text/plain;
return 200 "ok\\n";
}
location ${WS_PATH} {
proxy_redirect off;
proxy_pass http://127.0.0.1:${XRAY_PORT};
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
location / {
return 404;
}
}
EOF_NGINX
/usr/local/bin/xray run -config /tmp/xray-config.json &
XRAY_PID=$!
nginx -g 'daemon off;' &
NGINX_PID=$!
trap 'kill $XRAY_PID $NGINX_PID 2>/dev/null || true' INT TERM
while kill -0 "$XRAY_PID" 2>/dev/null && kill -0 "$NGINX_PID" 2>/dev/null; do
sleep 2
done
kill "$XRAY_PID" "$NGINX_PID" 2>/dev/null || true
wait