GuruWatcher Guides · 24/7 on Hetzner

Run 24/7 on a cheap Hetzner server

Optional. Locally, Keep checking only runs while your computer is awake. A small cloud server can keep watching overnight — still your Discord, your email, alert-only.

All guides Keep checking (local)

Do you need this?

No. Most people start on a Mac or PC with the launcher and Keep checking. That path stays the simplest.

Use a server only if you want alerts even when your computer is closed or asleep. You rent the machine; GuruWatcher does not host it for you. 24/7 on a server uses the source zip + CLI, not the packaged Mac/Windows app.

Why Hetzner?

Hetzner Cloud sells small Linux VMs that are usually only a few euros a month for the cheapest size — enough for GuruWatcher. Other clouds work the same way; this guide uses Hetzner because it’s a common cheap option. Check their site for current prices and locations.

Pick a region near you. You don’t need a big plan — the smallest shared CX / CAX (or current entry size) is fine for alert-only Keep checking.

What you’ll do (overview)

  1. Create a Hetzner Cloud account and add a payment method (their checkout, not ours).
  2. Create a server — Ubuntu LTS, smallest size, add your SSH key (safer than a password).
  3. Log in with SSH from your computer (ssh root@YOUR_SERVER_IP).
  4. Install GuruWatcher from your purchase zip (or private repo if you have an invite) onto that server.
  5. Configure once — Discord alert link, newsletter email (or drop folder), then run the schedule so it keeps checking.

Install on the server (Linux)

After SSH, something like this (paths are yours — adjust):

sudo apt update && sudo apt install -y python3 python3-venv python3-pip unzip
# Upload or download your GuruWatcher zip, then:
unzip GuruWatcher-*.zip -d ~/GuruWatcher
cd ~/GuruWatcher
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
export GURU_WATCHER_DATA="$HOME/gw-data"
python3 -m guru_watcher init --data-dir "$GURU_WATCHER_DATA"
# Put Discord webhook + email settings in $GURU_WATCHER_DATA/.env
# (same ideas as the Control Panel — see Connect Discord / Connect email guides)

For Discord and email setup ideas, use the same guides as in the local setup: Connect Discord · Connect email. On a headless server you’ll edit .env (or copy a data folder you already tested locally) instead of using the browser Control Panel.

Keep it running without Docker

Your zip includes optional Linux timer files under systemd/toolkit/. They run ingest → reconcile → check on a schedule (same spine as Keep checking). Edit the paths for your home directory, then:

sudo cp systemd/toolkit/guruwatcher-pipeline.service /etc/systemd/system/
sudo cp systemd/toolkit/guruwatcher-pipeline.timer /etc/systemd/system/
# Edit those unit files: set WorkingDirectory, User, GURU_WATCHER_DATA, venv python
sudo systemctl daemon-reload
sudo systemctl enable --now guruwatcher-pipeline.timer
systemctl list-timers guruwatcher-pipeline.timer

Start in Safe / dry-run until you’re sure Discord and email look right. Live mode needs a valid Discord alert link and fails closed without one.

Safety & common sense

Next

Prefer the simple path? Keep checking on your computer · or back to all guides.