/TinyStat

✅ A simple status page service, written in PHP

Primary LanguagePHPMIT LicenseMIT

TinyStat

A simple status page service, written in PHP

中文介绍 | Français

image

Features

  • TCP/UDP/ICMP/HTTP Service support
  • Locale support
  • Incident description with markdown support
  • Email/Discord/Kook/DingTalk/WeCom notification
  • MySQL/SQLite3 support

Requirements

  • PHP >= 7.0
  • Extension: cURL, Socket, PDO
  • MySQL / Mariadb with InnoDB support
  • SQLite3 (optional)
  • Terminal access (for cron/console)

Installation

  1. Clone this repo to your website root folder
cd /data/wwwroot/my-website.com/
git clone https://github.com/kasuganosoras/TinyStat .
  1. Create a new database, using utf8mb4 charset. (Skip this step if you are using SQLite)
  2. Edit your config.php and change the database info.
  3. Running the following command in your terminal to initialize the database
php console.php install
  1. Create a new user
php console.php createuser
  1. Open the browser and visit your website to check the installation
  2. Using screen or other terminal manager to run the cron.php in background.
cd /data/wwwroot/my-website.com/
screen -Dms tinystat /usr/local/php/bin/php cron.php

You can also use systemd to manage the service.

File: /etc/systemd/system/tinystat.service

[Unit]
Description=TinyStat Service
After=network.target

[Service]
WorkingDirectory=/data/wwwroot/my-website.com/

ExecStart=/usr/local/php/bin/php cron.php

Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

TO-DO

  • Email notification
  • Service display sort
  • Subscribe the status

License

This project is open source under the MIT license.