{"repo":"Donnie/ManDown","free":true,"listed":false,"github":"https://github.com/Donnie/ManDown","clone":"git clone https://github.com/Donnie/ManDown.git","description":"🦀 Telegram Bot to notify when a website is down. Health check.","language":"Rust","stars":17,"topics":["telegram-bot","healthcheck","docker","bot","rust"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"ManDown Telegram bot that tracks website availability by polling HTTP status codes. Any change (for example 200 → 500 or 502 → 404 ) is reported to you on Telegram. Production Try it now: https://t.me/ManDownBot Production runs on Google Cloud Run: - webhook — Cloud Run service that receives Telegram updates - poller — Cloud Run job triggered by Cloud Scheduler every 10 minutes State is stored in Google Firestore (MongoDB API). Infra lives in infra/ . I have been running this bot since Jul 2020. Cost is covered by the Google Free Tier. For uptime guarantees, host it on your own cloud account. Workspace Dev setup Copy .env.dist to .env and fill in values: Required for both binaries: - TELOXIDE TOKEN — Telegram bot token - MONGODB URI — MongoDB / Firestore connection string Additional for the webhook: - WEBHOOK URL — public HTTPS URL Telegram should call (use something like ngrok http 8080 locally) - WEBHOOK TOKEN — shared secret for Telegram's secret token - PORT — listen port (defaults to 8080 ) Run one binary at a time: Release build: Container images: Commands /track 1. Send /track google.in 2. The bot validates the URL 3. It checks both http and https 4. If the site is not already tracked, it is added Polling 1. Cloud Scheduler triggers the poller job on a fixed schedule (every 10 minutes in production) 2. The poller checks whether any tracked site's status changed 3. On change, it sends you a Telegram message /untrack 1. Send /untrack google.in 2. The bot validates the UR","default_branch":null,"files":null,"tree":[],"storefront":"/r/Donnie","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Donnie/ManDown/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}