Quick Installation
PingPanther can be installed on a fresh Ubuntu 24.04 LTS server with a single command.
Requirements
- • Ubuntu 24.04 LTS (fresh installation recommended)
- • Minimum: 2GB RAM, 1 CPU core
- • Recommended: 4GB RAM, 2 CPU cores
- • Root access (sudo is not enough)
- • A domain name pointing to your server (optional, for SSL)
Installation Command
SSH into your server and run the following command:
bash <(curl -sSL https://raw.githubusercontent.com/paramientos/pingpantherio/main/install.sh)
The installer will interactively prompt you for:
- • Domain name (or it will use your server IP)
- • Admin email address
- • Password will be auto-generated securely
What Gets Installed
The installer automatically sets up:
- • PHP 8.4 with FPM and required extensions
- • Nginx web server
- • PostgreSQL database
- • Redis for caching and queues
- • Laravel Horizon for queue management
- • Let's Encrypt SSL certificates (if domain provided)
- • Systemd services for auto-restart
- • Production optimizations (OPcache, route caching)
First Login
After installation completes, access your dashboard at https://yourdomain.com
Your Credentials:
At the end of installation, the script will display your admin credentials.
- • Email: The email you provided during installation
- • Password: Auto-generated secure password (save it!)
💡 Make sure to save these credentials immediately!
Try Live Demo
Want to try PingPanther before installing? Access our demo instance with pre-filled credentials.
Access Demo DashboardPost-Installation Configuration
After installation, you may want to configure additional settings for your production environment.
Email Settings
To receive email alerts, update your .env file
located at /var/www/pingpanther/.env
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="alerts@yourdomain.com"
MAIL_FROM_NAME="PingPanther Alerts"
After updating, clear the cache:
php artisan config:cache
Laravel Horizon
Horizon provides a dashboard for your Redis queues at /horizon
To restart Horizon after code changes:
sudo systemctl restart pingpanther-horizon
Updating PingPanther
To update to the latest version:
cd /var/www/pingpanther
git pull origin main
composer install --no-dev --optimize-autoloader
yarn install && yarn build
php artisan migrate --force
php artisan optimize
sudo systemctl restart pingpanther-horizon
Reset User Password
If you forgot your password or need to reset a user's password, use the built-in command:
cd /var/www/pingpanther
php artisan pp:reset-password
The command will interactively prompt you for:
- • User email address
- • New password (hidden input)
💡 The password will be securely hashed before saving to the database.
Firewall Configuration
The installer configures UFW to allow HTTP and HTTPS. Check status:
sudo ufw status
Data Retention Policy
By default, PingPanther automatically prunes old monitoring data to keep your database size manageable.
Default Behavior:
The system runs a daily scheduled task that removes monitoring data older than 30 days. This helps maintain optimal database performance.
$schedule->command(PruneOldData::class)->daily();
Disable Auto-Pruning:
If you want to keep all historical data indefinitely, you can disable this feature:
- 1. Edit the bootstrap file:
/var/www/pingpanther/bootstrap/app.php - 2. Find the
withSchedulesection - 3. Comment out or remove this line:
$schedule->command(PruneOldData::class)->daily(); - 4. No restart required - changes take effect on next schedule run
⚠️ Warning: Disabling auto-pruning will cause your database to grow continuously. Monitor disk space regularly.
Getting Started
Learn how to create monitors, set up alerts, and manage your infrastructure monitoring.
Creating Your First Monitor
- 1. Navigate to Monitors in the sidebar
- 2. Click Create Monitor
- 3. Choose monitor type (HTTP, Ping, Port, etc.)
- 4. Enter your service URL or IP address
- 5. Set check interval (30s, 1m, 5m, etc.)
- 6. Click Save
Monitor Types
HTTP/HTTPS
Monitor websites and APIs. Checks for 2xx status codes.
TCP Port
Check if a specific port is open and accepting connections.
Ping (ICMP)
Simple ping check to verify server is reachable.
Keyword Check
Verify specific text appears on a webpage.
Push/Heartbeat
Monitor cron jobs and scheduled tasks.
Setting Up Alerts
Configure how you want to be notified when incidents occur:
- • Navigate to Settings → Notification Channels
- • Add Email, Slack, Discord, or Webhook channels
- • Create Escalation Policies for multi-tier alerts
- • Assign policies to your monitors
Status Pages
Create public status pages for your customers:
- • Go to Status Pages
- • Click Create Status Page
- • Select which monitors to display
- • Customize branding and colors
- • Share the public URL with your users
API Documentation
PingPanther provides a RESTful API for programmatic access to all features.
Developer API
We are working on a comprehensive REST API to allow you to manage monitors, retrieve stats, and integrate PingPanther with your own tools programmatically.
Planned Endpoints
GET /api/monitors
POST /api/monitors
GET /api/incidents
GET /api/stats