"Kita" is the Indonesian word that means "Us"; this means that the uptime can be used for all of us
U can try the uptime kita demo (Server located on Germany)
- Status Page Demo: Syofyan Zuhad
- 🔐 Google Oauth authentication
- ✅ Monitoring uptime for HTTP(s)
- 🔒 Certificate check
- ✨ Fancy, Reactive, Fast UI/UX
- 📩 Notifications via Email (SMTP), Telegram, Slack, and the others are still in progress
- 📊 Multiple status pages
- php ^8.2 (and meet Laravel 12.x requirements).
- Node.js ^22
- Redis
- SQLite
- Crontab
- Supervisord
We welcome contributions! Please see our Contributing Guide for details on our development workflow, pull request process, and coding standards.
-
Clone repository:
git clone https://github.com/syofyanzuhad/uptime-kita
-
Install PHP dependencies:
composer install
-
Install javscript dependencies and build assets:
# install dependencies npm install # build assetes npm run build
-
Setup .env file
# change directory to the uptime-kita cd uptime-kita # copy .env file from .env.example cp .env.example .env
# admin credential [email protected] ADMIN_PASSWORD=password123 # google oauth https://developers.google.com/identity/protocols/oauth2?hl=id GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # telegram bot token https://t.me/botfather TELEGRAM_BOT_TOKEN= # email configuration with https://resend.com/ RESEND_API_KEY=
-
Generate application key:
php artisan key:generate
-
Update default monitor on
database/seeder/monitors/directory andMonitorSeeder.phpfile- seeders |_ monitors | |_monitors.php | |_collages.php |_ MonitorSeeer.php// MonitorSeeder.php /** * Run the database seeds. */ public function run(): void { $monitors = require database_path('seeders/monitors/monitors.php'); $collages = require database_path('seeders/monitors/collage.php'); // others code }
-
Create databases:
touch database/database.sqlite touch database/queue.sqlite touch database/telescope.sqlite
-
Run migration and seeder (this will prompt to create database.sqlite file if it doesn't exists)
php artisan migrate --seed --force
-
Run the scheduler using cron job:
# open cron configuration crontab -e# copy this text to the end of line (change the path to your project path) * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Read more about laravel scheduler
-
There are 2 ways to run the background job:
-
Laravel Queue
# install supervisord sudo apt-get install supervisor # add new file on /etc/supervisor/conf.d directory touch /etc/supervisor/conf.d/laravel-worker.conf
# copy this text (change the path to your project path) [program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /home/path-to-project/artisan queue:work sqs --sleep=3 --tries=3 --max-time=3600 autostart=true autorestart=true stopasgroup=true killasgroup=true user=forge numprocs=8 redirect_stderr=true stdout_logfile=/home/forge/app.com/worker.log stopwaitsecs=3600Read more about laravel queue
-
Laravel Horizon
# install supervisord sudo apt-get install supervisor # add new file on /etc/supervisor/conf.d directory touch /etc/supervisor/conf.d/horizon.conf
# copy this text (change the path to your project path) [program:horizon] process_name=%(program_name)s command=php /home/path-to-project/artisan horizon autostart=true autorestart=true user=forge redirect_stderr=true stdout_logfile=/home/path-to-project/horizon.log stopwaitsecs=3600sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start horizon
Read more about laravel horizon
-
Note
change the path to your project path
- Uptime monitoring
- SSL Monitoring
- Monitoring history
- Notification:
- Telegram
- Slack
- Discord
- Status page
- Do you have any suggestions?
Uptime Kita is an open-sourced software licensed under the Apache-2.0