You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.0 KiB

---
## 2) `install.sh`
```bash
#!/usr/bin/env bash
set -euo pipefail
# ====== Parámetros ======
SVC_NAME="pjsip-dashboard"
BIN_SRC="scripts/generar_dashboard_extensiones.sh"
BIN_DST="/usr/local/bin/generar_dashboard_extensiones.sh"
WEB_ROOT="/var/www/html"
LOG_DIR_SUM="/var/log"
LOG_DIR_PROB="/var/log/pjsip_problems"
# ====== Comprobaciones ======
if [[ ! -f "$BIN_SRC" ]]; then
echo "ERROR: Falta $BIN_SRC. Copia aquí TU script actual (el que ya funciona) y vuelve a correr install.sh"
exit 1
fi
if [[ $EUID -ne 0 ]]; then
echo "Ejecuta como root: sudo ./install.sh"
exit 1
fi
echo "==> Actualizando índice de paquetes"
apt-get update -y
echo "==> Instalando dependencias mínimas"
# gawk, sed, grep, coreutils ya suelen venir; apache2 solo si no hay web root
PKGS=( gawk sed grep coreutils findutils )
if ! command -v a2enmod >/dev/null 2>&1 && [[ ! -d "$WEB_ROOT" ]]; then
PKGS+=( apache2 )
fi
# Instalar bc SOLO si tu script lo usa (buscamos 'bc')
if grep -q '\bbc\b' "$BIN_SRC"; then
PKGS+=( bc )
fi
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends "${PKGS[@]}"
# Crear web root si no existe
mkdir -p "$WEB_ROOT"
# Copiar logo si existe
if [[ -f "web/logo-sapian.png" ]]; then
cp -f web/logo-sapian.png "$WEB_ROOT/logo-sapian.png"
fi
# Copiar script generador
install -m 0755 "$BIN_SRC" "$BIN_DST"
# Crear directorios de logs
mkdir -p "$LOG_DIR_PROB"
chmod 755 "$LOG_DIR_PROB"
# Instalar unit files de systemd
install -m 0644 systemd/pjsip-dashboard.service /etc/systemd/system/pjsip-dashboard.service
install -m 0644 systemd/pjsip-dashboard.timer /etc/systemd/system/pjsip-dashboard.timer
# Recargar systemd y habilitar timer
systemctl daemon-reload
systemctl enable --now pjsip-dashboard.timer
# Forzar una corrida para generar el HTML al tiro
systemctl start pjsip-dashboard.service || true
echo "==> Listo. Abre: http://<IP>/dashboard.html"
echo " Logs resumen: /var/log/pjsip_dashboard_summary.csv"
echo " Logs problemas: /var/log/pjsip_problems/pjsip_problems-YYYY-MM-DD.csv"