Skip to content

ft976/keep-alive-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Keep-Alive Dashboard πŸš€

A modern, full-stack dashboard designed to keep your free-tier servers (Render, Railway, Heroku, etc.) awake by periodically pinging them.

Free tiers often "sleep" after a period of inactivity. This application runs a background service that sends automated HTTP requests to your specified URLs at set intervals, ensuring your projects stay active and responsive.

✨ Features

  • Background Pinging: Automated HTTP GET requests sent at user-defined intervals (1-60 minutes).
  • Target Management: Add, pause, resume, and delete multiple targets.
  • Detailed Descriptions: Add notes to each target to remember what they are.
  • Relational Status Tracking: See the result of the last ping (200 OK, 404, or failure) and when it happened.
  • Persistent State: Uses a combination of client-side sync and server-side in-memory storage to ensure timers stay active.
  • Modern UI: Built with React 19, Tailwind CSS 4, and Motion for smooth animations.
  • Responsive Design: Works perfectly on desktop and mobile.

πŸ› οΈ Tech Stack

  • Frontend: React 19, Vite, Tailwind CSS 4, Motion, Lucide Icons.
  • Backend: Express, Node.js (Full-stack ESM setup).
  • Tooling: TypeScript, tsx for production runtime.

πŸš€ Deployment on Railway

This project is pre-configured for easy deployment on Railway.

Prerequisites

  • A Railway account.
  • This codebase pushed to a GitHub repository.

Steps to Deploy

  1. Connect GitHub: On Railway, click "New Project" -> "Deploy from GitHub repo".
  2. Select Repo: Choose the repository containing this project.
  3. Environment Variables:
    • Railway will automatically detect the PORT variable.
    • Set NODE_ENV to production.
  4. Build & Start:
    • Railway's Nixpacks will automatically detect the package.json.
    • It will run npm run build and then npm start.
  5. Profit: Once deployed, your dashboard is live! You can now add your other Render/Railway URLs to keep them awake.

πŸ’» Local Development

  1. Install dependencies:

    npm install
  2. Start the development server:

    npm run dev

    The app will be available at http://localhost:3000.

πŸ“ Important Note on Cold Starts

Since this dashboard itself might be deployed on a free tier, it uses a Client-to-Server Sync Pattern. When you open the dashboard in your browser, it sends your locally saved targets to the server. The server then resumes the background ping timers if they aren't already running.

To ensure 100% uptime for your other projects, it is recommended to host this specific dashboard on a non-sleeping tier or periodically visit the dashboard page to re-trigger the timers if the container restarts.


Built by Rehan97.

About

πŸš€ A modern, full-stack dashboard to prevent free-tier servers (Render, Railway, Heroku) from sleeping by sending automated periodic pings. Built with React 19, Express, and Tailwind CSS 4

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors