Enterprise-Grade Homelab Management Dashboard
Beautiful β’ Secure β’ Feature-Rich β’ Cross-Platform
π Quick Start β’ π Documentation β’ π Issues β’ β Star
Home Panel is a powerful, all-in-one web dashboard for managing your homelab infrastructure. Built with security-first principles and designed for both Windows and Linux servers.
Perfect for:
- π Home server enthusiasts
- πΌ Small business IT
- π§ͺ Development environments
- π Learning DevOps
|
|
|
|
- π Historical Graphs - CPU & Memory usage over time with Chart.js
- π Smart Alerts - Configurable thresholds with Telegram notifications
- π Centralized Logs - View logs from Panel, Docker, PM2 in one place
- π Network Monitor - Real-time bandwidth, IP addresses, connections
- π Power Monitoring - Battery status & charging state
- βοΈ Cloudflare Integration - [NEW] Sync Tunnels & DNS directly from Cloudflare API
- π Auto-Sync - Real-time status of Cloudflare Tunnels (Online/Down)
- β Rate limiting (API & login)
- β Input validation & sanitization
- β Path traversal protection
- β Command injection prevention
- β Session security (bcrypt)
- β Audit logging
- β Helmet security headers
Security Score: 9/10 β
# Clone the repository
git clone https://github.com/yourusername/home-panel.git
cd home-panel
# Install dependencies
cd backend
npm install
# Start the server
npm startAccess: http://localhost:9689
Default Login:
- Username:
admin - Password:
SecurePass2026!
- π Full Documentation
- π§ Linux Compatibility
- π Security Guide
- π± Telegram Setup
- βοΈ PM2 Configuration
- π Auto-Restart Setup
Edit config/config.json:
{
"server": { "port": 9689, "host": "0.0.0.0" },
"session": { "secret": "your-random-secret" },
"alerts": {
"cpu": { "warning": 80, "critical": 90 },
"memory": { "warning": 75, "critical": 90 }
}
}Copy .env.example to .env:
cp .env.example .envEdit .env for production secrets.
| Component | Technology |
|---|---|
| Backend | Node.js + Express |
| Frontend | Vanilla JS + Tailwind CSS |
| Database | JSON file-based |
| Charts | Chart.js |
| Icons | Font Awesome |
| Container | dockerode |
| Process | PM2 API |
| System | systeminformation |
| Alerts | Telegram Bot API |
- HTTPS - Use reverse proxy (Nginx/Caddy)
- Firewall - Restrict to trusted IPs
- Passwords - Change defaults immediately
- env - Use
.envfor secrets - Updates - Keep dependencies current
Example Nginx Config:
server {
listen 443 ssl;
server_name panel.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:9689;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
}
}- Go to Panel Settings page.
- Enter your Cloudflare API Token (Permissions:
Zone:Read,Tunnel:Read). - Click Save & Verify.
- Your Tunnels list will now auto-sync with Cloudflare!
Q: Port 9689 already in use?
A: Change port in config/config.json
Q: Terminal won't connect?
A: Check WebSocket isn't blocked, verify authentication
Q: Permission denied on Linux?
A: Add user to docker group: sudo usermod -aG docker $USER
Q: Upload fails?
A: Check disk space & file size (<10MB)
We love contributions! See CONTRIBUTING.md for guidelines.
Ways to contribute:
- π Report bugs
- π‘ Suggest features
- π Improve docs
- π§ Submit PRs
- Total Features: 20+
- Security Score: 9/10
- Cross-Platform: Windows & Linux
- Dependencies: Minimal & secure
- Bundle Size: ~10MB (with deps)
MIT License - Free & Open Source
- β Star this repo if you find it useful
- π Report bugs via Issues
- π¬ Discuss in GitHub Discussions
- π Watch for updates
Built with β€οΈ using:
Made for the Homelab Community π
Report Bug β’ Request Feature β’ Documentation
β Don't forget to star the repo!