Comment j’organise mon NAS et mes services auto-hébergés

Cela fait maintenant un bon moment que je possède un NAS, et je n’avais encore jamais pris le temps de décrire réellement ma stack ni les applications que j’y héberge. Cet article est donc l’occasion de corriger cela.

Références et inspiration

S’il ne fallait citer qu’une seule référence incontournable dans le monde du self-hosted, ce serait selfh.st. Ce site fait à la fois office d’annuaire d’applications auto-hébergées, de catalogue d’outils compagnons, et propose également une newsletter hebdomadaire très utile pour rester à jour sur l’actualité du domaine.

Hébergement et socle technique

La première brique de ma stack concerne évidemment l’hébergement. Comme je l’ai déjà évoqué ailleurs, j’utilise OpenMediaVault. C’est une solution GNU/Linux open source, puissante et éprouvée, que j’utilise depuis plus de dix ans.

Pour la partie conteneurisation, je n’ai pas basculé vers la stack Docker officiellement officieuse d’OMV (plugin Docker Compose). Je continue d’utiliser une stack Portainer indépendante d’OMV. Cela me simplifie les mises à jour et m’offre plus de souplesse. Bref, tant que cela fonctionne bien, je reste dessus.

Côté reverse proxy, j’ai choisi Traefik. Il est simple à mettre en œuvre et permet une configuration quasi intégralement pilotée via des labels dans les fichiers docker-compose, ce qui est très pratique.

Pour l’authentification, je privilégie clairement OpenID Connect. J’ai donc mis en place une stack Authelia couplée à LLDAP, une solution LDAP légère, simple et efficace.

Enfin, comme portail d’entrée, j’utilise Homepage, que je trouve à la fois sobre, lisible et efficace.

Organisation du portail

Sur Homepage, j’ai structuré l’accès en trois onglets :

  • un onglet regroupant toutes mes applications,
  • un onglet dédié à l’administration du serveur,
  • un dernier onglet pour les services accessibles uniquement depuis mon réseau local ou via VPN.

Médias

Pour la partie multimédia, après avoir longtemps utilisé Kodi, je suis passé il y a quelque temps à Jellyfin (voir un article précédent).
Les demandes de contenus sont gérées via Jellyseerr (bientôt renommé Seer suite à la fusion avec Overseerr), et les statistiques via Jellystat.

Cloud personnel et productivité

J’utilise Nextcloud, que je considère comme un pilier central de ma stack. Vous remarquerez que je n’ai pas d’application dédiée pour la gestion des photos ou des mots de passe : j’ai fait le choix de m’appuyer directement sur Nextcloud, avec les plugins Memories et Passwords. L’idée est simple : tout ce qui peut être correctement porté par Nextcloud y est centralisé.

Pour les flux RSS (oui, je continue d’utiliser les RSS), j’ai opté pour Miniflux, simple, rapide et efficace.

Pour la gestion des eBooks, j’aurais aimé utiliser Booklore, mais l’absence de support PostgreSQL m’a fait renoncer. Je reste donc sur Komga, qui me donne entière satisfaction.

Pour la veille (nouvelles versions applicatives, évolutions de prix, etc.), j’utilise ChangeDetection. Le suivi de mes abonnements et rappels de paiement est assuré par Wallos.

J’ai longtemps utilisé Wallabag (bien avant l’arrêt de Pocket), mais le projet vieillissant et l’absence de support OIDC m’ont poussé à migrer récemment vers Karakeep, qui propose en plus des fonctionnalités d’auto-tagging basées sur l’IA. À noter que bien que je synchronise mes marque-pages avec le plugin Bookmarks de Nextcloud, je les envoie également dans Karakeep pour la recherche globale et la sauvegarde PDF.

Pour la partie IA, je ne me prends pas trop la tête : j’utilise l’API Gemini, qui permet d’avoir un accès API à moindre coût, sans souscrire à un abonnement préalable. Cela me permet d’intégrer des fonctionnalités IA de manière simple et pragmatique.

Pour automatiser certaines actions (comme la cross-publication sur les réseaux sociaux), j’utilise n8n. L’outil est simple et puissant, même si la version open source reste limitée (pas de SSO ni de LDAP).

Statistiques personnelles

J’aime suivre mes statistiques. J’utilise donc Statistics for Strava pour le sport, et KOInsight pour mes statistiques de lecture via KOReader (oui, même ma liseuse utilise des solutions non standards).

Domotique et impression 3D

Côté domotique, du classique avec Home Assistant. J’ai longtemps utilisé Jeedom, mais j’ai migré il y a plus d’un an, et je suis aujourd’hui un fervent promoteur de Home Assistant. Bien que mon Home Assistant soit hébergé sur une box à part, c’est bien mon NAS qui fait la gestion du sous-domaine et le reverse proxy.

Pour l’impression 3D, j’utilise Fluidd pour le pilotage et Spoolman pour la gestion des bobines de filament.

Téléchargements et médias automatisés

Pour la gestion des téléchargements, j’ai une stack complète comprenant :

Administration, monitoring et sécurité

Pour l’administration :

  • Healthchecks pour vérifier que mes tâches cron s’exécutent correctement,
  • CrowdSec déployé sur plusieurs serveurs et connecté à mon routeur afin d’assurer une protection globale, il a récemment remplacé mes instances fail2ban,
  • un stack classique Prometheus / Grafana pour le monitoring,
  • et ntfy pour la gestion des notifications, en remplacement de Telegram, afin de garder un contrôle total.

Avec un accès uniquement dans mon réseau local, j’utilise également :

  • Watchtower pour la mise à jour automatique des conteneurs (avec parfois quelques surprises, mais j’aime être à jour),
  • Borg Web UI pour les sauvegardes complètes,
  • Databasus pour les sauvegardes PostgreSQL.

À cela s’ajoutent d’autres éléments du réseau : routeurs OpenWRT, AdGuard Home porté par le routeur, et divers équipements domotiques.

Conclusion

J’essaie de moderniser ma stack applicative autant que possible, en privilégiant des solutions légères, efficaces et bien intégrées, avec une préférence marquée pour l’authentification via OIDC. C’est d’ailleurs ce qui a motivé certaines migrations récentes, notamment vers Karakeep.

Commentaires

touuuf

De touuuf le 22 janvier 2026

Bonjour, merci pour cet article qui donne des idées et fait découvrir de nouveaux services. J'ai tenté d'intégrer mon HomeAssistant dans Homepage afin d'avoir des remontées d'états sur les lumières et ouvrants sans y parvenir. J'ai intégré un token long-life en suivant les explications faites sur la page widget Homepage, avez-vous procédé de la même manière pour remonter le uptime ? Merci

Guillaume Kulakowski

Merci !

Alors pour Home Assistant, j'utilise effectivement un "Jetons d'accès longue durée".

- Home Assistant:
icon: sh-home-assistant.webp
href: https://sub.domain.ltd
siteMonitor: http://internal_domain:8123
description: Solution de domotique
widget:
type: homeassistant
url: http://internal_domain:8123
key: TOKEN
custom:
- label: Démarré depuis
template: "{{ relative_time( strptime( states('sensor.uptime'), '%Y-%m-%dT%H:%M:%S%z' ) ) | replace('day', 'jour') | replace('hour', 'heure') | replace('second', 'seconde') }}"
- state: sensor.spook_issues
label: Problème

touuuf

De touuuf le 22 janvier 2026

Merci pour ce retour rapide! Malgré ces informations, homepage me retourne des 404 not found pour mes deux customs.
Mes lignes, au cas ou je sois passé à côté de quelque chose :
- Home Assistant:
icon: sh-home-assistant.webp
href: 'http://IP:8123/'
ping: 'http://IP:8123/'
description: Solution de domotique
widget:
type: homeassistant
url: http://IP:8123/
key: TOKEN
custom:
- state: light.lampadaire_2
- label: Démarré depuis
template: "{{ relative_time( strptime( states('sensor.uptime'), '%Y-%m-%dT%H:%M:%S%z' ) ) | replace('day', 'jour') | replace('hour', 'heure') | replace('second', 'seconde') }}"

J'ai tenté en intégrant votre template d'uptime, étant sûr que cette syntaxe est fonctionnelle chez vous .. mais sans succès. Je vais continuez à creuser

Guillaume Kulakowski

Faut te connecter au container de home page et ping / curl l'IP de HA pour voir pourquoi tu vois une 404.

touuuf

De touuuf le 23 janvier 2026

Bonjour, après quelque recherche sur le Discord de Homepage, j'ai fini par trouver la solution à mon problème : il semble que le "/" à la fin des adresses IP ne soit pas le bienvenu. Ils ont été supprimés, ainsi que les " ' " encadrant les IP et l'erreur 404 a disparu. Je récupère bien mon uptime et mon état de lumières allumées. Merci à toi !!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Réseaux sociaux