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.example
to.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:
admin@example.net
- 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
.env
file, 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.