|
|
@@ -0,0 +1,35 @@
|
|
|
+#!/bin/bash
|
|
|
+set -e
|
|
|
+
|
|
|
+# Variables esperadas:
|
|
|
+# SSH_HOST
|
|
|
+# SSH_USER
|
|
|
+# SSH_PASSWORD (solo para el primer copiado de la clave)
|
|
|
+# SSH_PORT (opcional, default 22)
|
|
|
+
|
|
|
+SSH_PORT=${SSH_PORT:-22}
|
|
|
+KEY_PATH="/root/.ssh/id_rsa"
|
|
|
+
|
|
|
+# Generar clave si no existe
|
|
|
+if [ ! -f "$KEY_PATH" ]; then
|
|
|
+ echo "Generando clave SSH..."
|
|
|
+ ssh-keygen -t rsa -b 4096 -f "$KEY_PATH" -N ""
|
|
|
+fi
|
|
|
+
|
|
|
+# Copiar clave pública al servidor remoto
|
|
|
+echo "Copiando clave pública al servidor remoto..."
|
|
|
+sshpass -p "$SSH_PASSWORD" ssh-copy-id \
|
|
|
+ -p "$SSH_PORT" \
|
|
|
+ -o StrictHostKeyChecking=no \
|
|
|
+ "${SSH_USER}@${SSH_HOST}"
|
|
|
+
|
|
|
+echo "Clave copiada correctamente."
|
|
|
+
|
|
|
+# Probar conexión
|
|
|
+echo "Probando conexión SSH..."
|
|
|
+ssh -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo 'Conexión SSH exitosa'"
|
|
|
+
|
|
|
+
|
|
|
+exec uvicorn app.main:app --host 0.0.0.0 --port 8000
|
|
|
+# Mantener el contenedor vivo (opcional)
|
|
|
+exec "$@"
|