mirror of
https://github.com/RipleyBooya/ssh-tunnel.git
synced 2025-12-15 09:08:39 +01:00
Update entrypoint.tailscale.sh
This commit is contained in:
parent
e8896feb29
commit
22f480d7ad
1 changed files with 33 additions and 14 deletions
|
|
@ -3,28 +3,47 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Vérification des variables d'environnement requises
|
# Vérification des variables d'environnement requises
|
||||||
if [ -z "$SSH_HOST" ] || [ -z "$SSH_USER" ] || [ -z "$REMOTE_PORTS" ] || [ -z "$LOCAL_PORTS" ]; then
|
if [ -z "${SSH_HOST}" ] || [ -z "${SSH_USER}" ] || [ -z "${REMOTE_PORTS}" ] || [ -z "${LOCAL_PORTS}" ]; then
|
||||||
echo "ERROR: Required variables (SSH_HOST, SSH_USER, REMOTE_PORTS, LOCAL_PORTS) are missing."
|
echo "ERROR: Required variables (SSH_HOST, SSH_USER, REMOTE_PORTS, LOCAL_PORTS) are missing."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Vérifier que TAILSCALE_PARAM est défini
|
# Vérification des paramètres de Tailscale
|
||||||
if [ -z "$TAILSCALE_PARAM" ]; then
|
if [ -z "${TAILSCALE_PARAM}" ] && [ -z "${TAILSCALE_AUTH_KEY}" ]; then
|
||||||
echo "ERROR: TAILSCALE_PARAM is required but not set."
|
echo "ERROR: Either TAILSCALE_PARAM or TAILSCALE_AUTH_KEY must be set."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Démarrage de Tailscale
|
# Démarrage de Tailscale en arrière-plan
|
||||||
echo "Starting Tailscale..."
|
echo "Starting Tailscale..."
|
||||||
tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/var/run/tailscale/tailscaled.sock &
|
exec tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/var/run/tailscale/tailscaled.sock &
|
||||||
|
|
||||||
|
# Attendre que le service Tailscale démarre
|
||||||
sleep 5
|
sleep 5
|
||||||
echo "Connecting to Tailscale with: tailscale up ${TAILSCALE_PARAM}"
|
|
||||||
tailscale up ${TAILSCALE_PARAM}
|
# Construction de la commande Tailscale
|
||||||
|
TS_CMD="tailscale up"
|
||||||
|
|
||||||
|
if [ -n "${TAILSCALE_AUTH_KEY}" ]; then
|
||||||
|
TS_CMD="${TS_CMD} --auth-key=${TAILSCALE_AUTH_KEY}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${TAILSCALE_PARAM}" ]; then
|
||||||
|
TS_CMD="${TS_CMD} ${TAILSCALE_PARAM}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Affichage de la commande avant exécution
|
||||||
|
echo "Connecting to Tailscale with: ${TS_CMD}"
|
||||||
|
|
||||||
|
# Exécution sécurisée avec `eval` et capture des erreurs
|
||||||
|
if ! eval "${TS_CMD}"; then
|
||||||
|
echo "ERROR: Tailscale failed to start."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Vérifier que Tailscale est bien actif
|
# Vérifier que Tailscale est bien actif
|
||||||
if ! tailscale status; then
|
if ! tailscale status; then
|
||||||
echo "ERROR: Tailscale failed to start."
|
echo "ERROR: Tailscale is not running."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -46,14 +65,14 @@ envsubst < /logrotate.template > /etc/logrotate.d/ssh-tunnel
|
||||||
|
|
||||||
# Construire la commande de tunnel SSH
|
# Construire la commande de tunnel SSH
|
||||||
TUNNEL_CMD=""
|
TUNNEL_CMD=""
|
||||||
REMOTE_PORT_ARRAY=($REMOTE_PORTS)
|
REMOTE_PORT_ARRAY=(${REMOTE_PORTS})
|
||||||
LOCAL_PORT_ARRAY=($LOCAL_PORTS)
|
LOCAL_PORT_ARRAY=(${LOCAL_PORTS})
|
||||||
|
|
||||||
for i in "${!LOCAL_PORT_ARRAY[@]}"; do
|
for i in "${!LOCAL_PORT_ARRAY[@]}"; do
|
||||||
TUNNEL_CMD="$TUNNEL_CMD -L 0.0.0.0:${LOCAL_PORT_ARRAY[$i]}:${REMOTE_PORT_ARRAY[$i]}"
|
TUNNEL_CMD="${TUNNEL_CMD} -L 0.0.0.0:${LOCAL_PORT_ARRAY[$i]}:${REMOTE_PORT_ARRAY[$i]}"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Starting SSH tunnel to $SSH_USER@$SSH_HOST"
|
echo "Starting SSH tunnel to ${SSH_USER}@${SSH_HOST}"
|
||||||
echo "Configured tunnels:"
|
echo "Configured tunnels:"
|
||||||
for i in "${!LOCAL_PORT_ARRAY[@]}"; do
|
for i in "${!LOCAL_PORT_ARRAY[@]}"; do
|
||||||
echo "- ${LOCAL_PORT_ARRAY[$i]} -> ${REMOTE_PORT_ARRAY[$i]}"
|
echo "- ${LOCAL_PORT_ARRAY[$i]} -> ${REMOTE_PORT_ARRAY[$i]}"
|
||||||
|
|
@ -65,4 +84,4 @@ exec autossh -M 0 \
|
||||||
-o "UserKnownHostsFile=/dev/null" \
|
-o "UserKnownHostsFile=/dev/null" \
|
||||||
-o "ServerAliveInterval=60" \
|
-o "ServerAliveInterval=60" \
|
||||||
-o "ServerAliveCountMax=3" \
|
-o "ServerAliveCountMax=3" \
|
||||||
-N $TUNNEL_CMD $SSH_USER@$SSH_HOST
|
-N ${TUNNEL_CMD} ${SSH_USER}@${SSH_HOST}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue