Skip to content

syofyanzuhad/uptime-kita

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Uptime Monitoring

✅ Uptime Kita

GitHub Issues or Pull Requests Pull Requests Badge GitHub contributors

uptime syofyanzuhad dev

"Kita" is the Indonesian word that means "Us"; this means that the uptime can be used for all of us

🥔 Live Demo

U can try the uptime kita demo (Server located on Germany)

⭐ Key Features

  • 🔐 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

🔧 How to Install

Requirements:

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details on our development workflow, pull request process, and coding standards.

🔧 Installation

  • 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 and MonitorSeeder.php file

    - 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:

    1. 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=3600

      Read more about laravel queue

    2. 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=3600
      sudo supervisorctl reread
      
      sudo supervisorctl update
      
      sudo supervisorctl start horizon

      Read more about laravel horizon

Note

change the path to your project path

🛣️ Roadmap

  • Uptime monitoring
  • SSL Monitoring
  • Monitoring history
  • Notification:
    • Email
    • Telegram
    • Slack
    • Discord
  • Status page
  • Do you have any suggestions?

📸 Screenshots

Private monitors

uptime syofyanzuhad private_monitor_1 uptime syofyanzuhad private_dashboard

Public monitors

uptime syofyanzuhad public_monitor_1 uptime syofyanzuhad public_dashboard

Detail Monitor

uptime syofyanzuhad detail_monitor

Status Page

uptime syofyanzuhad detail_status_monitor uptime syofyanzuhad public_status_syofyan-zuhad

Notification

uptime syofyanzuhad dev_status-pages_1 Screenshot 2025-07-22 at 09 18 08

📊 Activity

Alt

⭐️ Star History

Star History Chart

Uptime Kita is an open-sourced software licensed under the Apache-2.0