[{"data":1,"prerenderedAt":252},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-glance-vps-ma-fr":6,"promo-bar-likely":251},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-self-host-glance-vps-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":188,"ctaBody":189,"ctaButton":190,"ctaUrl":191,"relatedPosts":192},190,"self-host-glance-vps",{"fr":10,"en":12,"ar":13,"es":14},"self-host-glance-your-startpage-dashboard-on-a-vps","استضف-glance-ذاتيا-لوحة-بداية-على-خادم-vps","alojar-glance-en-un-vps","Héberger Glance sur un VPS : votre tableau de bord de démarrage","Déployez Glance self-hosted sur un VPS ServOrbit : Hacker News, RSS, CPU\u002FRAM\u002FDocker sur une page, config YAML avancée, sécurité docker.sock et dépannage complet.",7,1,false,"2026-07-24T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-glance-vps-poster.svg",{"categorySlug":34,"appSlug":35},"monitoring","glance","Gérer plusieurs services sur un VPS sans vue d'ensemble, c'est naviguer à l'aveugle. Glance règle ce problème : un tableau de bord self-hosted léger qui réunit vos actualités tech (Hacker News, RSS), les métriques en direct de votre serveur et l'état de vos conteneurs Docker sur une seule page accessible depuis le navigateur. Un seul binaire Go, zéro base de données, zéro Redis — il démarre en moins d'une seconde, idle sous 25 Mo de RAM, et se configure entièrement via un fichier YAML. Ce guide couvre l'installation complète, la configuration avancée des widgets, la sécurité du socket Docker, les comparaisons avec les alternatives et le dépannage des erreurs courantes.",[38,41,51,53,91,93,100,102,136,138,141,150,152,154,162,165,167,174,176,178,186],{"type":39,"title":40},"h2","Pourquoi Glance convient parfaitement à un VPS",{"type":42,"title":43,"items":44},"ul","Ce que vous obtenez par défaut",[45,46,47,48,49,50],"Widgets intégrés : flux RSS, Hacker News, Reddit, météo, bookmarks, horloge monde","Métriques serveur en direct : CPU, RAM, disque, charge système","État des conteneurs Docker (running \u002F stopped \u002F paused)","Thèmes clair\u002Fsombre et couleurs personnalisables via YAML","Aucune dépendance externe : un seul binaire statique Go (~15 Mo)","Rechargement à chaud de la configuration sans redémarrage",{"type":39,"title":52},"Glance vs alternatives : Heimdall, Homepage, Homarr",{"type":54,"title":55,"columns":56,"rows":63,"note":90},"comparison","Comparaison des tableaux de bord self-hosted",[57,58,59,60,61,62],"Outil","Langage","RAM idle","Config","Docker metrics","Widgets RSS\u002Fnews",[64,71,78,83],[65,66,67,68,69,70],"**Glance**","Go","\u003C 25 Mo","YAML pur","Oui (lecture seule)","Oui (natif)",[72,73,74,75,76,77],"Homepage","Node\u002FReact","~120 Mo","YAML","Oui","Partiel",[79,73,80,81,76,82],"Homarr","~150 Mo","GUI + JSON","Via intégration",[84,85,86,87,88,89],"Heimdall","PHP\u002FLaravel","~200 Mo","GUI MySQL","Non natif","Non","Glance s'impose quand la légèreté et la vitesse comptent plus qu'une interface de configuration graphique. Pour une équipe non-technique qui préfère cliquer plutôt qu'éditer du YAML, Homarr ou Heimdall sont des alternatives valables.",{"type":39,"title":92},"Prérequis",{"type":42,"title":94,"items":95},"Ce qu'il vous faut avant de commencer",[96,97,98,99],"Un VPS ServOrbit sous Ubuntu 22.04 \u002F Debian 12 (≥ 1 vCPU, 512 Mo RAM suffisent)","`docker` et `docker compose` installés (Docker Engine 24+, Compose v2)","Accès SSH root ou sudo","Un sous-domaine pointé sur votre VPS (ex. `glance.mondomaine.tld`) — optionnel mais recommandé pour HTTPS",{"type":39,"title":101},"Déployer Glance sur votre VPS ServOrbit",{"type":103,"title":104,"steps":105},"steps","Installation pas à pas",[106,109,112,115,118,121,124,127,130,133],{"title":107,"body":108},"Créer le répertoire de travail","Connectez-vous en SSH à votre VPS et créez le dossier qui accueillera la configuration Glance :\n\n`mkdir -p \u002Fopt\u002Fglance && cd \u002Fopt\u002Fglance`",{"title":110,"body":111},"Écrire le fichier `docker-compose.yml`","Créez le fichier suivant. Le montage en lecture seule du socket Docker est **impératif** (voir section Sécurité plus bas) :\n\n```yaml\nservices:\n  glance:\n    image: glanceapp\u002Fglance:latest\n    restart: unless-stopped\n    ports:\n      - \"8080:8080\"\n    volumes:\n      - .\u002Fglance.yml:\u002Fapp\u002Fglance.yml:ro\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n      - \u002Fproc:\u002Fproc:ro\n    environment:\n      - TZ=Africa\u002FCasablanca\n```\n\nRemplacez `Africa\u002FCasablanca` par votre fuseau horaire (`TZ` s'applique aux horloges et aux timestamps RSS).",{"title":113,"body":114},"Créer la configuration de base `glance.yml`","Ce fichier YAML définit vos pages, colonnes et widgets :\n\n```yaml\nserver:\n  port: 8080\n\npages:\n  - name: Accueil\n    columns:\n      - size: small\n        widgets:\n          - type: clock\n            hour-format: 24h\n          - type: resource-usage\n      - size: full\n        widgets:\n          - type: hacker-news\n          - type: rss\n            feeds:\n              - url: https:\u002F\u002Fblog.servOrbit.com\u002Frss\n                title: ServOrbit Blog\n      - size: small\n        widgets:\n          - type: docker-containers\n```",{"title":116,"body":117},"Démarrer le conteneur","`docker compose up -d`\n\nVérifiez que le conteneur tourne : `docker compose ps` — le statut doit afficher `Up`.",{"title":119,"body":120},"Ouvrir le pare-feu (si UFW activé)","`ufw allow 8080\u002Ftcp`\n\nOuvrez `http:\u002F\u002F\u003CIP-VPS>:8080` dans votre navigateur pour confirmer que Glance répond.",{"title":122,"body":123},"Configurer un reverse proxy nginx avec HTTPS","Pour servir Glance sur `https:\u002F\u002Fglance.mondomaine.tld`, créez un vhost nginx :\n\n```nginx\nserver {\n    listen 443 ssl http2;\n    server_name glance.mondomaine.tld;\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fglance.mondomaine.tld\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fglance.mondomaine.tld\u002Fprivkey.pem;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n}\n```\n\nObtenez le certificat via Certbot : `certbot --nginx -d glance.mondomaine.tld`.",{"title":125,"body":126},"Activer l'authentification HTTP basique (recommandé)","Glance n'a pas d'auth intégrée. Protégez l'accès via nginx :\n\n`htpasswd -c \u002Fetc\u002Fnginx\u002F.htpasswd admin`\n\nAjoutez dans le bloc `location \u002F` du vhost :\n\n```nginx\nauth_basic \"Glance\";\nauth_basic_user_file \u002Fetc\u002Fnginx\u002F.htpasswd;\n```\n\nRechargez nginx : `systemctl reload nginx`.",{"title":128,"body":129},"Vérifier les métriques système","Le widget `resource-usage` lit `\u002Fproc` — le montage `:ro` dans `docker-compose.yml` est donc obligatoire. Si les métriques n'apparaissent pas, vérifiez : `docker compose logs glance | grep -i proc`.",{"title":131,"body":132},"Recharger la config sans redémarrage","Toute modification de `glance.yml` est prise en compte en envoyant le signal `SIGHUP` au conteneur :\n\n`docker kill --signal=SIGHUP glance_glance_1`\n\nAlternativement : `docker compose restart glance` (entraîne ~1 s d'indisponibilité).",{"title":134,"body":135},"Activer les mises à jour automatiques (optionnel)","Déployez [Watchtower](https:\u002F\u002Fcontainrrr.dev\u002Fwatchtower\u002F) pour maintenir l'image Glance à jour automatiquement, ou gérez-le manuellement :\n\n`docker compose pull && docker compose up -d`",{"type":39,"title":137},"Configuration YAML avancée : widgets, thèmes et mise en page",{"type":139,"body":140},"p","La puissance de Glance réside dans son fichier YAML. Voici les personnalisations les plus utiles.",{"type":42,"title":142,"items":143},"Options de configuration avancée",[144,145,146,147,148,149],"**Thème personnalisé** — ajoutez sous `server:` : `theme: { background-color: \"240 21 15\", primary-color: \"217 92 83\" }` (format HSL sans `hsl()`)","**Pages multiples** — ajoutez autant de blocs `- name:` sous `pages:` qu'il y a de contextes (ex. \"Dev\", \"Clients\", \"Perso\")","**Widget bookmarks** — `type: bookmarks` avec des groupes de liens pour centraliser vos accès rapides aux outils internes","**Widget monitor** — `type: monitor` avec une liste d'URL : Glance effectue des checks HTTP et affiche latence + statut en temps réel","**Widget GitHub releases** — `type: releases` avec une liste de repos : idéal pour suivre les nouvelles versions de vos outils","**Intervalle de rafraîchissement** — chaque widget accepte `cache: 1h` (ou `30m`, `5m`) pour contrôler la fréquence de polling",{"type":39,"title":151},"Sécurité : le docker.sock en lecture seule",{"type":139,"body":153},"Monter `\u002Fvar\u002Frun\u002Fdocker.sock` dans un conteneur donne à ce conteneur un contrôle potentiellement total sur le daemon Docker de l'hôte — équivalent root. C'est le **vecteur d'escalade de privilèges le plus courant** dans les environnements Docker.",{"type":42,"title":155,"items":156},"Risques et mitigations",[157,158,159,160,161],"**Risque** : un conteneur compromis avec accès `:rw` au socket peut lancer des conteneurs root, monter `\u002F`, exfiltrer des secrets","**Mitigation 1 — Montage en lecture seule** : le `:ro` dans `docker-compose.yml` bloque toute écriture ; Glance n'a besoin que de lire l'état des conteneurs","**Mitigation 2 — Proxy socket** : déployez [Docker Socket Proxy](https:\u002F\u002Fgithub.com\u002FTecnativa\u002Fdocker-socket-proxy) pour n'exposer que les endpoints `GET \u002Fcontainers` et `GET \u002Fversion`","**Mitigation 3 — Network isolation** : placez Glance dans un réseau Docker dédié, isolé de vos services applicatifs","**Vérification** : `docker inspect glance_glance_1 | grep -A5 Mounts` — la ligne `Mode` doit afficher `ro`, jamais `rw`",{"type":163,"body":164},"tip","Si vous n'avez pas besoin des métriques Docker, supprimez simplement le montage `\u002Fvar\u002Frun\u002Fdocker.sock` du `docker-compose.yml` et retirez le widget `docker-containers` de `glance.yml`. Glance fonctionne parfaitement sans accès au daemon Docker.",{"type":39,"title":166},"Dépannage : erreurs courantes",{"type":42,"title":168,"items":169},"Problèmes fréquents et solutions",[170,171,172,173],"**Port 8080 déjà utilisé** — `ss -tlnp | grep 8080` pour identifier le process occupant le port. Changez le port hôte dans `docker-compose.yml` : `\"8181:8080\"` (le port conteneur reste 8080 côté Glance).","**Widget non chargé \u002F spinner permanent** — vérifiez la connectivité réseau sortante du conteneur : `docker exec glance_glance_1 curl -s https:\u002F\u002Fnews.ycombinator.com`. Si timeout, votre VPS est derrière un pare-feu sortant restrictif — ouvrez les ports 80\u002F443 en sortie via `ufw`.","**Docker socket refusé (`permission denied`)** — le conteneur tourne sous un UID non-root sans accès au groupe `docker`. Solution : ajoutez `group_add: [\"docker\"]` ou montez le socket avec les permissions correctes. Vérifiez : `ls -la \u002Fvar\u002Frun\u002Fdocker.sock` (groupe `docker`, mode `660`).","**Métriques `\u002Fproc` absentes** — le montage `\u002Fproc:\u002Fproc:ro` est manquant dans `docker-compose.yml`. Sans lui, `resource-usage` affiche des valeurs nulles ou un message d'erreur. Ajoutez le volume et relancez : `docker compose up -d`.",{"type":39,"title":175},"Cas d'usage réels pour une agence web",{"type":139,"body":177},"Une agence qui gère N projets clients sur des VPS distincts peut centraliser la supervision dans Glance avec une page par client ou par environnement.",{"type":42,"title":179,"items":180},"Comment structurer Glance pour une agence",[181,182,183,184,185],"**Une page par client** : chaque page `pages[n]` correspond à un projet — widget `monitor` avec les URLs critiques (front, API, backoffice), widget `docker-containers` si les services tournent localement","**Page \"Infra globale\"** : un widget `resource-usage` par VPS n'est pas supporté nativement, mais le widget `monitor` peut checker des endpoints d'healthcheck exposés sur chaque machine (ex. `\u002Fhealthz`)","**Flux RSS d'alerte** : ajoutez le flux RSS de votre outil de monitoring (UptimeKuma, Gatus) pour remonter les incidents sans quitter Glance","**Widget GitHub releases** : suivez les releases des CMS\u002Fframeworks de vos clients pour anticiper les mises à jour critiques","**Accès multi-équipe** : un Glance par environnement (staging \u002F prod), chacun protégé par une auth HTTP distincte via nginx, partageable par lien avec l'équipe concernée",{"type":163,"body":187},"La documentation officielle Glance (github.com\u002Fglanceapp\u002Fglance) liste tous les widgets disponibles et leurs options. La section `glance.yml reference` est la référence la plus à jour — les options évoluent à chaque release mineure.","Vos services VPS en un coup d'œil","Déployez Glance sur un VPS ServOrbit — tableau de bord self-hosted, sans base de données, actualités tech et stats serveur en temps réel depuis le navigateur.","Déployer Glance","\u002Fapplications\u002Fmonitoring\u002Fglance",[193,216,233],{"id":194,"slug":195,"slugs":196,"title":200,"excerpt":201,"readTime":202,"views":203,"isPinned":19,"noindex":19,"publishedAt":204,"updatedAt":205,"category":206,"categories":211,"featuredImage":30,"bgImage":31,"posterImage":213,"relatedSolution":214},167,"self-host-dozzle-vps",{"fr":195,"en":197,"ar":198,"es":199},"how-to-self-host-dozzle-on-a-vps-real-time-docker-log-viewer","استضافة-dozzle-على-vps-عارض-سجلات-docker-لحظيا","alojar-dozzle-en-un-vps","Héberger Dozzle sur un VPS : logs Docker en temps réel","Déployez Dozzle sur votre VPS : un visualiseur de logs Docker open source et sans état. Suivez et recherchez en direct les logs de vos conteneurs, sans SSH.",4,2,"2026-07-06T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":17,"name":207,"slug":208,"color":209,"icon":210},"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[212],{"id":17,"name":207,"slug":208,"color":209,"icon":210},"\u002Fblog\u002Fcovers\u002Fself-host-dozzle-vps-poster.svg",{"categorySlug":34,"appSlug":215},"dozzle",{"id":217,"slug":218,"slugs":219,"title":223,"excerpt":224,"readTime":23,"views":203,"isPinned":19,"noindex":19,"publishedAt":225,"updatedAt":226,"category":227,"categories":228,"featuredImage":30,"bgImage":31,"posterImage":230,"relatedSolution":231},133,"self-host-beszel-vps",{"fr":218,"en":220,"ar":221,"es":222},"self-host-beszel-multi-server-monitoring-hub-on-your-vps","استضف-beszel-على-vps-مركز-مراقبة-متعدد-الخوادم","alojar-beszel-hub-monitorizacion-vps","Beszel sur VPS : supervision multi-serveurs, alertes et sécurité","Supervisez un parc de VPS depuis un hub Beszel unique : alertes Telegram\u002Fe-mail, 2FA, agents déclarés automatiquement et dépannage des connexions silencieuses.","2026-02-14T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[229],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-beszel-vps-poster.svg",{"categorySlug":34,"appSlug":232},"beszel",{"id":234,"slug":235,"slugs":236,"title":240,"excerpt":241,"readTime":23,"views":242,"isPinned":19,"noindex":19,"publishedAt":243,"updatedAt":244,"category":245,"categories":246,"featuredImage":30,"bgImage":31,"posterImage":248,"relatedSolution":249},105,"superviser-vps-uptime-kuma",{"fr":235,"en":237,"ar":238,"es":239},"monitoring-your-vps-with-uptime-kuma","مراقبة-خادمك-الافتراضي-vps-باستخدام-uptime-kuma","supervisar-vps-con-uptime-kuma","Superviser votre VPS avec Uptime Kuma","Déployez Uptime Kuma sur votre VPS pour surveiller vos sites et services en self-hosted, avec alertes et page de statut publique.",0,"2026-03-07T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[247],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fsuperviser-vps-uptime-kuma-poster.svg",{"categorySlug":34,"appSlug":250},"uptime-kuma",true,1794270789086]