|
| 1 | +- #### [**`DAGU`**](https://github.com/dagu-dev/dagu) |
| 2 | +> - Config: https://dagu.readthedocs.io/en/latest/config.html |
| 3 | +> - Dags: `$HOME/.dagu/dags` |
| 4 | +```bash |
| 5 | +#User Context for Systemd |
| 6 | +export DAGU_USER="$(whoami)" |
| 7 | +#HOME Dir of Current $USER |
| 8 | +export DAGU_HOME="$(getent passwd $DAGU_USER | cut -d: -f6)" ; mkdir -p "$DAGU_HOME/.dagu" |
| 9 | +#IP Address [Manually specify TS IP if (Usermode)] |
| 10 | +export DAGU_HOST="$(ip addr show tailscale0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || sudo tailscale ip -4 2>/dev/null | tr -d '\n' | tr -d '[:space:]')" |
| 11 | +#To listen on all interfaces: export DAGU_HOST="0.0.0.0" |
| 12 | +#export DAGU_HOST="127.0.0.1" |
| 13 | +#PORT for WEBUI/API |
| 14 | +export DAGU_PORT="8080" |
| 15 | +#AUTH for webui/api |
| 16 | +DAGU_BASICAUTH_USERNAME="$SECURE_USERNAME" |
| 17 | +DAGU_BASICAUTH_PASSWORD="$SECURE_PASSWORD" |
| 18 | +``` |
| 19 | +--- |
| 20 | +- #### SystemD |
| 21 | +```bash |
| 22 | +##--Systemd--## |
| 23 | +sudo curl -qfsSL "https://bin.ajam.dev/$(uname -m)/dagu" -o "/usr/bin/dagu" && sudo chmod +x "/usr/bin/dagu" |
| 24 | +sudo mkdir -p "/etc/systemd/system/" && sudo touch "/etc/systemd/system/dagu_ts.service" |
| 25 | +cat << EOF | sed -e "s|DG_USER|$DAGU_USER|" -e "s|DG_HOME|$DAGU_HOME|" -e "s|DG_HOST|$DAGU_HOST|" -e "s|DG_PORT|$DAGU_PORT|" -e "s|DG_SUSER|$DAGU_BASICAUTH_USERNAME|" -e "s|DG_SPASSWD|$DAGU_BASICAUTH_PASSWORD|" | sudo tee "/etc/systemd/system/dagu_ts.service" |
| 26 | +[Unit] |
| 27 | +Description=Dagu Job Scheduler |
| 28 | +Wants=network-online.target |
| 29 | +Requires=tailscaled.service |
| 30 | +After=network-online.target network.target tailscaled.service |
| 31 | +
|
| 32 | +[Service] |
| 33 | +Type=simple |
| 34 | +User=DG_USER |
| 35 | +Environment="DAGU_HOME=DG_HOME/.dagu" |
| 36 | +Environment="DAGU_HOST=DG_HOST" |
| 37 | +Environment="DAGU_PORT=DG_PORT" |
| 38 | +Environment="DAGU_IS_BASICAUTH=1" |
| 39 | +Environment="DAGU_BASICAUTH_USERNAME=DG_SUSER" |
| 40 | +Environment="DAGU_BASICAUTH_PASSWORD=DG_SPASSWD" |
| 41 | +ExecStartPre=/bin/mkdir -p DG_HOME/.dagu/syslog |
| 42 | +ExecStartPre=/bin/sleep 10 |
| 43 | +ExecStart=/usr/bin/dagu start-all |
| 44 | +StandardOutput=DG_HOME/.dagu/syslog/dagu_ts.log |
| 45 | +StandardError=DG_HOME/.dagu/syslog/dagu_ts.log |
| 46 | +Restart=always |
| 47 | +KillMode=process |
| 48 | +
|
| 49 | +[Install] |
| 50 | +WantedBy=multi-user.target |
| 51 | +EOF |
| 52 | + |
| 53 | +sudo systemctl daemon-reload |
| 54 | +sudo systemctl enable "dagu_ts.service" --now |
| 55 | +#If Unit tailscaled.service not found: |
| 56 | +# sudo sed -i -e '/Requires=/d' -e 's/tailscaled.service//g' "/etc/systemd/system/dagu_ts.service" |
| 57 | +# sudo systemctl daemon-reload |
| 58 | +# sudo systemctl enable "dagu_ts.service" --now |
| 59 | +sudo systemctl restart "dagu_ts.service" |
| 60 | +sudo systemctl status "dagu_ts.service" |
| 61 | +journalctl -xeu "dagu_ts.service" |
| 62 | +``` |
| 63 | +--- |
| 64 | +- #### Tmux |
| 65 | +```bash |
| 66 | +#Run in a tmux-no-hop session |
| 67 | + pgrep --full dagu | xargs kill -9 2>/dev/null |
| 68 | + tmux kill-session -t "dagu" 2>/dev/null |
| 69 | + tmux new-session -s "dagu" |
| 70 | + mkdir -p "$HOME/.logs" |
| 71 | + export "DAGU_IS_BASICAUTH=1" |
| 72 | + nohup dagu start-all > "$HOME/.logs/dagu.log" 2>&1 & |
| 73 | + #nohup dagu start-all >/dev/null 2>&1 & |
| 74 | + tmux detach-client |
| 75 | + # [ctrl + b] + d to detach |
| 76 | + # To kill (From a dettached Terminal): pgrep --full tmux | xargs kill -9 |
| 77 | +#Attach |
| 78 | + tmux attach-session -t "dagu" |
| 79 | +``` |
0 commit comments