A real-time status wallboard for monitoring your UptimeRobot services. Display service health, uptime status, and alerts on a clean, customizable dashboard perfect for NOC displays, office monitors, or personal dashboards.
- π Easy Setup - Built-in installer wizard for first-time configuration - π Real-time Monitoring - Automatic refresh with live status updates - π¨ Dark/Light Themes - Toggle between themes with system preference support - π Smart Filtering - Show all monitors or only those with issues - π·οΈ Tag Filtering - Filter monitors by tags with colored pills and multi-select - βΈοΈ Paused Device Control - Show/hide paused monitors with one click - π₯οΈ Fullscreen Mode - Auto-fullscreen support for kiosk displays - π― Customizable - Add your logo and custom title - βοΈ Flexible Configuration - URL parameters and config file options - π Auto-refresh - Detects configuration changes automatically
- Web server with PHP 7.4+ (Apache or Nginx) - UptimeRobot account with API access - Basic knowledge of file permissions and web hosting
1. Clone or download this repository to your web server:
cd /var/www/html
git clone https://github.com/BlindTrevor/Uptime-Robot-Wallboard.git status
cd status
``2. Access the installer by navigating to the application in your browser. If no configuration exists, you'll be automatically redirected to
installer.php.3. Enter your UptimeRobot API token (Get it from: UptimeRobot Settings β API Settings)
4. Configure your preferences in the installer form and click "Create Configuration"
5. Done! The wallboard will automatically load and display your monitors
Manual Configuration (Alternative)
If you prefer manual setup:
1. Copy the example configuration:
`bash
cp config.env.example config.env
`2. Edit
config.env and add your UptimeRobot API token:
`bash
UPTIMEROBOT_API_TOKEN=your-api-token-here
WALLBOARD_TITLE=My Status Dashboard
SHOW_PROBLEMS_ONLY=false
SHOW_PAUSED_DEVICES=false
REFRESH_RATE=20
THEME=dark
`3. Set secure file permissions:
`bash
chmod 600 config.env
chown www-data:www-data config.env
`4. Access
index.php in your browserπ Configuration Options
Edit
config.env to customize your wallboard:| Option | Description | Default |
|--------|-------------|---------|
|
UPTIMEROBOT_API_TOKEN | Your UptimeRobot API token (required) | - |
| WALLBOARD_TITLE | Custom title for your wallboard | UptimeRobot β Current Status |
| WALLBOARD_LOGO | Path to logo image or URL | (empty) |
| SHOW_PROBLEMS_ONLY | Show only monitors with issues | false |
| SHOW_PAUSED_DEVICES | Display paused monitors | false |
| SHOW_TAGS | Display tags on monitor cards | true |
| REFRESH_RATE | Data refresh interval (seconds) | 20 |
| CONFIG_CHECK_RATE | Config file check interval (seconds) | 5 |
| THEME | Theme: dark, light, or auto | dark |
| AUTO_FULLSCREEN | Auto-enter fullscreen on load | false |
| ALLOW_QUERY_OVERRIDE | Allow URL parameter overrides | true |
| TAG_COLORS | Custom tag color configuration (JSON format) | (empty) |π― Usage
Basic Usage
Simply open the wallboard in your browser. It will automatically:
- Load and display all your UptimeRobot monitors
- Refresh every 20 seconds (configurable)
- Show status with color-coded indicators:
- π’ Green = Up/Operational
- π΄ Red = Down/Offline
- π‘ Yellow = Paused
URL Parameters
Override settings temporarily using URL parameters:
bashconfig.envControl Buttons
- Show Only Problems - Toggle between all monitors and problem-only view - Show/Hide Paused - Quickly toggle paused monitor visibility - Show/Hide Tags - Toggle tag visibility on monitor cards - Show/Hide Filter - Toggle the tag filter section visibility - Theme Toggle - Switch between dark and light themes - Fullscreen - Enter/exit fullscreen mode - Refresh Now - Manually trigger data refresh
π Security Best Practices
Store Config Outside Webroot (Recommended)
The most secure approach is to store
outside your web-accessible directory:
cat > /var/www/html/config.env << 'EOF' UPTIMEROBOT_API_TOKEN=your-token-here
chmod 600 /var/www/html/config.env chown www-data:www-data /var/www/html/config.env
bash TAG_COLORS={"acceptable":["#FF0000","#00FF00","blue","orange"]}The application automatically searches parent directories for the config file.config.envIf Storing in Webroot
If you must store
in the webroot:`1. Set restrictive permissions:
bash chmod 600 config.env`.htaccess2. Verify
protection (Apache):`bash curl http://your-domain.com/status/config.env # Should return 403 Forbidden``3. For Nginx users, add to your server block:
nginx location ~ /config\.env { deny all; return 403; }`config.envSecurity Checklist
- β
returns 403 when accessed via HTTP - β File permissions set to600(owner read/write only) - βconfig.envis in.gitignore(never commit secrets!) - β Consider storing outside webroot for maximum security?theme=darkπ¨ Themes
Dark Theme (Default)
Light Theme
Switch themes using: - The theme toggle button in the UI -
,?theme=light, or?theme=autoURL parameter -THEMEsetting inconfig.envTAG_COLORSπ·οΈ Tag Filtering
Filter your monitors by tags for better organization and focused monitoring. Each monitor displays its assigned tags as colored pills, making it easy to visually identify and categorize services.
Features
- Colored Tag Pills - Each tag displays with a unique, deterministic color for easy visual identification - Multi-Tag Filtering - Select one or more tags to filter monitors (OR logic - shows monitors with ANY selected tag) - Collapsible Filter - Toggle filter visibility with "Show Filter" / "Hide Filter" button - Clear Filters - One-click to reset all tag selections - Real-time Updates - Instant filtering as you select/deselect tags
Filter Section
Click "Show Filter" to reveal all available tags. Click any tag to filter monitors:
Filtered View
When tags are selected, only monitors with those tags are displayed. The selected tags appear highlighted with increased opacity and a shadow effect.
How to Use
1. View Tags - All monitors display their tags as colored pills at the bottom of each card 2. Show Filter - Click the "Show Filter" button in the controls to reveal the tag filter section 3. Select Tags - Click one or more tags to filter monitors. Selected tags are highlighted 4. Clear Filter - Click "Clear Filter" to remove all selections and show all monitors 5. Hide Filter - Click "Hide Filter" to collapse the filter section
Benefits
- Quick Organization - Instantly filter to Production, Staging, API, Database, or any custom tags - Multi-Environment - Separate views for different environments or regions - Team Workflows - Filter by team ownership, criticality, or service type - Visual Clarity - Color-coded tags make it easy to scan and identify services at a glance
Custom Tag Colors
You can customize tag colors using the
configuration option inconfig.env. This accepts a JSON object with two optional configurations:1. Define acceptable color palette:
2. Map specific tags to specific colors:bash
TAG_COLORS={"tags":{"production":"red","staging":"yellow","development":"#3ad29f"}}
3. Combine both approaches:bash
TAG_COLORS={"acceptable":["#FF0000","#00FF00","blue"],"tags":{"critical":"red","warning":"yellow","info":"#abf7b1"}}
?showProblemsOnly=true # Show only problematic monitors ?showPausedDevices=true # Show/hide paused monitors ?showTags=false # Show/hide tags on monitor cards ?refreshRate=30 # Set refresh interval (seconds) ?theme=light # Set theme (dark/light/auto) ?autoFullscreen=true # Auto-enter fullscreen ?configCheckRate=10 # Config check interval `Supported color formats include: - Hex codes:#FF0000,#abf7b1- CSS color names:red,blue,orange,green- RGB/HSL formats:rgb(255,0,0),hsl(120,100%,50%)`If not specified, colors are automatically generated from tag names using a deterministic algorithm for consistent coloring across page reloads.
π₯οΈ Kiosk Mode
Perfect for dedicated monitoring displays:
1. Set up auto-fullscreen:
bash # In config.env AUTO_FULLSCREEN=true``2. Or use URL parameter:
https://your-domain.com/status/?autoFullscreen=true&showProblemsOnly=true`config.env3. Combine with browser kiosk mode for an immersive experience
π§ Troubleshooting
No data showing
- Check browser console for errors (F12) - Verify API token is correct in
- Ensureuptimerobot_status.phpis accessible - Checkuptime_errors.logfor PHP errorsconfig.envConfiguration not loading
- Verify
file exists and has correct permissions - Check file format:KEY=value(no spaces around=) - Ensure web server can read the file (chmod 600and correct ownership).env403 Forbidden errors
- For
files: This is expected and correct (security protection) - For PHP files: Check Apache/Nginx configuration allows PHP execution - Verify.htaccessis not blocking legitimate requestsconfig.envInstaller redirects immediately
- Config file already exists - use the main application - To reconfigure, delete or rename existing
?showPausedDevices=trueπ Advanced Features
Paused Device Control
Control visibility of paused monitors: - Default: Paused monitors are hidden - Show Paused: Display paused monitors with warning indicators - Toggle Button: Quick show/hide via UI button - URL Override:
orfalseALLOW_QUERY_OVERRIDE=trueWhen shown, paused monitors: - Display "PAUSED" status with βΈοΈ icon - Use warning (yellow/orange) color - Are counted separately in the header - Don't trigger the red "issues" background
Query String Parameters
All configuration options can be overridden via URL (when
):
Auto-Refresh on Config Changes
The wallboard automatically detects changes to
config.env and refreshes the display within 5 seconds. No manual reload needed when updating:
- Title or logo
- Theme settings
- Display filters
- Refresh ratesLogo Display
Add your company logo to the wallboard:
1. Upload your logo file to the application directory
2. Edit
config.env:
`bash
WALLBOARD_LOGO=logo.png
# Or use a URL:
# WALLBOARD_LOGO=https://example.com/logo.png
``
3. Recommended size: 200x50 pixels or similar aspect ratio
4. Supported formats: PNG, SVG, JPG, GIFContributions are welcome! Please feel free to: - Report bugs or issues - Suggest new features - Submit pull requests - Improve documentation
This project is open source and available for use and modification.
- Built for UptimeRobot API v3 - Font Awesome for icons - Community contributions and feedback
For issues, questions, or feature requests, please use the GitHub Issues page.
---
Made with β€οΈ for monitoring enthusiasts