Uptime Monitor is a self-hosted web monitoring tool, built with laravel.
- Monitor your web uptime per minutes (or any time interval)
- Record response time on each web
- Show uptime badges in 3 colors: green for up, yellow for warning, red for down, based on response time
- Send telegram notification when you site down for 5 minutes (based on check periode)
- Open-source, modify as you need
- Self-hosted, deploy on your own server
- Store and control your monitoring logs yourself
- Let you know when your websites are down
- For freelancer/agency, increase your client's trust because you monitor their website
This application can be installed on local server and online server with these specifications:
- PHP 8.1 (and meet Laravel 10.x requirements).
- MySQL or MariaDB Database.
- SQLite (for automated testing).
- Clone repository:
git clone https://github.com/nafiesl/uptime-monitor.git $ cd uptime-monitor- Install PHP dependencies:
$ composer install - Install javscript dependencies:
$ npm install - Copy
.env.exampleto.env:$ cp .env.example .env - Generate application key:
$ php artisan key:generate - Create a MySQL or MariaDB database.
- Configure database and environment variables
.env.APP_URL=http://localhost:8000 APP_TIMEZOME="Asia/Jakarta" DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret TELEGRAM_NOTIFER_TOKEN= - Run database migration:
$ php artisan migrate --seed - Build assets:
$ npm run build - Run task scheduler:
$ php artisan schedule:work - Start server in a separeted terminal tab:
$ php artisan serve - Open the web app: http://localhost:8000.
- Login using default user credential:
- Email:
[email protected] - Password:
password
- Email:
- Go to Customer Site menu.
- Add some new customer sites (name and URL).
- After adding customer sites, go to Dashboard
- Click Start Monitoring to update the uptime badge per minute.
In order to get notified in Telegram when the customer sites are down, we need to use a Telegram Bot and a Chat ID
- Create a Telegram Bot (how to)
- Get a Chat ID of the Telegram Bot (how to)
- Update
.envfile, setTELEGRAM_NOTIFER_TOKEN=your_telegram_bot_token - Set our Chat ID in the Profile Page.
- Go to User Profile Menu
- Click Edit Profile
- Fill the Telegram Chat ID field with
your_chat_id - Click Update Profile
- Click Test Telegram Chat to test the telegram configuration
- By default, we will have 5 minutes inteval when the customer sites are down. But we can change the interval per customer sites.
- Go to Customer Site menu
- Select one of the customer site and click Edit link
- Set the Notify User Interval field, between 0 to 60.
- Set the Notify User Interval field to 0 if you don't want to get notified.
Uptime Monitor project is an open-sourced software licensed under the Lisensi MIT.





