Add openclaw-watchdog fork with Telegram + Gotify support
- Cloned jlgrimes/openclaw-watchdog and modified - Added telegram_send() and gotify_send() functions - Modified send_sos() and send_recovery() for multi-channel - Updated setup.sh to configure Telegram/Gotify - All notification channels work simultaneously - Ready to install and run as systemd service
This commit is contained in:
105
openclaw-watchdog/README.md
Normal file
105
openclaw-watchdog/README.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# 🦞 openclaw-watchdog
|
||||
|
||||
A standalone watchdog service for [OpenClaw](https://openclaw.dev) that monitors the gateway, auto-recovers from crashes, and sends Discord alerts when things go sideways.
|
||||
|
||||
## What It Does
|
||||
|
||||
- **Health monitoring** — Polls the gateway health endpoint at a configurable interval
|
||||
- **Auto-restart** — Restarts the gateway on first failure detection
|
||||
- **Config rollback** — Reverts to last-known-good config if a simple restart doesn't work
|
||||
- **Discord SOS alerts** — Sends a detailed alert with SSH instructions when all recovery fails
|
||||
- **Recovery notifications** — Lets you know when the gateway comes back online
|
||||
- **No spam** — Only alerts once per incident
|
||||
|
||||
## Recovery Flow
|
||||
|
||||
```
|
||||
Health check fails
|
||||
│
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ Stage 1: │──→ Simple restart
|
||||
│ Restart │
|
||||
└──────┬──────┘
|
||||
│ still failing
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ Stage 2: │──→ Revert config to last-known-good + restart
|
||||
│ Rollback │
|
||||
└──────┬──────┘
|
||||
│ still failing
|
||||
▼
|
||||
┌─────────────┐
|
||||
│ Stage 3: │──→ Discord SOS with hostname & SSH instructions
|
||||
│ SOS Alert │
|
||||
└─────────────┘
|
||||
```
|
||||
|
||||
When the gateway recovers at any point, a ✅ recovery message is sent.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- [OpenClaw](https://openclaw.dev) installed with `openclaw` CLI available
|
||||
- Linux with systemd
|
||||
- `curl` and `jq`
|
||||
- Discord bot token (optional, for alerts)
|
||||
|
||||
## Quick Install
|
||||
|
||||
```bash
|
||||
git clone https://github.com/jlgrimes/openclaw-watchdog.git
|
||||
cd openclaw-watchdog
|
||||
chmod +x setup.sh watchdog.sh
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
The installer will:
|
||||
1. Copy `watchdog.sh` to `~/.openclaw/`
|
||||
2. Create a config file at `~/.openclaw/watchdog.env`
|
||||
3. Set up and start a systemd service
|
||||
|
||||
## Configuration
|
||||
|
||||
All settings live in `~/.openclaw/watchdog.env` (created by the installer):
|
||||
|
||||
| Variable | Default | Description |
|
||||
|---|---|---|
|
||||
| `HEALTH_URL` | `http://localhost:3000/health` | Gateway health endpoint |
|
||||
| `CHECK_INTERVAL` | `30` | Seconds between health checks |
|
||||
| `FAIL_THRESHOLD` | `3` | Consecutive failures before SOS |
|
||||
| `OPENCLAW_CONFIG_PATH` | `~/.openclaw/config.yaml` | Path to OpenClaw config |
|
||||
| `DISCORD_CHANNEL_ID` | *(none)* | Discord channel for alerts |
|
||||
| `DISCORD_BOT_TOKEN` | *(none)* | Discord bot token for alerts |
|
||||
|
||||
After editing, restart the service:
|
||||
|
||||
```bash
|
||||
sudo systemctl restart openclaw-watchdog
|
||||
```
|
||||
|
||||
## Manual Usage
|
||||
|
||||
You can also run the watchdog directly:
|
||||
|
||||
```bash
|
||||
export DISCORD_BOT_TOKEN="your-token"
|
||||
export DISCORD_CHANNEL_ID="your-channel-id"
|
||||
./watchdog.sh
|
||||
```
|
||||
|
||||
## Managing the Service
|
||||
|
||||
```bash
|
||||
sudo systemctl status openclaw-watchdog # Check status
|
||||
sudo systemctl restart openclaw-watchdog # Restart
|
||||
sudo systemctl stop openclaw-watchdog # Stop
|
||||
tail -f ~/.openclaw/watchdog.log # View logs
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
[MIT](LICENSE)
|
||||
|
||||
## Credits
|
||||
|
||||
Built by **Jared Grimes** and **Claw 🦞** (an OpenClaw AI assistant)
|
||||
Reference in New Issue
Block a user