Skip to content

Commit fc68f48

Browse files
authored
Create DAGU_CRON.md
1 parent 5c52a67 commit fc68f48

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

Linux/DAGU_CRON.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
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

Comments
 (0)