From bf97cac2e98f8a99e73bd6bf796ba7181d9dac81 Mon Sep 17 00:00:00 2001 From: Djeex Date: Sat, 5 Sep 2026 22:10:30 +0200 Subject: [PATCH] Better writing --- content/en/1.about/1.welcome.md | 2 +- content/fr/1.about/1.welcome.md | 14 ++--- content/fr/2.general/1.summary.md | 8 +-- content/fr/2.general/2.networking/1.nat.md | 7 +-- content/fr/2.general/5.linux/1.cli-basics.md | 52 ++++++++-------- content/fr/2.general/5.linux/2.filesystem.md | 16 ++--- content/fr/2.general/5.linux/3.handy-tools.md | 47 +++++++-------- content/fr/3.serveex/2.core/1.installation.md | 59 ++++++++++--------- content/fr/3.serveex/2.core/2.docker.md | 6 +- content/fr/3.serveex/3.security/3.tinyauth.md | 4 +- .../fr/3.serveex/3.security/4.pocket-id.md | 2 +- content/fr/3.serveex/5.media/1.jellyfin.md | 2 +- .../fr/3.serveex/91.advanced/1.authentik.md | 2 +- content/fr/3.serveex/91.advanced/2.arcane.md | 4 +- content/fr/5.nonsense/1.summary.md | 4 +- content/fr/6.recycled/1.summary.md | 2 +- 16 files changed, 116 insertions(+), 115 deletions(-) diff --git a/content/en/1.about/1.welcome.md b/content/en/1.about/1.welcome.md index bbf571f..dfea7af 100644 --- a/content/en/1.about/1.welcome.md +++ b/content/en/1.about/1.welcome.md @@ -14,7 +14,7 @@ hideToc: true __Docu[·]{style="color: #1ad6ff"}djeex__ is a site containing the documentation of my personal servers, originally created to easily keep track of my configurations and commands. My infrastructure is built around the Debian 13 + Docker combo, making exporting and deployment simpler. -Special thanks to __Nipah__, __Xenio__, and others for their patience and support. Most of this content comes directly from them. +Special thanks to __Nipah__, __Xenio__, __KevOut__ and others for their patience and support. The simple idea of writing this documentation would not exist without them. ## About the documentation diff --git a/content/fr/1.about/1.welcome.md b/content/fr/1.about/1.welcome.md index 5374896..b3a3178 100644 --- a/content/fr/1.about/1.welcome.md +++ b/content/fr/1.about/1.welcome.md @@ -12,15 +12,13 @@ hideToc: true :ellipsis{right=0px width=75% blur=150px zIndex=60} # docu[·]{style="color: #1ad6ff"}quoi ? -__Docu[·]{style="color: #1ad6ff"}djeex__ est le site regroupant la documentation de mes serveurs personnels, pensé à l'origine pour retrouver facilement mes configurations et commandes. -Mon infrastructure est construite autour du duo Debian 13 + Docker, pour plus de simplicité à l'export et au déploiement. -Un grand merci à __Nipah__, __Xenio__, et d'autres pour leur patience et leur soutien. La majeure partie de ce contenu vient directement d'eux. +__Docu[·]{style="color: #1ad6ff"}djeex__ est le site regroupant la documentation de mes serveurs, pensé à l'origine pour retrouver facilement mes configurations et commandes. Mon infrastructure est construite autour du duo Debian 13 et docker, pour plus de simplicité à l'export et au déploiement. On remerciera principalement __Nipah__, __Xenio__, __KevOut__ (et d'autres) pour leur patience et écoute. Sans eux, cette doc n'aurait jamais vu le jour. ## À propos de la documentation -La documentation fournie ici est expérimentale et partagée dans un esprit de partage de connaissances et d'expérience. Elle n'est en aucun cas destinée à construire une infrastructure de production ou industrialisée. Il est possible qu'elle contienne des erreurs et/ou des approximations. +La documentation fournie ici est distribuée à titre expérimentale, dans un esprit de partage d'expérience. Elle n'est en aucun cas faite pour construire une architecture de production ou pour de l'industrialisation. Il est possible qu'elle contienne des erreurs et/ou des approximations. -Évidemment, l'usage de cette documentation doit strictement se limiter au cadre légal. +Evidemment, l'usage de cette documentation doit strictement se limiter au cadre légal. ### Documentation disponible ou à venir @@ -34,11 +32,11 @@ Bases réseau, stockage et matériel :: ::card{icon="i-noto-microscope" title="Serveex" to="/serveex/introduction"} -Guide de déploiement de votre Homelab, pas à pas +Votre homelab à déployer, pas à pas :: ::card{icon="i-noto-computer-disk" title="Stockeex"} -*(à venir)* Créez votre propre NAS maison pour stocker vos données et médias +*(à venir)* Votre NAS maison à créer chez vous pour stocker vos données et media :: ::card{icon="i-noto-test-tube" title="Mes bêtises" to="/nonsense/python/nvidia-stock-bot"} @@ -46,6 +44,6 @@ Scripts personnels et projets annexes :: ::card{icon="i-noto-recycling-symbol" title="Poubelle" to="/recycled/deprecated/wireguard-14"} -Pages dépréciées, conservées pour archive +Pages périmées, conservées pour archive ou alternatives :: :: diff --git a/content/fr/2.general/1.summary.md b/content/fr/2.general/1.summary.md index d84d2ea..873266d 100644 --- a/content/fr/2.general/1.summary.md +++ b/content/fr/2.general/1.summary.md @@ -9,7 +9,7 @@ navigation: :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} ## Les bases d'un homelab -Cette section rassemble les connaissances générales sur lesquelles [Serveex](/serveex/introduction) s'appuie sans les réexpliquer à chaque fois : comment le réseau fonctionne réellement à la maison, comment choisir et mettre en place son stockage, et sur quel matériel faire tourner tout ça. À lire une fois, puis à recroiser depuis n'importe quel tutoriel d'application. +Cette section rassemble les connaissances générales sur lesquelles [Serveex](/serveex/introduction) s'appuie sans les réexpliquer à chaque fois : comment le réseau fonctionne réellement à la maison, comment choisir et mettre en place son stockage, et sur quel matériel faire tourner tout ce bazar. À lire une fois, puis à recroiser depuis n'importe quel tutoriel d'application. ### Réseau @@ -39,7 +39,7 @@ Partager des dossiers sur le réseau local ::card-group ::card{icon="i-lucide-database" title="RAID" to="/general/storage/raid"} -Grappes de disques redondantes, matériel ou logiciel +RAID matériel ou logiciel :: ::card{icon="i-lucide-layers" title="ZFS" to="/general/storage/zfs"} @@ -63,7 +63,7 @@ Switchs, cartes réseau et câblage :: ::card{icon="i-lucide-hard-drive" title="Le ProloNAS" to="/general/hardware/prolonas"} -Un serveur maison N100 à petit budget +Un serveur maison à petit budget :: :: @@ -79,7 +79,7 @@ Comment une commande est construite, et celles qui servent vraiment :: ::card{icon="i-lucide-folder-tree" title="Dossiers et partitions" to="/general/linux/filesystem"} -Ce qui vit où sur Debian, et les habitudes qui gardent tout propre +Comment Debian est organisé, et les bonnes habitudes :: ::card{icon="i-lucide-wrench" title="Outils CLI pratiques" to="/general/linux/handy-tools"} diff --git a/content/fr/2.general/2.networking/1.nat.md b/content/fr/2.general/2.networking/1.nat.md index 91fcaee..b82eb38 100644 --- a/content/fr/2.general/2.networking/1.nat.md +++ b/content/fr/2.general/2.networking/1.nat.md @@ -11,15 +11,14 @@ description: Comprendre le NAT, la redirection de ports et le DHCP sur un routeu ## Qu'est-ce qu'un « port » ? -Les ports sont différents canaux par lesquels votre routeur envoie et reçoit des données. Cela permet d'utiliser plusieurs services en même temps. -Lorsqu'il reçoit des données via un port, votre routeur les transmet à la machine qui : +Les ports sont différents canaux par lesquels votre routeur envoie et reçoit des données, ce qui permet d'utiliser plusieurs services en meme temps. Lorsqu'il reçoit des données via un port, rvotre outeur transmet ensuite les données à la machine qui : : - soit a émis la requête de départ, - soit est configurée pour recevoir les données arrivant sur un port spécifique. Votre routeur dispose de plus de 65 000 ports. -Certains programmes et applications sont conçus pour utiliser des ports spécifiques. Par exemple, lorsque votre réseau envoie des données depuis une page HTML, le routeur les reçoit via le port 80 (non sécurisé) ou le port `443` (sécurisé via SSL). +Certains programmes et applications sont conçus pour utiliser des ports spécifiques. Par exemple, lorsque votre réseau envoie des données depuis une page HTML, le routeur les reçoit via le port `80` (non sécurisé) ou le port `443` (sécurisé via SSL). Le routeur sert donc de plateforme d'aiguillage des données entre internet et vos machines locales. @@ -45,7 +44,7 @@ Imaginons que votre service tourne sur le port `3000` en local (`http://192.168. ::warning{to="/serveex/core/swag"} -__Attention :__ si vous avez plusieurs services à exposer, du type `sousdomaine1.mondomaine.fr` et `sousdomaine2.mondomaine.fr`, votre routeur ne peut pas différencier les requêtes et rediriger vers des ports différents. +__Attention :__ si vous avez plusieurs services à exposer, du type `sousdomaine1.mondomaine.fr` et `sousdomaine2.mondomaine.fr`, votre routeur ne peut pas rediriger vers plusieurs port selon la requête. Vous devez utiliser un **Reverse Proxy** pour aiguiller le trafic selon la requête. :: diff --git a/content/fr/2.general/5.linux/1.cli-basics.md b/content/fr/2.general/5.linux/1.cli-basics.md index 649d847..83672e6 100644 --- a/content/fr/2.general/5.linux/1.cli-basics.md +++ b/content/fr/2.general/5.linux/1.cli-basics.md @@ -1,18 +1,18 @@ --- -title: Bases de la ligne de commande +title: CLI pour les nuls description: Comprendre comment une commande Linux est construite, apprendre les commandes essentielles du terminal, ce que veulent dire leurs noms, et repartir avec un aide-mémoire. --- :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} -Un serveur n'a pas de bureau, pas d'icônes et pas de souris. Tout se passe dans un terminal, et cette fenêtre noire avec un curseur clignotant est la seule chose qui décourage les gens de s'auto-héberger. À tort : le terminal n'est qu'une conversation. Vous tapez une ligne, la machine fait exactement ça et répond. Rien de plus magique qu'une barre de recherche, sauf qu'il en fait bien plus et ne cache jamais une option derrière trois menus. +Un serveur n'a pas de bureau, pas d'icônes et pas de souris. Tout se passe dans un terminal, et cette fenêtre noire avec un curseur clignotant est principalement ce qui décourage les gens de se lancer de le self-hosting. À tort : le terminal n'est qu'un chat. Vous posez une question ou écrivez un ordre, la machine répond. Rien de plus complexe qu'une barre de recherche, sauf qu'il en fait bien plus et ne cache jamais une option derrière trois menus. -La bonne nouvelle, c'est que vous n'avez pas besoin de connaître cent commandes. Dix d'entre elles couvrent presque tout ce que vous ferez sur un serveur maison, et elles suivent toutes le même schéma. Apprenez le schéma d'abord, et chaque commande croisée ensuite devient lisible, même celles que vous n'avez jamais vues. +La bonne nouvelle, c'est que vous n'avez pas besoin de connaître des centaines de commandes. Une dizaine d'entre elles couvrent presque tout vos besoins sur un serveur maison, et elles suivent toutes le même schéma. Apprenez à lire ce schéma et chaque commande que vous croiserez par la suite deviendra lisible, même celles que vous n'avez jamais vues. ## Comment une commande est construite -Chaque ligne de commande, sans exception, est la même phrase : **quoi lancer**, **comment le lancer**, **sur quoi le lancer**. +Chaque ligne de commande, sans exception, est rédigée de la même manière : **quoi lancer**, **comment le lancer**, **sur quoi le lancer**. ```text [Anatomie d'une commande] sudo apt install -y nano @@ -23,16 +23,16 @@ sudo apt install -y nano └───────────────────── le lancer avec les droits administrateur ``` -Lue à voix haute, cette ligne dit « en tant qu'administrateur, demande au gestionnaire de paquets d'installer le paquet nano, et ne me demande pas de confirmer ». Ce sont les espaces qui séparent les morceaux, et c'est pour ça qu'un dossier nommé `Mes Sauvegardes` doit être mis entre guillemets (`cd "Mes Sauvegardes"`), sinon le shell y lit deux choses différentes. +Lue à voix haute, cette ligne dit « en tant qu'administrateur, demande au gestionnaire de paquets d'installer le paquet nano, et ne me demande pas de confirmer ». Ce sont les espaces qui séparent les parties, et c'est notamment pour ça qu'un dossier nommé `Mes Sauvegardes` doit être mis entre guillemets (`cd "Mes Sauvegardes"`), sinon le shell (le système utilisé par le terminal) y lit deux choses différentes. ### Les options, courtes et longues -Les options changent le comportement d'une commande. Elles existent en deux saveurs, et la plupart des commandes acceptent les deux : +Les options changent le comportement d'une commande. Elles existent en deux versions, et la plupart des commandes acceptent les deux : - **Courtes**, un tiret et une seule lettre : `ls -a`. Elles peuvent s'empiler, donc `ls -l -a -h` s'écrit généralement `ls -lah`. - **Longues**, deux tirets et un mot entier : `ls --all`. Plus longues à taper, mais vous saurez encore ce qu'elles font six mois plus tard, ce qui en fait le meilleur choix dans un script. -Certaines options attendent une valeur juste après elles : `ssh-keygen -t ed25519` (`-t` pour type), `rsync --exclude @eaDir`. Et la casse compte, toujours. Dans `ls`, `-r` inverse l'ordre de tri alors que `-R` descend dans les sous-dossiers. Deux choses différentes, à une lettre près. +Certaines options attendent une valeur juste après elles : `ssh-keygen -t ed25519` (`-t` pour type), `rsync --exclude @eaDir`. Et la casse compte, toujours. Dans `ls`, `-r` inverse l'ordre de tri alors que `-R` descend dans les sous-dossiers. Deux choses différentes, pour une même lettre. ### Les arguments et les chemins @@ -49,21 +49,23 @@ Quand la cible est un endroit sur le disque, vous l'écrivez sous forme de chemi | `/var/log` | un chemin **absolu**, même résultat depuis n'importe où | | `logs/aujourdhui` | un chemin **relatif**, compris depuis là où vous êtes | -Quel dossier contient quoi est un sujet à part entière, traité dans [dossiers et partitions](/general/linux/filesystem). +::info +L'usage des dossiers par l'OS est un sujet à part entière, traité dans [dossiers et partitions](/general/linux/filesystem). +:: -L'invite de commande vous dit elle-même où vous êtes : dans `utilisateur@serveex:~/docker$`, vous êtes connecté en tant qu'`utilisateur` sur la machine nommée `serveex`, dans le dossier `docker` de votre home. Ce `$` final signifie un utilisateur normal. S'il affiche un jour `#`, vous êtes root et chaque faute de frappe compte double. +L'invite de commande indique elle-même où vous êtes : dans `utilisateur@serveex:~/docker$`, vous êtes connecté en tant qu'`utilisateur` sur la machine nommée `serveex`, dans le dossier `docker` de votre home. Ce `$` final signifie que vous êtes loggé avec un utilisateur normal. Si vous voyez `#` à la place, c'est que vous êtes connecté avec l'utilisateur root et chaque faute de frappe compte double. ### Trouver de l'aide -Deux habitudes vous rendent indépendant des tutoriels. `commande --help` affiche un résumé rapide de chaque option, et `man commande` ouvre le manuel complet (`man` pour *manual*), que vous quittez en appuyant sur :kbd{value="Q"}. +Deux astuces vous rendront indépendant des tutoriels. `commande --help` affiche un résumé rapide de chaque option, et `man commande` ouvre le manuel complet (`man` pour *manual*), que vous quittez en appuyant sur :kbd{value="Q"}. ::tip{icon=""} -✨ __Astuce :__ trois réflexes clavier qui changent tout : :kbd{value="Tab"} complète le nom de fichier ou de dossier que vous avez commencé à taper, si bien que vous ne tapez presque jamais un chemin complet ; la flèche :kbd{value="Up"} rappelle vos commandes précédentes, ce qui évite de retaper une longue ligne pour un caractère ; et :kbd{value="Ctrl"} + :kbd{value="C"} arrête ce qui est en train de tourner. +✨ __Astuce :__ trois réflexes clavier qui changent tout : :kbd{value="Tab"} complète le nom de fichier ou de dossier que vous avez commencé à taper, si bien que vous ne taperez presque jamais un chemin complet ; la flèche :kbd{value="Up"} rappelle vos commandes précédentes, ce qui évite de retaper une longue ligne pour un caractère ; et :kbd{value="Ctrl"} + :kbd{value="C"} arrête ce qui est en train de tourner. :: ### Enchaîner les commandes -Une fois le schéma compris, les commandes se branchent les unes aux autres : +Une fois le schéma compris, les commandes peuvent se combiner les unes aux autres : - `&&` lance la suivante seulement si la précédente a réussi : `sudo apt update && sudo apt full-upgrade` - `|`, le pipe, envoie la sortie d'une commande dans une autre : `ls -l | grep sauvegarde` liste le dossier, puis ne garde que les lignes contenant « sauvegarde » @@ -71,7 +73,7 @@ Une fois le schéma compris, les commandes se branchent les unes aux autres : ## Les commandes que vous utiliserez vraiment -La plupart des noms de commandes sont des abréviations d'une expression anglaise. Une fois que vous savez ce qu'elles signifient, elles cessent de ressembler à du bruit de clavier. +La plupart des noms de commandes sont des abréviations. Une fois que vous savez ce qu'elles signifient, elles cessent de ressembler à des incantations obscures. ### `pwd`, print working directory @@ -106,7 +108,7 @@ La première colonne, ce sont les permissions, le `d` tout au début signifiant ### `cd`, change directory -Vous déplace. Avec un chemin elle y va, avec `..` elle remonte d'un niveau, et sans rien du tout elle vous ramène chez vous. +Permet de changer de repertoire. Lorsque vous indiquez un chemin, elle vous y rend. Avec `..` elle remonte d'un niveau, et sans rien du tout elle vous ramène dans votre dossier utilisateur. ```console [Terminal] utilisateur@serveex:~/docker$ cd /var/log @@ -115,7 +117,7 @@ utilisateur@serveex:/$ cd utilisateur@serveex:~$ ``` -Remarquez l'invite qui vous suit : elle montre toujours où vous vous trouvez, si bien qu'en pratique vous avez rarement besoin de `pwd`. +Notez l'invite de commande : elle montre toujours où vous vous trouvez, si bien qu'en pratique vous avez rarement besoin de `pwd`. ### `mkdir`, make directory @@ -130,11 +132,11 @@ mkdir -p docker/immich/config ``` -Rien. Ce n'est pas un bug, c'est la règle : la plupart des commandes ne disent rien quand elles réussissent et ne se manifestent que si quelque chose se passe mal. Le silence est une bonne nouvelle, et `ls` confirme que le dossier est bien là. +La sortie n'affiche rien. Ce n'est pas un bug, c'est la règle : la plupart des commandes ne disent rien quand elles réussissent et ne se manifestent que si quelque chose se passe mal. Le silence est une bonne nouvelle, et `ls` confirme que le dossier est bien là. ### `cp` et `mv`, copy et move -`cp` copie, `mv` déplace. Même forme dans les deux cas : d'abord la source, puis la destination. Copier un dossier demande `-r`, pour *recursive*, puisqu'un dossier veut dire tout ce qu'il contient aussi. `mv` sert également de commande pour renommer, parce que renommer un fichier revient simplement à le déplacer vers un nouveau nom. +`cp` copie, `mv` déplace. Même syntaxe dans les deux cas : d'abord la source, puis la destination. Copier un dossier demande `-r`, pour *recursive*, puisqu'un dossier veut dire tout ce qu'il contient aussi. `mv` sert également de commande pour renommer, parce que renommer un fichier revient simplement à le déplacer vers un nouveau nom. ```bash [Terminal] cp compose.yaml compose.yaml.bak @@ -147,7 +149,7 @@ ls compose.yaml compose.yaml.bak config config-backup nouveau-nom.txt ``` -Trois commandes silencieuses, et `ls` qui montre le résultat : la copie est à côté de l'original, le dossier a été dupliqué, et `ancien-nom.txt` a disparu parce que le déplacer vers un autre nom, c'est exactement ce que veut dire renommer. +Trois commandes silencieuses, et `ls` qui montre le résultat : la copie est à côté de l'original, le dossier a été dupliqué, et `ancien-nom.txt` a disparu parce que le déplacer vers un autre nom équivaut à le renommer/ ### `rm`, remove @@ -159,9 +161,9 @@ Supprime. Il n'y a pas de corbeille, pas d'annulation, pas de fenêtre de confir ### `cat` et `nano`, lire et modifier -`cat` (abréviation de *concatenate*) déverse un fichier entier à l'écran, parfait pour une config courte. Pour tout ce qui est plus long, `less` le fait défiler (nommé en clin d'œil à `more`, le pager plus ancien qu'il a remplacé), et vous en sortez avec :kbd{value="Q"}. +`cat` (abréviation de *concatenate*) déverse un fichier entier à l'écran, parfait pour une config courte. Pour tout ce qui est plus long, `less` le fait défiler. Pour quitter, tapez simplement :kbd{value="Q"}. -Pour modifier réellement un fichier, `nano` ouvre un éditeur simple : les flèches pour se déplacer, :kbd{value="Ctrl"} + :kbd{value="O"} pour enregistrer, :kbd{value="Ctrl"} + :kbd{value="X"} pour quitter. +Pour éditer un fichier, `nano` ouvre un éditeur simple : les flèches pour se déplacer, :kbd{value="Ctrl"} + :kbd{value="O"} pour enregistrer, :kbd{value="Ctrl"} + :kbd{value="X"} pour quitter. ```bash [Terminal] cat .env @@ -188,9 +190,9 @@ grep -rin "password" /home/utilisateur/docker Chaque ligne indique le fichier, puis le numéro de ligne à l'intérieur, puis la ligne correspondante elle-même. Très pratique le jour où vous ne vous souvenez plus dans quelle stack se trouve un réglage. -### `sudo`, lancer en administrateur +### `sudo`, lancer en privilèges administrateur -*Substitute user do*. Un utilisateur normal ne peut pas toucher aux fichiers du système, et c'est précisément ce qui vous protège de casser la machine par accident. Préfixer une commande par `sudo` lance cette seule commande avec les droits administrateur, et demande votre mot de passe la première fois. +*Substitute user do*. Afin d'éviter de casser votre serveur par accident, un utilisateur normal ne peut pas toucher aux fichiers du système. Préfixer une commande par `sudo` lance cette seule commande avec les droits administrateur. Cette commande vous demandera votre mot de passe au moins une fois par session, et parfois plusieurs fois selon le temps qui se sera écoulé depuis sa dernière utilisation. ```bash [Terminal] nano /etc/ssh/sshd_config @@ -209,12 +211,12 @@ sudo nano /etc/ssh/sshd_config ``` ::note -Si une commande répond `Permission denied`, c'est en général tout le problème : il lui fallait `sudo`. Résistez quand même au réflexe de mettre `sudo` partout, un fichier créé en root continuera de vous embêter ensuite parce que votre utilisateur normal n'en est plus propriétaire. +Lordsqu'une commande répond `Permission denied`, c'est quasiment certain que c'est parce qu'elle a besoin des privilèges administrateurs : il lui fallait `sudo`. Cependant, résistez tout de même au réflexe de mettre `sudo` partout, un fichier créé avec les privilèges root continuera de vous embêter par la suite parce que votre utilisateur normal n'en sera plus propriétaire. :: ## Aide-mémoire -Celles qui valent la peine d'être gardées sous la main, et d'où viennent leurs noms. +Les commandes qui valent la peine d'être gardées sous la main, et d'où viennent leurs noms. | Commande | Abréviation de | Ce qu'elle fait | | --- | --- | --- | @@ -251,5 +253,5 @@ Celles qui valent la peine d'être gardées sous la main, et d'où viennent leur | `history` | mot anglais courant | Liste les commandes tapées précédemment | ::tip{icon=""} -✨ __Astuce :__ personne ne retient tout ça. Vous rechercherez les trois mêmes options pendant des semaines, puis un jour vous réaliserez que vous les tapez sans réfléchir. En attendant, `--help` et ce tableau sont parfaitement légitimes. +✨ __Astuce :__ Rassurez-vous, personne ne retient tout ça. Dans la réalité, vous rechercherez les trois mêmes options pendant des semaines, puis un jour vous réaliserez que vous les tapez sans réfléchir. En attendant, `--help` et ce tableau seront vos meilleurs amis. :: diff --git a/content/fr/2.general/5.linux/2.filesystem.md b/content/fr/2.general/5.linux/2.filesystem.md index 07d247b..83418a0 100644 --- a/content/fr/2.general/5.linux/2.filesystem.md +++ b/content/fr/2.general/5.linux/2.filesystem.md @@ -6,11 +6,11 @@ description: Comment le système de fichiers de Debian est organisé, ce que con :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} -Windows donne à chaque disque sa propre lettre. Linux non : il y a exactement un arbre, il commence à `/`, et tout le reste s'y accroche, y compris vos autres disques. Un deuxième disque n'est pas `D:`, il est *monté* sur un dossier de l'arbre, `/mnt/data` par exemple, et à partir de là il ressemble à n'importe quel autre dossier. Déroutant au début, très pratique ensuite, puisqu'un programme n'a jamais à savoir sur quel disque physique il écrit. +Windows donne à chaque disque sa propre lettre. Linux non : il y a un arbre, il commence à `/`, la racine (root), et tout le reste s'y accroche, y compris vos autres disques. Un deuxième disque n'est pas `D:`, il est *monté* sur un dossier de l'arbre, `/mnt/data` par exemple, et à partir de là il ressemble à n'importe quel autre dossier. Cela peut paraître éroutant au début, mais très pratique ensuite, puisqu'un programme n'a jamais à savoir sur quel disque physique il écrit. -## L'arbre +## L'arborescence -Cet arbre n'a rien d'arbitraire non plus. Toutes les installations de Debian ont les mêmes dossiers aux mêmes endroits, et c'est pour ça qu'un tutoriel écrit pour le serveur de quelqu'un d'autre s'applique au vôtre. +Cet arborescence n'a rien d'arbitraire. Toutes les installations de Debian sont organisées de la même manière, et c'est pour ça qu'un tutoriel écrit pour le serveur de quelqu'un d'autre s'applique également au vôtre. | Dossier | Ce qu'il contient | | --- | --- | @@ -24,7 +24,7 @@ Cet arbre n'a rien d'arbitraire non plus. Toutes les installations de Debian ont | `/mnt` et `/media` | Là où sont montés les disques supplémentaires, `/media` pour les amovibles | | `/boot` | Le noyau et le chargeur de démarrage, sur une petite partition à part | | `/dev` | Votre matériel, exposé sous forme de fichiers (`/dev/sda` est un disque) | -| `/proc` et `/sys` | L'état vivant du noyau, inventé à la volée, pas de vrais fichiers | +| `/proc` et `/sys` | L'état vivant du noyau, changeant à la volée, pas de vrais fichiers | ## Un dossier n'est pas une partition @@ -46,13 +46,13 @@ sdb 8:16 0 3.6T 0 disk ## Quelques habitudes à prendre -- **Donnez un seul foyer à vos stacks Docker, et gardez-les là.** `/srv` est le dossier que la norme réserve aux données servies par la machine, ce qui en fait l'endroit le plus propre pour les fichiers compose et leurs bind mounts. [Serveex](/serveex/introduction) met tout dans `/srv/docker`, un dossier par stack. Ce qui compte, c'est de choisir un endroit et de s'y tenir, plutôt que d'en éparpiller la moitié dans votre dossier personnel. -- **Vos fichiers à vous vont dans votre home.** Les scripts dans `~/bin`, les notes, les téléchargements, tout ce qui est personnel. `/root` est le dossier du compte root, pas un endroit commode où déposer des choses. +- **Ne travaillez que dans un seul dossier pour l'usage de votre serveur.** `/srv` est le dossier que la norme réserve aux données servies par la machine, ce qui en fait l'endroit le plus propre pour mettre les sous dossiers et fichiers dont vous avez besoin de stocker sur votre serveur. Par exemple pour Docker, [Serveex](/serveex/introduction) met tout dans `/srv/docker`, un dossier par stack. Ce qui compte, c'est de choisir un endroit et de s'y tenir, plutôt que d'en éparpiller la moitié dans votre dossier personnel ou pire, dans les dossiers de Debian et directement à la racine. +- **Vos fichiers à vous, propre à un utilisateur, vont dans votre home.** Les scripts dans `~/bin`, les notes, les téléchargements, tout ce qui est personnel. `/root` est le dossier du compte root, pas un endroit commode où déposer des choses. - **Ne modifiez jamais quoi que ce soit sous `/usr` ou `/bin` à la main.** `apt` en est propriétaire, et vos changements disparaîtront à la prochaine mise à jour. Ce que vous avez le droit de configurer vit dans `/etc`. -- **Dans `/etc`, préférez un fichier additionnel plutôt que de modifier le principal.** Beaucoup de services lisent tous les `.conf` d'un dossier `quelquechose.d/` posé à côté de leur config principale, `/etc/ssh/sshd_config.d/` par exemple. Votre fichier survit alors à une mise à jour de paquet qui réécrirait l'original. +- **Dans `/etc`, préférez créer un fichier additionnel plutôt que de modifier le principal.** Beaucoup de services lisent tous les `.conf` d'un dossier `quelquechose.d/` posé à côté de leur config principale, `/etc/ssh/sshd_config.d/` par exemple. Votre fichier survit alors à une mise à jour de paquet qui réécrirait l'original. - **Montez les disques de données par UUID, pas par `/dev/sdb`.** Les lettres de périphérique sont attribuées dans l'ordre où le noyau trouve les disques, elles peuvent donc s'échanger après un redémarrage ou l'ajout d'un disque. `lsblk -f` vous donne l'UUID à mettre dans `/etc/fstab`. - **Gardez un œil sur `/var`.** Les images Docker, les logs des conteneurs et ceux du système s'y accumulent tous, sur la même partition que le reste. `du -sh /var/lib/docker` vous dit ce que pèsent les conteneurs, `df -h` s'il faut s'inquiéter. -- **Ne créez pas vos fichiers avec `sudo` quand ce n'est pas nécessaire.** Un fichier créé en root dans votre home reste la propriété de root, et vous vous battrez avec des erreurs de permissions dessus pendant des semaines. +- **Ne créez pas vos fichiers avec `sudo` lorque ce n'est pas nécessaire.** Un fichier créé en root dans votre home reste la propriété de root, et vous vous battrez avec des erreurs de permissions dessus pendant des semaines. ::note{to="/general/linux/cli-basics"} Tout ce qui précède suppose que vous savez déjà vous déplacer dans un terminal. Si `cd`, `ls` et `sudo` ne vous parlent pas encore, commencez par les **bases de la ligne de commande**. diff --git a/content/fr/2.general/5.linux/3.handy-tools.md b/content/fr/2.general/5.linux/3.handy-tools.md index 2d48548..addf4e1 100644 --- a/content/fr/2.general/5.linux/3.handy-tools.md +++ b/content/fr/2.general/5.linux/3.handy-tools.md @@ -1,6 +1,6 @@ --- title: Outils CLI pratiques -description: Une poignée d'outils en ligne de commande à installer sur un serveur maison, ce que chacun remplace, et les étapes pour les installer et s'en servir. +description: Une poignée d'outils en ligne de commande à installer sur un serveur maison, ce que chacun fait ou remplace, et les étapes pour les installer et s'en servir. --- @@ -8,13 +8,23 @@ description: Une poignée d'outils en ligne de commande à installer sur un serv Une installation minimale de Debian embarque le strict minimum, ce qui veut dire que les outils fournis sont ceux de 1995. Ils fonctionnent, mais lire la sortie de `df` ou chercher ce qui a rempli un disque avec `du` est inutilement pénible quand de meilleures versions existent et ne coûtent rien à installer. -Tout ce qui suit sauf le dernier vient directement des dépôts Debian, il n'y a donc aucune source tierce à qui faire confiance et `apt` les maintient à jour en même temps que le reste du système. +La plupart des applications listées ici viennent directement des dépôts Debian, il n'y a donc aucune source tierce à qui faire confiance et `apt` les maintient à jour en même temps que le reste du système. ::note{to="/general/linux/cli-basics"} Toutes les commandes ici se tapent dans un terminal via SSH. Si `sudo`, `apt` et `cd` ne vous parlent pas encore, commencez par les **bases de la ligne de commande**. :: -## La version courte + +## La version pressée + +Une seule ligne de commande pour installer tous ceux qui viennent des dépots de Debian, et chaque section ci-dessous vous explique ce que vous venez d'installer. + +```bash [Terminal] +sudo apt update +sudo apt install btop duf ncdu tealdeer ufw +``` + +## Le sommaire | Outil | Remplace | À quoi ça sert | | --- | --- | --- | @@ -25,18 +35,9 @@ Toutes les commandes ici se tapent dans un terminal via SSH. Si `sudo`, `apt` et | `lazydocker` | `docker ps` et compagnie | Gérer les conteneurs en SSH | | `ufw` | `iptables` brut | Un pare-feu réellement lisible | -## La version pressée - -Une seule ligne installe tous ceux qui sont empaquetés, et chaque section ci-dessous explique ce que vous venez d'obtenir. - -```bash [Terminal] -sudo apt update -sudo apt install btop duf ncdu tealdeer ufw -``` - ## `btop`, surveiller ce que fait la machine -Le remplaçant moderne de `top` et `htop` : CPU, RAM, disques, réseau et processus sur un seul écran, avec des graphiques, des couleurs et une souris qui marche. C'est ce que vous ouvrez quand quelque chose semble lent. +Le remplaçant moderne de `top` et `htop` : CPU, RAM, disques, réseau et processus sur un seul écran, avec des graphiques, des couleurs et une souris qui marche. C'est ce que vous ouvrez quand quelque chose semble lent, l'équivalent du gestionnaire de tache sur Windows ou du moniteur d'activité sur Mac. ::steps{level="4"} #### L'installer @@ -53,14 +54,14 @@ sudo btop ![btop affichant le CPU, la mémoire, les disques, le réseau et les processus](/img/global/linux/btop.png) -Cliquez sur un processus pour le sélectionner, :kbd{value="Esc"} ouvre le menu, :kbd{value="Q"} quitte. Les touches `+` et `-` replient et déplient les panneaux si l'écran paraît chargé. +Cliquez sur un processus pour le sélectionner, :kbd{value="Esc"} ouvre le menu, :kbd{value="Q"} quitte. Les touches `+` et `-` replient et déplient les onglets si l'écran paraît chargé. #### Terminé ! :: ## `duf`, l'espace disque qui se lit comme un tableau -`df -h` affiche tous les loop devices que Docker a créés un jour et vous laisse plisser les yeux sur les colonnes. `duf` montre les mêmes informations groupées, alignées et colorées, avec une barre d'utilisation par système de fichiers. +`df -h` affiche tous tous vos dossiers/fichiers et vous laisse vous exploser les yeux sur les colonnes, les chiffres, les tailles. `duf` montre les mêmes informations groupées, alignées et colorées, avec une barre d'utilisation par système de fichiers. ::steps{level="4"} #### L'installer @@ -102,7 +103,7 @@ sudo ncdu /srv/docker Les flèches pour se déplacer, :kbd{value="Enter"} pour ouvrir un dossier, :kbd{value="D"} pour supprimer l'élément sélectionné, :kbd{value="Q"} pour quitter. Sur un gros disque le premier scan prend un moment, il lit tout. ::warning -:kbd{value="D"} supprime immédiatement, avec une seule confirmation et sans corbeille. Lancez `ncdu` sans `sudo` quand vous ne faites que regarder, comme ça une touche tapée de travers ne peut rien toucher de ce qui appartient au système. +:kbd{value="D"} supprime immédiatement, avec une seule confirmation et sans corbeille. Lancez `ncdu` sans `sudo` quand vous ne faites que regarder, comme ça une touche tapée de travers ne vous fera pas vous rouler en boule en pleurant. :: #### Terminé ! @@ -125,7 +126,7 @@ sudo apt install tealdeer tldr --update ``` -Les exemples sont récupérés une fois et stockés en local, la commande fonctionne donc hors ligne ensuite. À relancer tous les quelques mois. +Les exemples sont récupérés une fois et stockés en local. La commande fonctionne donc hors ligne ensuite. À relancer tous les quelques mois. #### Lui demander quelque chose @@ -176,9 +177,9 @@ Il a besoin d'accéder au socket Docker, d'où le `sudo` à moins que votre util | Touche | Ce qu'elle fait | | --- | --- | -| `1` à `6` | Aller à un panneau : projets, services, conteneurs, images, volumes, réseaux | -| Flèches | Se déplacer dans le panneau, la partie droite suit la sélection | -| :kbd{value="Enter"} | Passer sur le panneau principal à droite, :kbd{value="Esc"} revient | +| `1` à `6` | Aller à un onglet : projets, services, conteneurs, images, volumes, réseaux | +| Flèches | Se déplacer dans le onglet, la partie droite suit la sélection | +| :kbd{value="Enter"} | Passer sur le onglet principal à droite, :kbd{value="Esc"} revient | | `x` | Ouvrir le menu de tout ce que vous pouvez faire avec la sélection | | `m` | Suivre les logs | | `s` / `r` / `p` | Arrêter, redémarrer, mettre en pause le conteneur sélectionné | @@ -186,7 +187,7 @@ Il a besoin d'accéder au socket Docker, d'où le `sudo` à moins que votre util | `d` | Le supprimer | | `b` | Commandes groupées, dont le nettoyage des images et des volumes | | `/` | Filtrer la liste | -| `+` et `_` | Agrandir ou réduire les panneaux | +| `+` et `_` | Agrandir ou réduire les onglets | | `q` | Quitter | La casse compte : `E` ouvre un shell dans le conteneur, `e` masque ceux qui sont arrêtés. @@ -194,7 +195,7 @@ La casse compte : `E` ouvre un shell dans le conteneur, `e` masque ceux qui sont La [liste complète](https://github.com/jesseduffield/lazydocker/blob/master/docs/keybindings/Keybindings_en.md) se trouve dans la documentation du projet. ::note -Être en dehors d'`apt` veut aussi dire qu'il ne sera pas mis à jour par `apt full-upgrade`. Refaites ces étapes quand vous voudrez une version plus récente. +N'etant pas un package de Debian signifie qu'il ne sera pas mis à jour par `apt full-upgrade`. Ré-éxecutez ces étapes lorsque vous voudrez une version plus récente. :: #### Terminé ! @@ -202,7 +203,7 @@ La [liste complète](https://github.com/jesseduffield/lazydocker/blob/master/doc ## `ufw`, un pare-feu réellement lisible -Le pare-feu de Debian (`iptables`/`nftables` sous le capot) est puissant et illisible tel quel. `ufw`, *uncomplicated firewall*, est une fine couche par-dessus qui le transforme en règles courtes et compréhensibles : tout bloquer par défaut et n'ouvrir que ce que vous exposez réellement. +Le pare-feu de Debian (`iptables`/`nftables` sous le capot) est puissant mais illisible tel quel. `ufw`, *uncomplicated firewall*, est une surcouche qui le transforme en règles courtes et compréhensibles : tout bloquer par défaut et n'ouvrir que ce que vous exposez réellement. ::steps{level="4"} #### L'installer diff --git a/content/fr/3.serveex/2.core/1.installation.md b/content/fr/3.serveex/2.core/1.installation.md index 060899e..68f0dba 100644 --- a/content/fr/3.serveex/2.core/1.installation.md +++ b/content/fr/3.serveex/2.core/1.installation.md @@ -6,52 +6,52 @@ description: Guide pas à pas pour installer Debian 13 sur un serveur maison et :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} -[Debian 13 « Trixie »](https://www.debian.org/) est la base sur laquelle repose tout ce guide. C'est un Linux simple, ennuyeux et stable, et pour un homelab c'est précisément l'intérêt : les versions des paquets restent figées pendant toute la durée de vie de la version, les correctifs de sécurité continuent d'arriver pendant environ cinq ans en comptant la LTS, si bien que la machine tourne des années au lieu de demander une reconstruction tous les quelques mois. +[Debian 13 « Trixie »](https://www.debian.org/) est le fondement sur lequel repose tout ce guide. C'est une distribution Linux simple, stable et sans surprise. Et pour un homelab c'est précisément l'intérêt : les versions des paquets restent figées pendant toute la durée de vie de la version, les correctifs de sécurité continuent d'arriver pendant environ cinq ans en comptant la LTS, si bien que la machine tourne des années au lieu d'exiger d'être réinstallée tous les quelques mois. -L'autre raison, c'est qu'il ne vous gêne pas. Les systèmes clés en main comme Unraid, TrueNAS ou le DSM de Synology posent leur propre couche par-dessus Docker, et le jour où vous avez besoin de quelque chose que leur interface n'expose pas, vous êtes coincé à bricoler autour. Debian n'est qu'un serveur : vous installez ce que vous voulez, où vous voulez, et rien n'est caché derrière l'interface de quelqu'un d'autre. Ça se trouve être aussi ce que la plupart des projets auto-hébergés visent en premier, leurs docs vous donnent donc des commandes `apt` qui fonctionnent telles quelles, Docker publie un dépôt Debian officiel, et n'importe quel message d'erreur collé dans un moteur de recherche a déjà des années de réponses derrière lui. Une installation minimale est assez légère pour laisser presque toute la RAM et le CPU d'un petit N100 à vos conteneurs. +L'autre raison, c'est qu'il ne vous donnera aucune limite, il ne vous enfermera jamais. Les systèmes clés en main comme Unraid, TrueNAS ou le DSM de Synology posent leur propre couche par-dessus, et le jour où vous avez besoin de quelque chose que leur interface n'expose pas, vous serez coincé ou devrez bricoler autour. Debian n'est qu'un serveur : vous installez ce que vous voulez, où vous voulez, et rien n'est caché derrière l'interface de quelqu'un d'autre. C'est exactement ce que la plupart des projets auto-hébergés visent en premier, leurs docs vous donnent donc des commandes `apt` qui fonctionnent telles quelles, et n'importe quel message d'erreur collé dans un moteur de recherche a déjà des années de réponses derrière lui. Une installation minimale est assez légère pour laisser la quasi intégralité de la RAM et du CPU à tous les délires que vous installerez dessus. ![picture](/img/serveex/server.svg) ## Installation ::note{icon="" to="/general/linux/cli-basics"} -📋 __Prérequis :__ tout ce qui suit se passe dans un terminal, vous devriez donc être à l'aise avec les bases : se déplacer avec `cd`, lister avec `ls`, modifier un fichier avec `nano`, et lire ce qu'une commande vous dit quand elle échoue. Si tout ça est nouveau pour vous, commencez par les **bases de la ligne de commande** et revenez ensuite. +📋 __Prérequis :__ tout ce qui suit se déroule dans un terminal, vous devez donc être à l'aise avec les bases : se déplacer avec `cd`, lister avec `ls`, modifier un fichier avec `nano`, et lire ce qu'une commande vous dit quand elle échoue. Si tout ceci est nouveau pour vous, commencez par les **bases de la ligne de commande** et revenez ensuite. :: ### Réglages du BIOS -Appuyez sur :kbd{value="Del"} ou :kbd{value="F2"} juste après l'allumage pour ouvrir le setup du firmware (l'écran de démarrage indique généralement quelle touche c'est). La plupart des machines ont aussi un menu de démarrage ponctuel, souvent :kbd{value="F12"}, :kbd{value="F11"} ou :kbd{value="F8"}, qui permet de démarrer sur la clé USB une seule fois sans toucher à l'ordre de démarrage permanent. Debian documente la procédure générale dans son [manuel d'installation](https://www.debian.org/releases/forky/amd64/ch03s06.fr.html), et voici ce qui compte avant d'installer : +Appuyez sur :kbd{value="Del"} ou :kbd{value="F2"} juste après l'allumage de votre machine afin d'ouvrir le setup du BIOS (l'écran de démarrage indique généralement quelle touche c'est). La plupart des machines ont aussi un menu de démarrage ponctuel, souvent :kbd{value="F12"}, :kbd{value="F11"} ou :kbd{value="F8"}, qui permet de démarrer sur la clé USB une seule fois sans toucher à l'ordre de démarrage permanent. Debian documente la procédure générale dans son [manuel d'installation](https://www.debian.org/releases/forky/amd64/ch03s06.fr.html), et voici ce qui compte avant d'installer : -- **Mode de démarrage.** Préférez l'UEFI natif. L'important est que l'installateur démarre dans le *même* mode que celui dans lequel vous comptez faire tourner le serveur, parce que l'UEFI utilise un partitionnement GPT alors que le BIOS legacy (et l'UEFI en mode CSM) utilise une table de partitions DOS, et une incohérence installe le chargeur de démarrage au mauvais endroit. Attention sur les machines multiboot : le mode de démarrage par défaut des périphériques amovibles n'est souvent pas celui utilisé pour les disques internes. +- **Mode de démarrage.** Préférez l'UEFI natif. Il est nécessaire que l'installateur démarre dans le *même* mode que celui dans lequel vous comptez faire tourner le serveur, parce que l'UEFI utilise un partitionnement GPT alors que le BIOS legacy (et l'UEFI en mode CSM) utilise une table de partitions DOS. Une incohérence installe le bootloader au mauvais endroit. Attention sur les machines multiboot : le mode de démarrage par défaut des périphériques amovibles n'est souvent pas celui utilisé pour les disques internes. - **Le Secure Boot** peut rester activé. Debian fournit un chargeur shim signé par Microsoft, il démarre donc très bien tel quel. - **Le mode SATA** doit être `AHCI`, pas `RAID` / Intel RST, sinon Linux risque de ne pas voir vos disques du tout. Changer ce réglage après avoir installé un autre OS sur le même disque empêchera cet OS de démarrer, réglez-le donc avant de commencer. -- **La restauration après coupure de courant**, pour que le serveur revienne tout seul après une coupure au lieu d'attendre que quelqu'un appuie sur le bouton. Le réglage se trouve dans *Power Management*, *APM Configuration* ou *Advanced* selon la carte, sous un nom du genre *Restore on AC Power Loss*, *AC Power Recovery*, *After Power Failure*, *AC Back Function* ou *S0 state*. Mettez-le sur **Power On**, pas sur *Last State*, qui laisserait la machine éteinte si la coupure l'a surprise pendant un arrêt. -- **Le Wake on LAN**, si vous voulez pouvoir allumer la machine à distance plutôt que d'aller la voir. Même menu *Power Management* : mettez *Wake on LAN*, *Power On By PCI-E/PCI* ou *Resume by PCI-E Device* sur **Enabled**, puis désactivez *ErP* / *EuP Ready* et *Deep Sleep* / *Deep Sx*, qui coupent l'alimentation de la carte réseau une fois la machine éteinte et la rendraient sourde au magic packet. Debian doit aussi dire à la carte d'écouter, voir [Pour aller plus loin](#pour-aller-plus-loin). +- **La restauration après coupure de courant**, pour que le serveur redémarre tout seul après une coupure au lieu d'attendre que quelqu'un appuie sur le bouton. Le réglage se trouve dans *Power Management*, *APM Configuration* ou *Advanced* selon la carte, sous un nom du genre *Restore on AC Power Loss*, *AC Power Recovery*, *After Power Failure*, *AC Back Function* ou *S0 state*. Mettez-le sur **Power On**, pas sur *Last State*, qui laisserait la machine éteinte si la coupure l'a surprise pendant un arrêt. +- **Le Wake on LAN**, si vous voulez pouvoir allumer la machine à distance plutôt que d'appuyer physiquement sur le bouton. Même menu *Power Management* : mettez *Wake on LAN*, *Power On By PCI-E/PCI* ou *Resume by PCI-E Device* sur **Enabled**, puis désactivez *ErP* / *EuP Ready* et *Deep Sleep* / *Deep Sx*, qui coupent l'alimentation de la carte réseau une fois la machine éteinte et la rendraient sourde au magic packet. Debian doit aussi dire à la carte d'écouter, voir [Pour aller plus loin](#pour-aller-plus-loin). - **La virtualisation** (`VT-x` / `AMD-V`, plus `VT-d` pour le passthrough) ne coûte rien à activer maintenant et évite un aller-retour dans le BIOS le jour où vous voudrez faire tourner une VM. Docker lui-même n'en a pas besoin sous Linux. ::note Si vous êtes en dual boot avec Windows, désactivez son *démarrage rapide* : il laisse le système de fichiers dans un état que Linux peut corrompre, et Windows Update aime bien le réactiver en douce. :: -### Télécharger l'ISO et l'écrire sur une clé USB +### Télécharger l'ISO et créer clé USB Bootable ::steps{level="4"} #### Télécharger l'image netinst Récupérez l'image **netinst** `amd64` sur [debian.org](https://www.debian.org/download.fr.html). Elle fait environ 700 Mo et récupère le reste des paquets sur le réseau pendant l'installation, ce qui est exactement ce qu'on veut sur un serveur branché en ethernet : vous obtenez des paquets à jour au lieu d'installer depuis un instantané vieux de plusieurs mois puis de tout mettre à jour derrière. Les images DVD complètes n'ont de sens que si la machine n'a pas de réseau pendant l'installation. -#### L'écrire avec Rufus +#### Créer une clée bootable avec Rufus -Sous Windows, écrivez-la avec [Rufus](https://rufus.ie/) (portable, aucune installation nécessaire). Branchez une clé USB de 2 Go ou plus, en gardant en tête qu'**elle sera entièrement effacée**, puis : +Sous Windows, utilisez [Rufus](https://rufus.ie/) (portable, aucune installation nécessaire). Branchez une clé USB de 2 Go ou plus, en gardant en tête qu'**elle sera entièrement effacée**, puis : -- **Périphérique** : votre clé USB. Vérifiez la capacité deux fois, Rufus écrit volontiers sur le mauvais disque si vous le laissez faire. +- **Périphérique** : votre clé USB. Vérifiez la capacité deux fois, Sinon Rufus écrira sans rechigner sur le mauvais disque si vous le laissez faire. - **Type de démarrage** : `SÉLECTION`, puis choisissez l'ISO Debian que vous venez de télécharger. - **Schéma de partition** : il doit correspondre au mode de démarrage réglé dans le BIOS plus haut. `GPT` pour l'UEFI, `MBR` uniquement si vous restez en legacy/CSM. Le champ système de destination suit automatiquement. - Laissez les options de formatage par défaut, puis cliquez sur `DÉMARRER`. Si Rufus demande comment écrire l'image, gardez le *mode image ISO* recommandé. ![Rufus configuré pour écrire l'ISO Debian](/img/serveex/install/rufus.png) -_Capture issue de [ce guide de clé USB bootable sur DEV Community](https://dev.to/devops2808/how-to-create-bootable-usb-installer-for-debian-12-4f66)._ +_Capture issue de [DEV Community](https://dev.to/devops2808/how-to-create-bootable-usb-installer-for-debian-12-4f66)._ L'écriture prend quelques minutes. @@ -67,7 +67,7 @@ Démarrez sur la clé USB (menu de démarrage ponctuel vu dans la section BIOS) ::steps{level="4"} #### Langue, pays, clavier -Rien de particulier. La disposition du clavier est celle sur laquelle vous tapez physiquement, ce qui est facile à rater si vous avez choisi l'anglais mais tapez en AZERTY. +Rien de particulier. La disposition du clavier est celle sur laquelle vous tapez physiquement, ce qui est facile à rater si vous avez choisi l'anglais mais tapez en AZERTY, alors soyez vigilant. #### Réseau et nom de machine @@ -121,21 +121,21 @@ Installez-le sur le disque que vous venez de partitionner (`/dev/sda`, `/dev/nvm :: ::note -Avant de redémarrer, prenez une minute pour donner au serveur une **adresse fixe** dans votre box. Tout ce qui suit pointe dessus : vos raccourcis SSH, le reverse proxy, les favoris vers chaque service. Sur un simple bail DHCP cette adresse finit par changer toute seule et tout casse d'un coup. +Avant de redémarrer, prenez une minute pour donner au serveur une **adresse fixe** dans votre routeur. Tout ce qui suit pointe dessus : vos raccourcis SSH, le reverse proxy, les favoris vers chaque service. Si cette adresse n'est pas fixée, lorsqu'elle changera elle cassera tout. -La bonne méthode est une réservation DHCP, qui lie l'adresse à l'adresse MAC du serveur tout en laissant la box gérer l'adressage. Voir [NAT & DHCP](/general/networking/nat) pour savoir où la trouver dans l'interface de votre box. +La bonne méthode est une réservation DHCP, qui lie l'adresse à l'adresse MAC du serveur tout en laissant la box gérer l'adressage. Voir [NAT & DHCP](/general/networking/nat). :: -_Captures de l'installateur issues du [guide de serveur Debian minimal de howtoforge.com](https://www.howtoforge.com/tutorial/debian-minimal-server/)._ +_Captures de l'installateur issues du [howtoforge.com](https://www.howtoforge.com/tutorial/debian-minimal-server/)._ ### Se connecter en SSH -Le serveur n'a plus d'écran à partir de maintenant, tout passe par SSH. Ces étapes vous font entrer, puis s'assurent que personne d'autre ne le peut. +Le serveur n'a plus besoin d'écran ni de clavier à partir de maintenant, tout passe par SSH. Ces étapes vous apprennent à vous logger sur votre serveur, puis s'assurent que personne d'autre ne le peut. ::steps{level="4"} #### Se connecter depuis une autre machine -Retirez la clé USB et redémarrez. L'adresse à utiliser est celle que vous avez réservée dans la box juste avant, `192.168.1.42` dans les exemples ci-dessous. +Retirez la clé USB et redémarrez. L'adresse à utiliser est celle que vous avez fixée dans la box juste avant, `192.168.1.42` dans les exemples ci-dessous. Tout ce qui suit se passe depuis une autre machine de votre réseau local, pas sur le serveur. Windows et macOS embarquent tous les deux un client SSH, il n'y a donc rien à installer : ouvrez **PowerShell** sous Windows, ou **Terminal** sous macOS, et tapez la même commande. @@ -143,23 +143,24 @@ Tout ce qui suit se passe depuis une autre machine de votre réseau local, pas s ssh utilisateur@192.168.1.42 ``` -La première connexion vous demande de confirmer l'empreinte du serveur, c'est normal, répondez `yes`. Elle est stockée dans `~/.ssh/known_hosts` et la question ne reviendra pas. +La première connexion vous demande de confirmer l'empreinte du serveur, c'est normal, répondez `yes`. Elle est stockée dans `~/.ssh/known_hosts` et la question ne reviendra plus. ::note -Si la connexion est refusée, la case `serveur SSH` a probablement été laissée décochée à l'écran tasksel. Rebranchez un écran, connectez-vous en local et lancez `sudo apt install openssh-server`. +Si la connexion est refusée, la case `serveur SSH` a probablement été laissée décochée à l'écran tasksel. Rebranchez un écran, connectez-vous en local en tapant votre nom d'utilisateur puis votre mot de passe, et lancez `sudo apt install openssh-server`. N'oubliez pas de vous dé-logger en tapant `exit`. :: -L'écran et le clavier ne servent plus à rien. Débranchez-les, la machine peut aller vivre dans son coin. -#### Se connecter par clé plutôt que par mot de passe +#### Se connecter avec une clé SSH plutôt que par mot de passe -Les mots de passe en SSH se font attaquer par force brute dès que le port est joignable depuis l'extérieur, et en taper un à chaque connexion devient vite pénible. Toujours sur l'autre machine, générez une clé si vous n'en avez pas déjà une : +Les mots de passe en SSH sont vulnérables aux attaques par brute force, et en taper un à chaque connexion devient vite pénible. Les clés SSH permettent d'autoriser une machine à se logger sans mot de passe à votre serveur. + +Toujours sur l'autre machine, générez une clé. ```bash [Terminal] ssh-keygen -t ed25519 ``` -Appuyez sur :kbd{value="Enter"} pour accepter le chemin par défaut, et mettez une passphrase (elle protège le fichier de clé lui-même, votre système la retiendra après le premier déverrouillage). Copiez ensuite la moitié publique sur le serveur. Windows n'a pas de `ssh-copy-id`, il pousse donc la clé à travers la connexion : +Appuyez sur :kbd{value="Enter"} pour accepter le chemin par défaut, et mettez une passphrase (elle protège le fichier de clé lui-même, votre système la retiendra après le premier déverrouillage). Il s'agit ensuite de transmettre la clée publique à votre serveur. A noter que Windows n'a pas de `ssh-copy-id`, nous pousserons donc la clé manuellement dans ce cas : ::code-group ```bash [macOS] @@ -175,7 +176,7 @@ ssh-copy-id utilisateur@192.168.1.42 ``` :: -Il demande votre mot de passe une dernière fois. Reconnectez-vous pour vérifier qu'il ne le demande plus : +Votre serveur demande votre mot de passe une dernière fois. Reconnectez-vous pour vérifier qu'il ne le demande plus : ```bash [Terminal] ssh utilisateur@192.168.1.42 @@ -183,7 +184,7 @@ ssh utilisateur@192.168.1.42 #### Refermer la porte derrière vous -Une fois la clé fonctionnelle, coupez les connexions par mot de passe et l'accès root direct. Sur le serveur : +Une fois la clé fonctionnelle, coupez les connexions par mot de passe (et l'accès root direct si root existe). Sur le serveur : ```bash [Terminal] sudo nano /etc/ssh/sshd_config.d/hardening.conf @@ -202,11 +203,11 @@ sudo systemctl restart ssh ``` ::warning -Gardez votre session SSH actuelle ouverte pendant le test. Ouvrez un **second** terminal et reconnectez-vous : si la clé ne fonctionne plus, la session restée ouverte est votre porte de secours pour corriger la configuration. Fermez-la avant d'avoir vérifié et une faute de frappe vous enferme dehors de votre propre serveur, avec l'écran et le clavier comme seul recours. +Gardez votre session SSH actuelle ouverte pendant le test. Ouvrez un **second** terminal et reconnectez-vous : si la clé ne fonctionne plus, la session restée ouverte est votre porte de secours pour corriger la configuration. Si vous la fermez avant d'avoir vérifié et une faute de frappe vous enferme en dehors de votre propre serveur, avec l'écran et le clavier comme seul recours. :: ::note -La porte est maintenant fermée pour toutes les autres machines aussi, y compris la prochaine depuis laquelle vous voudrez vous connecter. Pour en laisser entrer une nouvelle, remettez `PasswordAuthentication yes` dans `hardening.conf`, redémarrez SSH, refaites les deux étapes de clé ci-dessus depuis cette machine, puis remettez `no` et redémarrez SSH une dernière fois. +La porte est maintenant fermée pour toutes les autres machines aussi, y compris la prochaine depuis laquelle vous voudrez vous connecter. Pour en enregistrer une nouvelle, remettez `PasswordAuthentication yes` dans `hardening.conf`, redémarrez SSH, refaites les deux étapes de clé ci-dessus depuis cette machine, puis remettez `no` et redémarrez SSH une dernière fois. :: #### Terminé ! @@ -216,7 +217,7 @@ La porte est maintenant fermée pour toutes les autres machines aussi, y compris Une machine qui tourne 24h/24 pour deux heures d'utilisation réelle consomme, fait tourner des ventilateurs et use des disques pour rien. Le Wake on LAN permet de l'éteindre proprement quand vous avez fini et de la rallumer en quelques secondes sans vous déplacer : la carte réseau reste alimentée en veille, à l'écoute d'un broadcast bien précis (le *magic packet*) contenant l'adresse MAC du serveur, et allume la machine dès qu'elle le voit. Pratique pour une cible de sauvegarde dont vous n'avez besoin que la nuit, ou un serveur multimédia que personne ne regarde dans la journée. -Deux conditions avant de commencer : la machine doit être en ethernet filaire, les cartes WiFi ne gèrent presque jamais ça, et le paquet doit être envoyé depuis le même réseau local, puisqu'un broadcast ne traverse pas un routeur. La partie BIOS a été traitée dans [Réglages du BIOS](#réglages-du-bios), voici la partie Debian. +Deux conditions avant de commencer : la machine doit être en ethernet filaire, les cartes WiFi ne gèrent presque jamais ça, et le paquet doit être envoyé depuis le même réseau local, à moins d'utiliser une app spécifique et des règles de redirection via le routeur. La partie BIOS a été traitée dans [Réglages du BIOS](#réglages-du-bios), voici la partie Debian. ::steps{level="4"} #### Trouver l'interface et son adresse MAC diff --git a/content/fr/3.serveex/2.core/2.docker.md b/content/fr/3.serveex/2.core/2.docker.md index 46199c9..a296a79 100644 --- a/content/fr/3.serveex/2.core/2.docker.md +++ b/content/fr/3.serveex/2.core/2.docker.md @@ -51,7 +51,7 @@ sudo mkdir /srv/docker :: ## Installer [Dockge](https://github.com/louislam/dockge) pour gérer et déployer les conteneurs -[Dockge](https://github.com/louislam/dockge) est un outil web pour créer, configurer, lancer et gérer des conteneurs Docker. C'est une interface simple et intuitive, plus légère et plus abordable pour un débutant que la ligne de commande ou Portainer. +[Dockge](https://github.com/louislam/dockge) est un outil web permettant de créer, configurer, lancer et gérer des conteneurs pour Docker. C'est une interface simple, intuitive, qui est plus légère et plus facile pour les débutants que d'utiliser docker en CLI ou Portainer. ![picture](/img/serveex/dockge.png) @@ -122,7 +122,7 @@ Plus d'infos sur [Dockge et son utilisation](https://github.com/louislam/dockge) Et voilà ! Docker et un outil pour gérer facilement vos conteneurs sont prêts ! ## [Watchtower](https://watchtower.nickfedor.com/), pour mettre à jour les conteneurs automatiquement -Watchtower est un conteneur qui vérifie les mises à jour et récupère les nouvelles images automatiquement, simplement en ajoutant un label dans les fichiers `compose.yml` de vos conteneurs. +Watchtower est un conteneur qui permet de vérifier les mise à jour et d'installer les nouvelles images sans effort, en ajoutant un simple label dans les fichiers `compose.yml` de vos conteneurs. ### Configuration @@ -186,4 +186,4 @@ Redémarrez ensuite les stacks modifiées. #### Terminé ! :: -Et c'est tout ! Vous avez maintenant une base solide pour commencer à déployer les services que vous voulez ! +Et voilà, vous avez une bonne carcasse pour commencer à installer les services qui vous plaisent ! diff --git a/content/fr/3.serveex/3.security/3.tinyauth.md b/content/fr/3.serveex/3.security/3.tinyauth.md index 8691bed..2f298fa 100644 --- a/content/fr/3.serveex/3.security/3.tinyauth.md +++ b/content/fr/3.serveex/3.security/3.tinyauth.md @@ -6,11 +6,11 @@ description: Installer TinyAuth, un proxy de forward-auth léger, et l'associer :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} -[TinyAuth](https://tinyauth.app) est un petit proxy de forward-auth : une unique page de connexion que Swag peut insérer devant n'importe quelle application avant de laisser passer une requête, en vérifiant si le visiteur est authentifié avant de le rediriger. +[TinyAuth](https://tinyauth.app) est une application qui permet de forcer une authentification avant d'accéder à un servoce : une page de connexion que Swag peut insérer devant n'importe quelle application avant de laisser passer une requête, en vérifiant si le visiteur est authentifié avant de le rediriger. ![tinyauth](/img/serveex/tinyauth.png) -Il gère nativement une simple connexion locale identifiant/mot de passe, c'est ce que nous mettrons en place ici. Il peut aussi déléguer la connexion à un fournisseur OIDC externe comme [Pocket ID](/serveex/security/pocket-id), de sorte que quiconque visite une application protégée s'authentifie avec une passkey via Pocket ID puis est redirigé : installez Pocket ID ensuite et suivez [son tutoriel](/serveex/security/pocket-id#connecting-pocket-id-to-tinyauth) pour relier les deux. +Nativement il gère une simple connexion locale identifiant/mot de passe, c'est ce que nous mettrons en place ici. Il peut aussi déléguer la connexion à un fournisseur OIDC externe comme [Pocket ID](/serveex/security/pocket-id), de sorte que quiconque visite une application protégée s'authentifie avec une passkey via Pocket ID puis est redirigé : installez Pocket ID ensuite et suivez [son tutoriel](/serveex/security/pocket-id#connecting-pocket-id-to-tinyauth) pour relier les deux. - [Documentation de TinyAuth](https://tinyauth.app/docs) - [TinyAuth sur GitHub](https://github.com/tinyauthapp/tinyauth) diff --git a/content/fr/3.serveex/3.security/4.pocket-id.md b/content/fr/3.serveex/3.security/4.pocket-id.md index 59d43d0..9e2d46b 100644 --- a/content/fr/3.serveex/3.security/4.pocket-id.md +++ b/content/fr/3.serveex/3.security/4.pocket-id.md @@ -6,7 +6,7 @@ description: Installer Pocket ID, un fournisseur OIDC auto-hébergé et léger q :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} -[Pocket ID](https://pocket-id.org) est un fournisseur OIDC (OpenID Connect) minimaliste et auto-hébergé, entièrement construit autour des passkeys : au lieu de gérer des mots de passe, vous et vos utilisateurs vous connectez aux applications compatibles avec une **passkey** (empreinte digitale, reconnaissance faciale, ou clé de sécurité matérielle). Il tourne dans un unique conteneur léger, sans base de données externe à gérer, et fait une seule chose, bien : délivrer des connexions OIDC. +[Pocket ID](https://pocket-id.org) est un fournisseur OIDC (OpenID Connect) minimaliste et auto-hébergé, entièrement construit autour des passkeys : au lieu de gérer des mots de passe, vous et vos utilisateurs vous connectez aux applications compatibles avec une **passkey** (empreinte digitale, reconnaissance faciale, ou clé de sécurité matérielle). Il tourne dans un unique conteneur léger, sans base de données externe à gérer, et fait une seule chose et la fait bien : délivrer des connexions OIDC. ![pocketid](/img/serveex/pocketid.png) diff --git a/content/fr/3.serveex/5.media/1.jellyfin.md b/content/fr/3.serveex/5.media/1.jellyfin.md index 11c835d..b5d48de 100644 --- a/content/fr/3.serveex/5.media/1.jellyfin.md +++ b/content/fr/3.serveex/5.media/1.jellyfin.md @@ -124,7 +124,7 @@ Si vos médias sont stockés sur un disque réseau (un NAS ou un disque dur exte ## Transcodage matériel -Jellyfin réencode la vidéo à la volée dès qu'un client ne peut pas lire un fichier tel quel : la résolution de l'écran de l'appareil est inférieure à celle de la source, sa connexion réseau est trop lente pour le débit du fichier, ou il ne prend pas en charge le codec, le format HDR ou le type de sous-titres du fichier. C'est ce qu'on appelle le **transcodage**. Fait uniquement en logiciel, sur le processeur, c'est lent et cela peut saturer un serveur modeste avec seulement un ou deux flux simultanés. Le **transcodage matériel** délègue ce travail au GPU intégré à votre processeur (Intel QuickSync, sur la plupart du matériel de homelab), qui s'en occupe bien plus vite et laisse le CPU libre pour tout le reste. +Jellyfin réencode la vidéo à la volée dès qu'un client ne peut pas lire un fichier tel quel : la résolution de l'écran de l'appareil est inférieure à celle de la source, sa connexion réseau est trop lente pour le débit du fichier, ou il ne prend pas en charge le codec, le format HDR ou le type de sous-titres du fichier. C'est ce qu'on appelle le **transcodage**. Lorsque le transcodage est logiciel et éxecuté par le CPU, cela prend énormément de ressources et cela peut saturer un serveur modeste avec seulement un ou deux flux simultanés. Le **transcodage matériel** délègue ce travail au GPU intégré à votre processeur (Intel QuickSync, sur la plupart du matériel de homelab), qui s'en occupe bien plus vite et laisse le CPU libre pour tout le reste. Le **tone mapping** est une fonction liée mais distincte : convertir une vidéo HDR (qui a besoin d'un écran HDR compatible pour rendre correctement) en SDR pour qu'elle s'affiche correctement sur un écran, une TV ou un client qui ne gère pas le HDR, au lieu de paraître délavée ou trop sombre. diff --git a/content/fr/3.serveex/91.advanced/1.authentik.md b/content/fr/3.serveex/91.advanced/1.authentik.md index cc8e1c4..dca5884 100644 --- a/content/fr/3.serveex/91.advanced/1.authentik.md +++ b/content/fr/3.serveex/91.advanced/1.authentik.md @@ -8,7 +8,7 @@ description: Installer Authentik comme fournisseur d'identité auto-hébergé, c ::note -C'est une alternative avancée à [TinyAuth](/serveex/security/tinyauth) et [Pocket ID](/serveex/security/pocket-id) : une seule application qui assume à la fois le rôle de proxy forward-auth et de fournisseur OIDC, avec du LDAP, du SAML et des politiques d'accès de type RBAC intégrés (restreindre qui peut atteindre quelle application, pas seulement s'il est connecté), le tout par-dessus sa propre interface d'administration des utilisateurs, groupes et outposts. TinyAuth et Pocket ID restent plus légers et plus simples pour un petit homelab ; Authentik vaut la configuration supplémentaire dès que vous avez besoin d'un contrôle d'accès plus fin ou d'une couverture de protocoles plus large qu'OIDC seul. +Authentik est une alternative avancée à [TinyAuth](/serveex/security/tinyauth) et [Pocket ID](/serveex/security/pocket-id) : une seule application qui assume à la fois le rôle de proxy forward-auth et de fournisseur OIDC, avec du LDAP, du SAML et des politiques d'accès de type RBAC intégrés (restreindre qui peut atteindre quelle application, pas seulement s'il est connecté), le tout par-dessus sa propre interface d'administration des utilisateurs, groupes et outposts. TinyAuth et Pocket ID restent plus légers et plus simples pour un petit homelab ; Authentik devient intéressant dès que vous avez besoin d'un contrôle d'accès plus fin ou d'une couverture de protocoles plus large qu'OIDC seul. :: [Authentik](https://goauthentik.io) est un outil d'authentification unique (SSO) qui permet de se connecter une seule fois à toutes les plateformes compatibles OpenID. Il peut aussi sécuriser l'accès à vos services exposés en s'injectant via SWAG dans les requêtes vers ces services. diff --git a/content/fr/3.serveex/91.advanced/2.arcane.md b/content/fr/3.serveex/91.advanced/2.arcane.md index a202380..8438ef9 100644 --- a/content/fr/3.serveex/91.advanced/2.arcane.md +++ b/content/fr/3.serveex/91.advanced/2.arcane.md @@ -8,7 +8,7 @@ description: Installer Arcane, une interface web moderne de gestion Docker et Co ::note{to="/serveex/core/docker#installer-dockge-pour-gérer-et-déployer-les-conteneurs"} -C'est une alternative avancée à **Dockge** : il peut gérer plusieurs hôtes Docker distants depuis une seule instance, et prend en charge la connexion OIDC nativement plutôt que de dépendre d'un proxy de forward-auth séparé. +Arcane est une alternative avancée à **Dockge** : il peut gérer plusieurs hôtes Docker distants depuis une seule instance, et prend en charge la connexion OIDC nativement plutôt que de dépendre d'un proxy de forward-auth séparé. :: [Arcane](https://github.com/getarcaneapp/arcane) est une interface web auto-hébergée pour gérer les conteneurs, images, volumes et stacks Compose de Docker. @@ -281,7 +281,7 @@ services: ::note -C'est le « mode edge » : l'agent se connecte vers Arcane plutôt que l'inverse, il fonctionne donc derrière un NAT sans rien rediriger sur la box de l'hôte distant. Utiliser l'adresse VPN plutôt qu'un domaine public fait que cette connexion reste sur le tunnel WireGuard même si l'agent est techniquement en mode « edge ». Contrairement au manager ci-dessus, l'agent a besoin du vrai socket Docker monté directement, puisque c'est lui qui exécute réellement les commandes sur cet hôte ; il n'existe pas d'option socket-proxy documentée pour lui. +En « mode edge » : l'agent se connecte vers Arcane plutôt que l'inverse, il fonctionne donc derrière un NAT sans rien rediriger sur la box de l'hôte distant. Utiliser l'adresse VPN plutôt qu'un domaine public fait que cette connexion reste sur le tunnel WireGuard même si l'agent est techniquement en mode « edge ». Contrairement au manager ci-dessus, l'agent a besoin du vrai socket Docker monté directement, puisque c'est lui qui exécute réellement les commandes sur cet hôte ; il n'existe pas d'option socket-proxy documentée pour lui. :: Déployez la stack. diff --git a/content/fr/5.nonsense/1.summary.md b/content/fr/5.nonsense/1.summary.md index 33e6131..1511f31 100644 --- a/content/fr/5.nonsense/1.summary.md +++ b/content/fr/5.nonsense/1.summary.md @@ -7,9 +7,9 @@ navigation: :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} -## Petits scripts et projets annexes +## Scripts et projets annexes -Tout ne rentre pas dans un guide « installez cette application ». Cette section rassemble les petits projets Python et Bash écrits en chemin : des scripts qui automatisent une corvée précise, collent deux applications ensemble, ou grattent là où ça démange. Moins peaufinés que [Serveex](/serveex/introduction), mais souvent plus amusants. +Cette section rassemble mes projets Python et Bash écrits en chemin : des scripts qui automatisent une des usages précis, répond à des besoins particuliers, créés au fil du temps. Vous les trouverez peut-être utiles, les voici en vrac. ### Python diff --git a/content/fr/6.recycled/1.summary.md b/content/fr/6.recycled/1.summary.md index b114812..849309e 100644 --- a/content/fr/6.recycled/1.summary.md +++ b/content/fr/6.recycled/1.summary.md @@ -9,7 +9,7 @@ navigation: :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} ## Le grenier -Tous les articles ne restent pas d'actualité éternellement. Cette section garde deux sortes de restes : des tutoriels pour une installation entièrement remplacée ailleurs sur le site (**Obsolète**), et des tutoriels pour des applications qui restent des choix parfaitement valables, simplement pas ceux que [Serveex](/serveex/introduction) recommande aujourd'hui (**Alternatives**). Rien ici n'est activement maintenu, mais rien ici n'est faux non plus. +Au fil des mois et années, certaines solutions deviennent obsolètes. Soit parce qu'elles ne sont plus maintenues, soit parce qu'elles ont trouvé de meilleurs remplaçants. Cette section les gardes au cas où vous les trouveriez parfaitement valables, même si ce ne sont pas celles que [Serveex](/serveex/introduction) recommande aujourd'hui. Rien ici n'est activement maintenu. ### Obsolète