66841b157e571a1869782ec86d045eb1182c79a0
PercoHub 🏠
Dashboard centralisé pour accéder à tous les services et projets du homelab de Perco.
Stack
- Backend : PHP 8 (lecture
services.json, check Docker + HTTP) - Frontend : Tailwind CSS CDN + Vanilla JS
- Données :
services.json— catalogue éditable manuellement
Démarrage
nohup php -S 0.0.0.0:9300 -t /home/perco/projects/percohub/ > /tmp/percohub-php.log 2>&1 &
URL locale : http://192.168.1.29:9300
Fonctionnalités
- ✅ Vue centralisée de tous les services (Docker + projets PHP)
- ✅ Status live (Docker inspect + HTTP ping)
- ✅ Catégories : Projets Luca / Infrastructure / Média / Domotique / Productivité / VPN Firefox
- ✅ Filtre par catégorie (navbar)
- ✅ Stats globales (online/offline)
- ✅ Auto-refresh toutes les 30s
- ✅ Clic sur une carte → ouvre l'URL dans un nouvel onglet
- ✅ Dark theme cohérent avec les autres projets
Structure
percohub/
├── index.php # Page principale (shell HTML)
├── api.php # Backend : statuts Docker + HTTP
├── services.json # Catalogue des services (à éditer)
├── assets/
│ ├── style.css # Dark theme custom
│ └── app.js # Frontend : rendu, refresh, filtres
└── README.md
Ajouter un service
Éditer services.json — ajouter un objet dans le tableau services de la bonne catégorie :
{
"name": "Mon Service",
"desc": "Description courte",
"url": "http://192.168.1.29:PORT",
"docker": "nom-du-container",
"tags": ["tag1", "tag2"]
}
url: null si pas d'interface webdocker: null si ce n'est pas un container Docker (ex: serveur PHP)- Si
dockerest renseigné → status viadocker inspect - Si seulement
url→ status via HTTP ping
Ajouter une catégorie
Dans services.json, ajouter dans le tableau categories :
{
"id": "ma-categorie",
"name": "Ma Catégorie",
"icon": "🔌",
"color": "violet",
"services": [...]
}
Couleurs disponibles : violet, slate, amber, emerald, sky, orange, rose
API
| Endpoint | Description |
|---|---|
/api.php?action=all |
Tous les services avec statuts |
/api.php?action=config |
Catalogue brut (sans checks) |
/api.php?action=docker |
Liste tous les containers Docker |
Catégories actuelles
| Catégorie | Services |
|---|---|
| 🛠️ Projets Luca | AgentStats, CronViz, MonStatut, AgentChat, HomeStatus |
| 🔧 Infrastructure | Portainer, Traefik, Grafana, InfluxDB, Dashdot, Watchtower |
| 🎬 Média | Plex, Jellyseerr, Sonarr, Radarr, Lidarr, Prowlarr, Jackett, qBittorrent, Pinchflat, Tautulli |
| 🏠 Domotique | Home Assistant, ESPhome, Syncthing, Grott, Bresser Live, Mosquitto |
| 💼 Productivité | Nextcloud, Gitea, VSCode, Planka, Actual Budget, CronMaster, Homarr |
| 🦊 VPN Firefox | retak, coucouze, roxxor, xouz, nale |
Languages
JavaScript
29.2%
Hack
29.1%
CSS
21.5%
PHP
20.2%