Files
dagu_automatizaciones/instalar_dagu_local.sh
T
2025-11-02 02:30:12 +01:00

80 lines
2.0 KiB
Bash

#!/usr/bin/env bash
set -e
# --- VARIABLES ---
USER_HOME="/home/lucas"
BASHRC="$USER_HOME/.bashrc"
DAGU_CONFIG_DIR="$USER_HOME/.config/dagu"
DAGU_CONFIG_FILE="$DAGU_CONFIG_DIR/config.yaml"
SERVICE_FILE="/etc/systemd/system/dagu.service"
LOCAL_BIN="$USER_HOME/.local/bin"
# --- 1. INSTALAR DAGU ---
echo "🚀 Instalando Dagu..."
curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bash
# --- 2. AÑADIR PATH AL BASHRC SI NO EXISTE ---
if ! grep -Fxq "export PATH=\"\$PATH:$LOCAL_BIN\"" "$BASHRC"; then
echo "🛠 Añadiendo $LOCAL_BIN al PATH en .bashrc..."
echo 'export PATH="$PATH:/home/lucas/.local/bin"' >> "$BASHRC"
else
echo "✅ PATH ya contiene $LOCAL_BIN."
fi
# --- 3. CREAR CONFIGURACIÓN DE DAGU ---
echo "🧩 Creando archivo de configuración de Dagu..."
mkdir -p "$DAGU_CONFIG_DIR"
cat > "$DAGU_CONFIG_FILE" <<EOF
# ~/.config/dagu/config.yaml
host: 0.0.0.0
port: 4200
auth:
basic:
enabled: true
username: admin
password: admin
paths:
dagsDir: ~/.dagu/workflows
logDir: /var/log/dagu
EOF
# Crear directorios de logs y workflows
mkdir -p "$USER_HOME/.dagu/workflows"
sudo mkdir -p /var/log/dagu
sudo chown -R "$(whoami)":"$(whoami)" /var/log/dagu
# --- 4. RECARGAR BASHRC ---
echo "🔄 Recargando bashrc..."
source "$BASHRC"
# --- 5. CREAR SERVICIO SYSTEMD ---
echo "⚙️ Creando servicio systemd para Dagu..."
sudo bash -c "cat > $SERVICE_FILE" <<'EOF'
[Unit]
Description=Dagu Workflow Engine
After=network.target
[Service]
Type=simple
User=lucas
WorkingDirectory=/home/lucas
Environment=DAGU_PORT=4200
ExecStart=/home/lucas/.local/bin/dagu start-all --port 4200
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
# --- ACTIVAR SERVICIO ---
echo "🧠 Activando servicio de Dagu..."
sudo systemctl daemon-reload
sudo systemctl enable dagu.service
sudo systemctl restart dagu.service
echo "✅ Dagu instalado, configurado y ejecutándose en el puerto 4200"
echo "🌐 Abre: http://localhost:4200 con usuario 'admin' y contraseña 'admin'"