Files
silver-server-ops/README.md
2026-04-24 10:36:33 +03:00

1.7 KiB

Silver Server Ops

Server-wide maintenance scripts and operational notes for the Silver Cloud Hetzner host.

Suggested repository name:

silver-server-ops

SSL Certificate Expiry Alerts

scripts/check-cert-expiry.sh checks every Let's Encrypt certificate under /etc/letsencrypt/live and sends an ntfy alert when any certificate expires in less than 14 days.

Install on the server:

sudo install -m 0755 scripts/check-cert-expiry.sh /opt/scripts/check-cert-expiry.sh

Recommended root cron:

15 8 * * * /opt/scripts/check-cert-expiry.sh >/var/log/cert-expiry-check.log 2>&1

Defaults:

CERT_DIR=/etc/letsencrypt/live
EXPIRY_DAYS=14
NTFY_URL=https://ntfy.silverwal.com/silver

Optional overrides:

EXPIRY_DAYS=21 NTFY_URL=https://ntfy.silverwal.com/silver /opt/scripts/check-cert-expiry.sh

If your ntfy topic is protected with an access token:

NTFY_TOKEN=your-token /opt/scripts/check-cert-expiry.sh

Manual test:

sudo /opt/scripts/check-cert-expiry.sh

The script exits with 0 when all certificates are healthy and 1 when it sends an alert or cannot run the check correctly.

Notification Notes

ntfy is a good default for this server because it is already self-hosted, simple to call from shell scripts, and supports useful alert metadata such as title, priority, and tags.

For jobs where silence is also a failure, pair ntfy with a dead man's switch such as Healthchecks. ntfy tells you what the script found; Healthchecks tells you when the script did not run at all.

If you later want one notification config that can fan out to ntfy, email, Slack, Discord, Telegram, and similar services, use Apprise as the wrapper and keep ntfy as one destination.