Ce qui tourne sous le capot.

Le détail de la stack logicielle, de l'architecture matérielle et des mécanismes de protection mis en œuvre dans un déploiement Kovra. Cette page s'adresse à ceux qui veulent vérifier — les autres n'en ont pas besoin.

Les couches du système.

Rien d'exotique et rien de propriétaire : des briques libres, largement déployées, documentées et remplaçables. C'est ce qui permet à un autre prestataire de reprendre l'installation si je disparais.

Système
Debian 13

Distribution Linux stable, sans interface graphique. Empreinte minimale, cycle de mises à jour de sécurité prévisible et long.

Conteneurisation
Docker Compose

Chaque service tourne dans son conteneur, décrit dans un fichier unique versionné. Environnement reproductible, retour arrière possible.

Application
Nextcloud

Le partage de fichiers, les comptes, les permissions et les clients de synchronisation pour Windows, macOS, Linux, iOS et Android.

Base de données
MariaDB

Obligatoire dès qu'il y a plusieurs utilisateurs simultanés. SQLite, souvent proposé par défaut, provoque des échecs d'écriture silencieux en synchronisation concurrente.

Cache
Redis

Cache mémoire et verrouillage transactionnel des fichiers. Évite les conflits quand deux personnes touchent au même document.

Serveur web
Caddy

Reverse proxy en frontal de Nextcloud, gestion du HTTPS et des en-têtes de sécurité. Configuration courte, donc auditable.

Stockage
ZFS — RAIDZ1

Système de fichiers transactionnel à sommes de contrôle natives : la corruption silencieuse est détectée et corrigée. Trois disques en pool, tolérance à la perte de l'un d'eux.

Accès distant
Tailscale

Réseau privé chiffré en WireGuard entre le serveur et les appareils autorisés. Aucun port ouvert sur l'internet public.

Le serveur physique.

Une machine compacte et silencieuse, dimensionnée pour tourner en continu dans un local de bureau — pas dans une salle serveur.

ComposantRéférenceRôle
Processeur Intel Core i3-12100 4 cœurs, 8 threads. Dimensionné pour les requêtes simultanées d'une trentaine d'utilisateurs, pas seulement pour leur nombre.
Mémoire 32 Go DDR4 Répartie entre le cache du système de fichiers, la base de données et Nextcloud. C'est la ressource qui décide de la réactivité ressentie.
Disque système NVMe 500 Go, classe NAS Système, conteneurs et base de données. Séparé des disques de données pour isoler les pannes, et choisi pour son endurance en écriture continue.
Stockage — 4 To 2 × WD Red Plus 4 To Deux disques en miroir, 4 To utiles. Chacun porte une copie exacte de l'autre.
Stockage — 8 To 3 × WD Red Plus 4 To Pool RAIDZ1, 8 To utiles. Disques NAS à enregistrement classique (CMR), prévus pour un fonctionnement continu.
Stockage — 12 To 4 × WD Red Plus 4 To Pool RAIDZ1, 12 To utiles. Même modèle de disque que les autres configurations, un exemplaire de plus.
Boîtier Jonsbo N2 Format compact, baies 3,5 pouces accessibles en façade, niveau sonore compatible avec un bureau occupé.
Alimentation be quiet! SFX 450 W Certifiée 80 PLUS, marge confortable sur la configuration installée.
Onduleur APC Back-UPS 650 VA Relié au serveur, il ne se contente pas de retarder la coupure : il commande l'arrêt propre de la machine avant que la batterie ne cède.
Accès de secours Boîtier KVM sur IP Un second chemin d'accès, indépendant du serveur. Si la machine ne démarre plus, j'interviens depuis Lyon plutôt que de me déplacer.

Plusieurs filets de sécurité.

La redondance des disques protège de la panne matérielle. Elle ne protège ni de la suppression accidentelle, ni de l'incendie. D'où les deux autres niveaux.

Horaire

Instantanés locaux, récupérables sans intervention

Hebdo

Envoi chiffré vers un second site

AES-256

Chiffrement avant que les données ne sortent

48 h

Délai de restauration en cas d'incident

Instantanés ZFS

ZFS enregistre des instantanés cohérents du pool à intervalles réguliers. Un fichier supprimé par erreur ou un dossier écrasé se récupère à la version près, sans restauration complète et sans mon intervention en urgence.

Copy-on-writeRestauration granulaire

Copie hors site chiffrée

Chaque semaine, une copie part vers un second site par un réseau privé chiffré. Les données sont chiffrées sur votre serveur, avant de partir : ce qui circule et ce qui est stocké à l'autre bout est illisible sans votre clé, que vous détenez. Seules les différences depuis la semaine précédente sont transmises, ce qui rend l'opération rapide même sur de gros volumes.

Chiffré à la sourceDifférentielIndépendant du pool

Aucune porte sur l'internet public.

La plupart des serveurs de fichiers auto-hébergés se font attaquer parce qu'ils sont joignables depuis n'importe où. Celui-ci ne l'est pas.

Réseau privé WireGuard

L'accès distant passe par un tunnel chiffré géré par Tailscale. Le serveur n'écoute sur aucun port ouvert vers l'extérieur : il est invisible depuis l'internet. Seuls les appareils explicitement autorisés, authentifiés par clé cryptographique, peuvent l'atteindre.

WireGuardZéro port exposéAuthentification par clé

Chiffrement du transport

Tout le trafic entre les appareils et le serveur est chiffré par le tunnel WireGuard, y compris sur un réseau local ou un Wi-Fi public. À l'intérieur de ce réseau privé, Caddy sert Nextcloud en HTTPS. Les certificats sont de vrais certificats Let's Encrypt, délivrés par l'intermédiaire du réseau privé sans jamais ouvrir de port : la validation se fait par le DNS, pas par une porte laissée ouverte sur internet.

Let's EncryptEn-têtes de sécurité

Isolation des services

Nextcloud, la base de données, le cache et le reverse proxy tournent dans des conteneurs séparés sur un réseau Docker interne. Seul le proxy est exposé aux autres machines du réseau privé ; la base de données n'est joignable que par Nextcloud.

Conteneurs isolésRéseau interne

Mises à jour

Les correctifs de sécurité du système sont appliqués automatiquement. Les montées de version de Nextcloud sont déclenchées manuellement, après vérification, hors heures d'utilisation — une mise à jour applicative qui se lance seule pendant que quelqu'un travaille est une mauvaise idée.

unattended-upgradesMaintenance planifiée

Prévenu avant vous.

Un serveur qui tombe un vendredi soir et que personne ne surveille reste tombé jusqu'au lundi. La supervision existe pour que ça n'arrive pas.

État du stockage

L'état du pool ZFS est contrôlé toutes les quinze minutes. Toute dégradation — disque en défaut, pool en mode dégradé, remplissage proche du seuil — déclenche une alerte immédiate sur mon téléphone.

Contrôle 15 minAlerte immédiate

Disponibilité du service

La réponse de l'instance Nextcloud est vérifiée au même rythme. Les alertes sont dédoublonnées : je suis prévenu une fois quand un problème apparaît, et une fois quand il est résolu — pas toutes les quinze minutes entre les deux.

Sonde applicativeAlertes dédoublonnées

Intégrité des données

Une vérification complète du pool (scrub) parcourt périodiquement chaque bloc écrit et corrige, grâce à la redondance, les erreurs qu'il détecte — avant qu'elles ne se propagent aux sauvegardes.

Scrub périodiqueCorrection automatique

Santé des disques

Les indicateurs SMART de chaque disque sont relevés : secteurs réalloués, température, heures de fonctionnement. Un disque qui commence à fatiguer se remplace avant de tomber, sans interruption pour vous.

SMARTRemplacement préventif
Une limite, tant qu'à être honnête. La supervision tourne sur le serveur lui-même : elle détecte une panne de service, pas une panne totale de la machine ou une coupure de courant prolongée, puisqu'elle s'arrêterait en même temps. Un dispositif indépendant, qui alerte précisément quand le serveur cesse de donner signe de vie, est le prochain élément à mettre en place.