Cursor AgentandCédric TOMAZ d136f57551 feat: Ajout de la section 'Mes Apps' avec 4 tuiles interactives
- Ajout de la section '🚀 Mes Applications' en haut de index.php
- 4 tuiles pour CronHub, GarageManager, PercoMemo et Planka
- Design cohérent avec le thème dark existant (bg #161b22, borders #30363d)
- Effet hover avec bordure violette et lueur subtile
- Grid responsive: 4 colonnes desktop, 2 colonnes mobile
- Boutons 'Ouvrir' qui ouvrent les apps dans un nouvel onglet
- Styles CSS propres et commentés dans assets/style.css

Co-authored-by: Cédric TOMAZ <percolouco@users.noreply.github.com>
2026-03-18 21:06:05 +00:00

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 web
  • docker : null si ce n'est pas un container Docker (ex: serveur PHP)
  • Si docker est renseigné → status via docker 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
S
Description
Dashboard centralisé homelab — tous les services en un coup dœil
Readme
96 KiB
Languages
JavaScript 29.2%
Hack 29.1%
CSS 21.5%
PHP 20.2%