feat: agregar scripts de despliegue estandar desplegar.sh, init.sh y servers.conf.example
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
# init.sh — Ejecutor en el servidor de producción (192.168.10.160)
|
||||
# Solo arranca lo que ya está instalado. No compila, no sube código.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SESSION="drop-sigmac-app"
|
||||
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# 1. Asegurar existencia de .env
|
||||
if [[ ! -f "$SCRIPT_DIR/.env" ]]; then
|
||||
if [[ -f "$SCRIPT_DIR/.env.example" ]]; then
|
||||
echo "==> Creando .env inicial desde .env.example..."
|
||||
cp "$SCRIPT_DIR/.env.example" "$SCRIPT_DIR/.env"
|
||||
# Configurar puerto de producción 2006 y URL por defecto
|
||||
sed -i 's/^PORT=.*/PORT=2006/' "$SCRIPT_DIR/.env"
|
||||
sed -i 's|^BASE_URL=.*|BASE_URL=https://drop.sigmac.app|' "$SCRIPT_DIR/.env"
|
||||
else
|
||||
echo "⚠️ Advertencia: No se encontró .env ni .env.example."
|
||||
fi
|
||||
fi
|
||||
|
||||
# 2. Asegurar directorios de datos y uploads
|
||||
mkdir -p "$SCRIPT_DIR/data/uploads"
|
||||
|
||||
# 3. Permisos de ejecución al binario
|
||||
chmod +x "$SCRIPT_DIR/app_compartir"
|
||||
|
||||
# 4. Modo de arranque: Si existe servicio systemd, usarlo; de lo contrario, sesión tmux
|
||||
if systemctl is-active --quiet drop-sigmac-app.service 2>/dev/null || [ -f /etc/systemd/system/drop-sigmac-app.service ]; then
|
||||
echo "==> Reiniciando servicio systemd 'drop-sigmac-app.service'..."
|
||||
sudo systemctl restart drop-sigmac-app.service
|
||||
sudo systemctl status drop-sigmac-app.service --no-pager
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 5. Arranque en tmux (si no hay systemd)
|
||||
echo "==> Deteniendo sesión tmux anterior si existe..."
|
||||
tmux kill-session -t "$SESSION" 2>/dev/null || true
|
||||
|
||||
echo "==> Iniciando drop.sigmac.app en sesión tmux '$SESSION'..."
|
||||
tmux new-session -d -s "$SESSION" "cd '$SCRIPT_DIR' && ./app_compartir"
|
||||
|
||||
sleep 1
|
||||
if tmux has-session -t "$SESSION" 2>/dev/null; then
|
||||
echo "✅ Servidor drop.sigmac.app iniciado con éxito en sesión tmux '$SESSION'."
|
||||
echo " Puerto: $(grep '^PORT=' "$SCRIPT_DIR/.env" 2>/dev/null | cut -d= -f2 || echo '2006')"
|
||||
echo " Para ver logs en vivo: tmux attach -t $SESSION"
|
||||
echo " Para salir del log sin matar el proceso: Ctrl+B, luego D"
|
||||
else
|
||||
echo "❌ Error al iniciar la sesión tmux."
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user