Les services
Ce que le serveur fait tourner en continu, et ce qui le fait tourner, lui.
Public
Un sous-domaine et un certificat, mais Authelia à l'entrée : joignable de partout, ouvert à personne sans compte.
Privé
Ni sous-domaine ni port ouvert : réseau local uniquement.
L'architecture
Un seul fichier docker-compose.yml décrit la pile
entière : les conteneurs, leur réseau, leurs disques. Le serveur
n'installe rien, il applique ce fichier.
Ces sept conteneurs n'ont pas de réseau à eux :
network_mode: service:gluetun les fait vivre dans
celui de gluetun. Aucun port ne leur appartient, ils
sont tous publiés par le tunnel. Si gluetun tombe, ils
deviennent sourds : le coupe-circuit n'est pas une option cochée,
c'est la topologie.
authelia garde l'entrée : il n'écoute que
127.0.0.1, donc seul le reverse proxy de la machine
peut lui parler. wizarr distribue les invitations. Ni
l'un ni l'autre n'a de raison de sortir par le VPN.
Une pile, un fichier
Chaque service est déclaré plutôt qu'installé : image,
version, volumes, variables. Le même fichier remonte
l'ensemble à l'identique sur une machine neuve.
Le réseau se déclare
Router sept services dans un VPN tiendrait en un jeu de règles
iptables à maintenir à la main. Ici, c'est une ligne
par conteneur, et elle est impossible à oublier.
Jetable par construction
Un conteneur qui déraille se détruit et se relance sans rien
perdre : docker compose up -d suffit, la configuration
et la médiathèque vivent dans des volumes, en dehors
de lui.
deluge, radarr et sonarr
montent les mêmes chemins, /mnt/Plex et
/downloads. Un téléchargement terminé change de dossier
sans jamais être recopié.
La machine
Un Razer Blade 15 de 2020 payé 50 € : à ce prix, l'écran, le clavier, le trackpad et le châssis étaient tous cassés. Le reste marche très bien. Rabattu, branché au secteur, il tourne 24 h / 24 dans un coin, avec deux disques USB pour tout ranger.