Tiny status page generated by a Python script
Last updated Jun 28, 2026
1.6k
Stars
92
Forks
6
Issues
0
Stars/day
Attention Score
46
Topics
Language breakdown
No language data available.
โธ Files
click to expand
README
TinyStatus
TinyStatus is a simple, customizable status page generator that allows you to monitor the status of various services and display them on a clean, responsive web page.Check out an online demo https://status.harry.id
| Light Mode | Dark Mode | |-|-| | |
|
Features
- Monitor HTTP endpoints, ping hosts, and check open ports
- Responsive design for both status page and history page
- Customizable service checks via YAML configuration
- Incident history tracking
- Automatic status updates at configurable intervals
- Supports both light and dark themes
- Supports grouping
- Cards clickable (optional)
Prerequisites
- Python 3.11 or higher
- pip (Python package manager)
Installation
- Clone the repository or download the source code:
git clone https://github.com/harsxv/tinystatus.git
cd tinystatus
- Install the required dependencies:
pip install -r requirements.txt
Configuration
- Create a
.envfile in the project root and customize the variables:
MONITOR_CONTINOUSLY=True
CHECK_INTERVAL=30
MAXHISTORYENTRIES=100
LOG_LEVEL=INFO
CHECKS_FILE=checks.yaml
INCIDENTS_FILE=incidents.md
TEMPLATE_FILE=index.html.theme
HISTORYTEMPLATEFILE=history.html.theme
STATUSHISTORYFILE=history.json
HTMLOUTPUTDIRECTORY=/var/www/htdocs/status/
- Edit the
checks.yamlfile to add or modify the services you want to monitor.
- title: 'Group 1'
checks:
- name: GitHub Home
type: http
host: https://github.com
url: https://docs.github.com/en
expected_code: 200
- name: Google Public DNS type: ping host: 8.8.8.8
- name: Dummy MySQL Database type: port host: db.example.com port: 3306
- name: Home Server with Self-Signed Certs type: http host: https://homeserver.local ssc: True expected_code: 200
- (Optional) Customize the
incidents.mdfile to add any known incidents or maintenance schedules.
- (Optional) Modify the
index.html.themeandhistory.html.themefiles to customize the look and feel of your status pages.
Usage
- Run the TinyStatus script:
python tinystatus.py
- The script will generate three files:
index.html: The main status page
- history.html: The status history page
- history.json: The status history and timestamp data
- To keep the status page continuously updated, you can run the script in the background:
nohup python tinystatus.py &
- On Windows, you can use the Task Scheduler to run the script at startup.
- Serve the generated HTML files using your preferred web server (e.g., Apache, NGINX, or a simple Python HTTP server for testing).
Using Docker
In order to run the script using Docker:
docker build -t tinystatus .
docker run -ti --rm --name tinystatus -v "$PWD":/usr/src/myapp -w /usr/src/myapp tinystatus
Customization
- Adjust the configuration variables in the
.envfile to customize the behavior of TinyStatus. - Customize the appearance of the status page by editing the CSS in
index.html.themeandhistory.html.theme. - Add or remove services by modifying the
checks.yamlfile.
Porting TinyStatus
TinyStatus porting are available in:
- Go: https://github.com/annihilatorrrr/gotinystatus
Contributing
Contributions are, of course, most welcome!
License
This project is open source and available under the MIT License.
๐ More in this category