π₯οΈ Automated Website Uptime Monitor with Email Alerts & GitHub Status Page Update
This n8n workflow continuously monitors your websiteβs availability, sends email alerts when the server goes down, and automatically updates a status page (index.html) in your GitHub repository to reflect the live status.
π Good to Know
- The workflow checks your website every 2 minutes (interval configurable).
- If the website is down (503, bad response, or error) β it sends an email alert and updates the GitHub-hosted status page to show Down.
- If the website is up (200) β it updates the GitHub-hosted status page to show Up.
- The email notification includes an HTML-formatted alert page.
- You can use GitHub Pages to host the status page publicly.
βΉοΈ What is GitHub Pages?
- GitHub Pages is a free hosting service provided by GitHub that lets you publish static websites (HTML, CSS, JS) directly from a GitHub repository.
- You can use it to make your
index.html
status page publicly accessible with a URL like:
β‘ How to Set Up GitHub Pages for Your Status Page
- Create a new repository on GitHub (recommended name:
status
).
- Add a blank
index.html
file (n8n workflow will later update this file).
- Go to your repository β Settings β Pages.
- Under Source , select the branch (
main
or master
) and folder (/root
).
- Save changes.
- Your status page will now be live at:
https://<USERNAME>.github.io/status
β
Prerequisites
- An n8n instance (self-hosted or cloud).
- A GitHub account & repository (to host the status page).
- A Gmail account (or any email service supported by n8n β example uses Gmail).
- Access to the target website URL you want to monitor.
βοΈ How it Works
- Schedule Trigger β Runs every 2 minutes.
- HTTP Request β Pings your website URL.
- Switch Node β Evaluates the response status (200 OK vs error/503).
- Code Node β Generates a dynamic HTML status page (Up/Down).
- GitHub Repo & File β Github Repo Name Should be
https://github.com/<OWNER_NAME>/status
(recommended) & Must have(required) a blank file named as index.html
before triggering this flow.
- GitHub Node β Updates/commits the
index.html
file in your repository.
- Gmail Node β Sends an email alert if the site is down.
π How to Use
- Import the workflow JSON into your n8n instance.
- Configure credentials for:
- GitHub (Personal Access Token with repo permissions).
- Gmail (or your preferred email service).
- Replace the following:
https://app.yourdomain.com/health
β with your own website URL.
[[email protected]](/cdn-cgi/l/email-protection)
β with your email address (or distribution list).
- GitHub repo details β with your repository where
index.html
will live.
- Deploy the workflow.
- (Optional) Enable GitHub Pages on your repo to serve
index.html
as a live status page.
π Requirements
- n8n v1.0+
- GitHub personal access token
- Gmail API credentials (or SMTP/email service of your choice)
π¨ Customising this Workflow
- Interval β Change schedule from 2 minutes to any desired frequency.
- Email Content β Modify HTML alert template in the Gmail node.
- Status Page Styling β Edit the HTML/CSS in the Code node to match your branding.
- Error Handling β Extend Switch node for other status codes (e.g., 404, 500).
- Multiple Websites β Duplicate HTTP Request + Switch nodes for multiple URLs.
π€ Who Can Use It?
- DevOps & SRE Engineers β For automated uptime monitoring.
- Freelancers/Developers β To monitor client websites.
- Startups & SMEs β For a free, lightweight status page without paid tools.
- Educators/Students β As a hands-on learning project with n8n.
π Key Features
- π Automated uptime checks (configurable interval).
- π§ Email notifications on downtime.
- π Dynamic HTML status page generation.
- π GitHub Pages integration for public visibility.
- β‘ Lightweight & cost-effective (no paid monitoring tool needed).
π Tools Integration
- n8n β Orchestration & automation.
- GitHub β Version control + hosting of status page.
- Gmail β Email notifications.
- HTTP Request β Website availability check.
π Example Use Cases
- Personal website monitoring with public status page.
- Monitoring SaaS apps & notifying support teams.
- Internal company services uptime dashboard.