Aller au contenu principal
AnthemionAnthemion
Retour au blog

Monter un serveur local avec Docker

15 janvier 20263 min read
DockerLinuxSelf-hostedDevOps

Le problème

Mes fichiers étaient éparpillés : iCloud pour certains, Google Drive pour d'autres, des backups manuels sur un disque externe. Aucune cohérence, aucune garantie. Et surtout, aucun contrôle sur où étaient mes données.

J'ai voulu reprendre la main. L'objectif : un serveur local qui synchronise mes fichiers, héberge mes services, et me coûte zéro abonnement mensuel.

Le matériel

Un NAS Ugreen (192.168.129.21). C'est tout. Petit, silencieux, basse consommation. Il tourne 24/7 dans un placard.

Ce qui compte :

  • Docker est intégré nativement — pas besoin d'installer un OS séparé
  • Accès SSH pour la configuration
  • Suffisamment de stockage pour mes projets et mes notes

L'architecture

Tout repose sur Docker Compose. Chaque service est un conteneur isolé, avec son propre réseau et ses volumes. Le redémarrage est automatique.

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./syncthing/config:/var/syncthing/config
      - /data/sync:/var/syncthing/data
    ports:
      - "8384:8384"
      - "22000:22000/tcp"
      - "22000:22000/udp"
    restart: unless-stopped
 
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./portainer/data:/data
    ports:
      - "9443:9443"
    restart: unless-stopped

Syncthing : le cœur du système

Syncthing synchronise mes fichiers entre mon Mac et le NAS de manière bidirectionnelle et chiffrée. Pas de cloud tiers, pas de compte à créer.

Ce que je synchronise :

  • SecondBrain — mon vault Obsidian avec toutes mes notes, documentations et daily notes
  • Projets — le code source de mes applications
  • Config — mes dotfiles et configurations

La synchronisation est quasi-instantanée. Quand je modifie une note sur mon Mac, elle est sur le NAS en quelques secondes. C'est transparent.

La configuration en 3 étapes

  1. Installer Syncthing sur les deux machines (Mac via Homebrew, NAS via Docker)
  2. Ouvrir les interfaces web (localhost:8384 et 192.168.129.21:8384)
  3. Ajouter l'ID de chaque appareil et partager les dossiers

La connexion se fait en réseau local sur le port 22000 — chiffré TLS 1.3, sans passer par internet.

Portainer : gérer Docker sans terminal

Portainer fournit une interface web pour visualiser les conteneurs, les logs, les volumes. Utile quand tu veux vérifier qu'un service tourne sans ouvrir un terminal SSH.

Ce n'est pas indispensable — docker ps fait le même travail — mais c'est confortable.

Ce que j'ai appris

  • Docker Compose est la bonne abstraction pour un serveur local : un fichier YAML, un docker compose up -d, c'est parti
  • Les volumes sont la partie critique — si tu perds tes volumes, tu perds tes données. Toujours mapper sur le filesystem hôte
  • Le réseau local est suffisant pour un usage personnel. Pas besoin d'exposer quoi que ce soit sur internet
  • restart: unless-stopped est ton ami — après une coupure de courant, tout redémarre automatiquement

Le résultat

Un serveur local qui tourne depuis plusieurs mois sans intervention. Mes notes Obsidian sont synchronisées en continu, mes projets sont sauvegardés, et je ne paie aucun abonnement cloud.

Le plus satisfaisant : savoir exactement où sont mes données et comment elles y arrivent.