Spaces:
Paused
Paused
blenders
commited on
Commit
·
5dbd0ed
1
Parent(s):
e688918
ghhh
Browse files
init.sh
CHANGED
|
@@ -1,87 +1,68 @@
|
|
| 1 |
#!/usr/bin/env bash
|
| 2 |
set -euo pipefail
|
| 3 |
|
| 4 |
-
|
| 5 |
SSH_USER="blendersb.turn"
|
| 6 |
SSH_HOST="blendersb-45318.portmap.host"
|
| 7 |
SSH_REMOTE_PORT=45318
|
| 8 |
LOCAL_TARGET_PORT=7860
|
| 9 |
SSH_LOG="/home/appuser/ssh-tunnel.log"
|
| 10 |
|
| 11 |
-
# Ensure
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
|
|
|
| 17 |
printf '%b' "$PORTMAP_SECRET" > "$KEY_PATH"
|
| 18 |
-
|
| 19 |
-
chmod 600 "$KEY_PATH" || true
|
| 20 |
-
# chown may fail if not root; ignore errors
|
| 21 |
chown appuser:appuser "$KEY_PATH" 2>/dev/null || true
|
| 22 |
echo "Wrote private key to $KEY_PATH (from env var)."
|
| 23 |
-
return 0
|
| 24 |
-
fi
|
| 25 |
-
|
| 26 |
-
return 1
|
| 27 |
-
}
|
| 28 |
-
|
| 29 |
-
# If the key already exists (e.g., mounted), keep it
|
| 30 |
-
if [ -f "$KEY_PATH" ]; then
|
| 31 |
-
echo "Found existing key at $KEY_PATH"
|
| 32 |
-
chmod 600 "$KEY_PATH" || true
|
| 33 |
-
chown appuser:appuser "$KEY_PATH" 2>/dev/null || true
|
| 34 |
-
cat "$KEY_PATH"
|
| 35 |
-
KEY_AVAILABLE=1
|
| 36 |
else
|
| 37 |
-
|
| 38 |
-
KEY_AVAILABLE=1
|
| 39 |
-
else
|
| 40 |
-
KEY_AVAILABLE=0
|
| 41 |
-
fi
|
| 42 |
fi
|
| 43 |
|
| 44 |
SSH_PID=""
|
| 45 |
|
| 46 |
start_ssh_tunnel() {
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
fi
|
| 58 |
}
|
| 59 |
|
| 60 |
stop_ssh_tunnel() {
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
kill -9 "$SSH_PID" || true
|
| 69 |
fi
|
| 70 |
-
fi
|
| 71 |
}
|
| 72 |
|
| 73 |
-
# Trap signals
|
| 74 |
trap 'echo "Received SIGTERM/SIGINT, shutting down..."; stop_ssh_tunnel; exit 0' TERM INT
|
| 75 |
|
| 76 |
-
# Start
|
| 77 |
start_ssh_tunnel
|
| 78 |
|
| 79 |
-
#
|
| 80 |
-
echo "Starting turnserver..."
|
| 81 |
exec turnserver -c /etc/coturn/turnserver.conf \
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
|
|
|
| 1 |
#!/usr/bin/env bash
|
| 2 |
set -euo pipefail
|
| 3 |
|
| 4 |
+
# Variables
|
| 5 |
SSH_USER="blendersb.turn"
|
| 6 |
SSH_HOST="blendersb-45318.portmap.host"
|
| 7 |
SSH_REMOTE_PORT=45318
|
| 8 |
LOCAL_TARGET_PORT=7860
|
| 9 |
SSH_LOG="/home/appuser/ssh-tunnel.log"
|
| 10 |
|
| 11 |
+
# Ensure ~/.ssh exists with correct permissions
|
| 12 |
+
SSH_DIR="/home/appuser/.ssh"
|
| 13 |
+
mkdir -p "$SSH_DIR"
|
| 14 |
+
chmod 700 "$SSH_DIR"
|
| 15 |
+
chown appuser:appuser "$SSH_DIR" 2>/dev/null || true
|
| 16 |
|
| 17 |
+
KEY_PATH="$SSH_DIR/private.pem"
|
| 18 |
+
|
| 19 |
+
# Write secret to key file if PORTMAP_SECRET env var exists
|
| 20 |
+
if [ -n "${PORTMAP_SECRET:-}" ]; then
|
| 21 |
printf '%b' "$PORTMAP_SECRET" > "$KEY_PATH"
|
| 22 |
+
chmod 600 "$KEY_PATH"
|
|
|
|
|
|
|
| 23 |
chown appuser:appuser "$KEY_PATH" 2>/dev/null || true
|
| 24 |
echo "Wrote private key to $KEY_PATH (from env var)."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
else
|
| 26 |
+
echo "No PORTMAP_SECRET provided; skipping PEM creation."
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
fi
|
| 28 |
|
| 29 |
SSH_PID=""
|
| 30 |
|
| 31 |
start_ssh_tunnel() {
|
| 32 |
+
if [ -f "$KEY_PATH" ]; then
|
| 33 |
+
echo "Starting SSH reverse tunnel to ${SSH_HOST}:${SSH_REMOTE_PORT} -> localhost:${LOCAL_TARGET_PORT}"
|
| 34 |
+
nohup ssh -i "$KEY_PATH" \
|
| 35 |
+
"${SSH_USER}@${SSH_HOST}" \
|
| 36 |
+
-N -R "${SSH_REMOTE_PORT}:localhost:${LOCAL_TARGET_PORT}" >"$SSH_LOG" 2>&1 &
|
| 37 |
+
SSH_PID=$!
|
| 38 |
+
echo "SSH tunnel started (pid=${SSH_PID}); logging to $SSH_LOG"
|
| 39 |
+
else
|
| 40 |
+
echo "No private key found; skipping SSH tunnel."
|
| 41 |
+
fi
|
|
|
|
| 42 |
}
|
| 43 |
|
| 44 |
stop_ssh_tunnel() {
|
| 45 |
+
if [ -n "${SSH_PID:-}" ] && kill -0 "$SSH_PID" >/dev/null 2>&1; then
|
| 46 |
+
echo "Stopping SSH tunnel (pid=${SSH_PID})..."
|
| 47 |
+
kill "$SSH_PID" || true
|
| 48 |
+
sleep 1
|
| 49 |
+
if kill -0 "$SSH_PID" >/dev/null 2>&1; then
|
| 50 |
+
kill -9 "$SSH_PID" || true
|
| 51 |
+
fi
|
|
|
|
| 52 |
fi
|
|
|
|
| 53 |
}
|
| 54 |
|
| 55 |
+
# Trap termination signals
|
| 56 |
trap 'echo "Received SIGTERM/SIGINT, shutting down..."; stop_ssh_tunnel; exit 0' TERM INT
|
| 57 |
|
| 58 |
+
# Start SSH tunnel
|
| 59 |
start_ssh_tunnel
|
| 60 |
|
| 61 |
+
# Start coturn in foreground
|
|
|
|
| 62 |
exec turnserver -c /etc/coturn/turnserver.conf \
|
| 63 |
+
--listening-port=7860 \
|
| 64 |
+
--tls-listening-port=5349 \
|
| 65 |
+
--user=myuser:mypassword \
|
| 66 |
+
--log-file=stdout \
|
| 67 |
+
--simple-log \
|
| 68 |
+
--no-cli
|