Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutomatorBot banner

AutomatorBot

A Telegram bot that keeps your free-tier deployments awake — automatically.

Node.js TypeScript Telegram Supabase PHP License

Live Demo · Features · How it works · Tech Stack · FAQ


📌 Overview

Free hosting tiers (Render, Supabase's own pausing, and similar platforms) spin down your app after a period of inactivity. The next real visitor then eats a slow cold start — or worse, arrives during a maintenance window and just sees an error.

AutomatorBot solves this from Telegram: add any URL, tell it how often to ping it, and it quietly keeps that service warm in the background — no server of your own to babysit, no cron job to remember to renew.

Everything is controlled with a handful of chat commands, and every user also gets a personal, key-protected web dashboard for a richer view of their monitors.

🔴 Live Demo

To prove the ping scheduler actually works — not just in theory — it's currently keeping a small test service alive on Render's free tier:

pulsecheck-jgvb.onrender.com (source)

That page reports its own uptime since last cold start. As long as AutomatorBot is pinging it on schedule, the uptime counter keeps climbing and never resets back to 0h 0m — open it a few times and watch it stay awake.

✨ Features

  • Multi-URL monitoring — add as many URLs as you want, each with its own optional label
  • Configurable ping interval — the whole bot runs on a single interval, tuned to safely beat common free-tier sleep timers
  • Per-monitor controls — pause, resume, or delete any URL individually from /manage, with confirmation before anything destructive happens
  • Live status at a glance/stats shows request counts, next ping time, and the result of the last ping for every URL you track
  • Personal web dashboard/mykey issues a private access key that logs you into a browser dashboard with a richer view: totals, per-monitor history, relative timestamps, and color-coded health
  • Bot-protected login — the dashboard login is shielded by Cloudflare Turnstile to keep it free of automated abuse
  • 10 languages — English, Chinese, Hindi, Spanish, French, Arabic, Portuguese, Russian, German, and Japanese, auto-detected with a manual override
  • Resilient by design — a failed or slow ping never crashes the scheduler; it's logged, retried on the next cycle, and reflected honestly in your stats instead of silently disappearing

🧠 How it works

At a high level, three pieces work together:

flowchart LR
    U([You, on Telegram]) -- "/add https://your-app.example" --> B[AutomatorBot]
    B -- stores the monitor --> DB[(Supabase / Postgres)]
    C[Scheduler] -- "runs every minute,\nchecks what's due" --> DB
    C -- "GET request" --> T([Your deployed app])
    T -- HTTP response --> C
    C -- "records result +\nnext ping time" --> DB
    U -- "/mykey" --> B
    B -- personal access key --> U
    U -- logs in with the key --> W[Web Dashboard]
    W -- reads status --> DB
Loading
  1. You register a URL by chatting with the bot — no dashboard signup, no API keys to generate yourself.
  2. A scheduler checks in every minute, and pings whichever of your URLs are actually due, based on your configured interval.
  3. Every result is recorded — success or failure — so /stats and the web dashboard always reflect what really happened, not just what was supposed to happen.

See docs/ARCHITECTURE.md for a more detailed breakdown of each component.

🛠 Tech Stack

Layer Technology
Bot logic Node.js, TypeScript, Telegraf
Scheduling node-cron, interval-based per monitor
Database Supabase (managed PostgreSQL)
Web dashboard PHP, server-rendered, session-based auth
Bot-abuse protection Cloudflare Turnstile
Hosting Free-tier friendly (Render / JustRunMy.App)

💬 Bot Commands

Command What it does
/start Introduction and quick command reference
/add Register a new URL to keep alive
/manage View, pause, resume, or delete your monitored URLs
/stats See request counts and per-URL status at a glance
/mykey Get (or regenerate) your personal web dashboard access key
/cancel Cancel whatever multi-step action is currently pending

🔒 A note on source code

This repository is documentation-only. It exists to explain what AutomatorBot does, how the pieces fit together, and to link to a live, verifiable demo of it working — not to publish the implementation. The service-role database credentials, scheduler internals, and dashboard templates are kept private.

See SECURITY.md for how vulnerabilities can be reported responsibly even without access to the source.

❓ FAQ

Answers to the "does it actually work / is it safe" questions live in docs/FAQ.md.

📄 License

See LICENSE — all rights reserved. This repository may be viewed and shared as-is; the underlying software is proprietary.

About

A Telegram bot that keeps free-tier deployments awake — schedule pings for any URL, track status per-monitor, and check it all from a personal web dashboard. Source is private; live uptime demo linked in the README.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Contributors