From 0f070de51a804b7172cc72761b6e6a278306b810 Mon Sep 17 00:00:00 2001 From: Djeex Date: Mon, 7 Sep 2026 20:54:58 +0200 Subject: [PATCH] Fix content audit findings across Serveex, Nonsense and recycled guides Co-Authored-By: Claude Sonnet 5 --- content/en/3.serveex/2.core/4.swag.md | 2 +- content/en/3.serveex/4.monitoring/5.upsnap.md | 23 ++++------ content/en/3.serveex/5.media/2.qbittorrent.md | 8 ++-- content/en/3.serveex/5.media/3.servarr.md | 2 +- .../en/3.serveex/91.advanced/1.authentik.md | 6 +-- .../6.recycled/2.deprecated/2.file-browser.md | 2 +- .../en/6.recycled/3.alternatives/1.plex.md | 2 +- .../3.alternatives/2.qbittorrent-for-plex.md | 8 ++-- .../3.alternatives/3.servarr-for-plex.md | 4 +- .../en/6.recycled/3.alternatives/4.gitea.md | 2 +- content/fr/2.general/3.storage/2.zfs.md | 4 +- content/fr/2.general/5.linux/3.handy-tools.md | 2 +- content/fr/3.serveex/4.monitoring/5.upsnap.md | 23 ++++------ content/fr/3.serveex/5.media/2.qbittorrent.md | 8 ++-- content/fr/3.serveex/5.media/3.servarr.md | 2 +- .../fr/3.serveex/91.advanced/1.authentik.md | 2 +- .../fr/5.nonsense/2.python/2.adguard-cidre.md | 4 +- content/fr/5.nonsense/3.bash/2.luks-backup.md | 42 +++++++++---------- content/fr/5.nonsense/3.bash/3.socat-proxy.md | 4 +- .../6.recycled/2.deprecated/2.file-browser.md | 2 +- .../fr/6.recycled/3.alternatives/1.plex.md | 2 +- .../3.alternatives/2.qbittorrent-for-plex.md | 8 ++-- .../3.alternatives/3.servarr-for-plex.md | 4 +- .../fr/6.recycled/3.alternatives/4.gitea.md | 2 +- content/fr/index.md | 2 +- 25 files changed, 78 insertions(+), 92 deletions(-) diff --git a/content/en/3.serveex/2.core/4.swag.md b/content/en/3.serveex/2.core/4.swag.md index 43657f8..617897d 100644 --- a/content/en/3.serveex/2.core/4.swag.md +++ b/content/en/3.serveex/2.core/4.swag.md @@ -13,7 +13,7 @@ description: Set up SWAG as a reverse proxy with automatic SSL, expose your serv SWAG is only useful for exposing your services to the internet, i.e. accessing them via a public URL like `https://service.mydomain.com`. If you don’t want to expose your services and prefer to always use a VPN to connect remotely, you can go **here instead**. :: -Below is an example exposing Dockge. We will install SWAG along with the dbip mod for geolocation-based blocking, and the dashboard mod for managing swag, fail2ban, and geolocation. +Below is an example exposing Dockge. We will install SWAG along with the dbip mod for geolocation-based blocking, the dashboard mod for managing swag, fail2ban, and geolocation, and the auto-reload mod, which automatically reloads nginx whenever a config file changes, without having to restart the container. **Reverse proxy principle and its application in our case:** diff --git a/content/en/3.serveex/4.monitoring/5.upsnap.md b/content/en/3.serveex/4.monitoring/5.upsnap.md index d097470..9ebba49 100644 --- a/content/en/3.serveex/4.monitoring/5.upsnap.md +++ b/content/en/3.serveex/4.monitoring/5.upsnap.md @@ -101,32 +101,25 @@ We assume you've created a subdomain in your [DNS zone](/general/networking/dns) :: ::steps{level="3"} -### Add UpSnap's network to SWAG +### Make the host reachable from SWAG -Go to Dockge, and edit the SWAG compose by adding the UpSnap network: +UpSnap runs with `network_mode: host` (needed for Wake-on-LAN broadcasts and network scanning to work reliably), so it never joins a Docker network SWAG could attach to like other stacks. Instead, give SWAG a way to reach the host itself: ```yaml [compose.yaml] --- services: swag: container_name: # ... - # ... - networks: # Connects the container to the custom network - # ... - - upsnap # Network name declared in the stack - -networks: # Defines the custom network - # ... - upsnap: # Network name declared in the stack - name: upsnap_default # Actual name of the external network - external: true # Indicates it's an external network + # ... + extra_hosts: + - "host.docker.internal:host-gateway" # resolves to the Docker host's own IP ``` Restart the stack by clicking "deploy" and wait for SWAG to be fully operational. ::note -Here we assume the network name for upsnap is `upsnap_default`. You can check the connection in the SWAG dashboard at `http://yourserverip:81`. +`host-gateway` is a special value Docker resolves to the host machine's IP automatically, so this works regardless of your server's actual address. :: ### Create the subdomain.conf file @@ -184,7 +177,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; - set $upstream_app upsnap; + set $upstream_app host.docker.internal; set $upstream_port 8095; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; @@ -262,7 +255,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; - set $upstream_app upsnap; + set $upstream_app host.docker.internal; set $upstream_port 8095; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; diff --git a/content/en/3.serveex/5.media/2.qbittorrent.md b/content/en/3.serveex/5.media/2.qbittorrent.md index f78a697..9610d74 100644 --- a/content/en/3.serveex/5.media/2.qbittorrent.md +++ b/content/en/3.serveex/5.media/2.qbittorrent.md @@ -47,7 +47,7 @@ tree: If not already done, create the `downloads` folder under `/media`: ```bash [Terminal] -mkdir -P /media/downloads +mkdir -p /media/downloads ``` ### Deploy the stack @@ -88,7 +88,7 @@ services: devices: - /dev/net/tun:/dev/net/tun ports: - - ${UI_PORT}:5695 # Port de la web-ui + - ${UI_PORT}:${UI_PORT} # Port de la web-ui - 8000:8000 # Port de controle de Gluetun cap_add: - NET_ADMIN @@ -321,7 +321,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app gluetun; - set $upstream_port 5555; + set $upstream_port 5695; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; @@ -399,7 +399,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app gluetun; - set $upstream_port 5555; + set $upstream_port 5695; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; diff --git a/content/en/3.serveex/5.media/3.servarr.md b/content/en/3.serveex/5.media/3.servarr.md index c0e222d..db9d6cd 100644 --- a/content/en/3.serveex/5.media/3.servarr.md +++ b/content/en/3.serveex/5.media/3.servarr.md @@ -394,7 +394,7 @@ Seerr has no built-in two-factor authentication. Only expose it if you're using ::note -We assume you have the subdomain `films.mydomain.com` with a `CNAME` pointing to `films.fr` in your [DNS zone](/general/networking/dns). And that [unless you’re using Cloudflare Zero Trust](/serveex/security/cloudflare), port `443` on your router is forwarded to port `443` on your server via [NAT rules](/general/networking/nat). +We assume you have the subdomain `films.mydomain.com` with a `CNAME` pointing to `mydomain.com` in your [DNS zone](/general/networking/dns). And that [unless you’re using Cloudflare Zero Trust](/serveex/security/cloudflare), port `443` on your router is forwarded to port `443` on your server via [NAT rules](/general/networking/nat). :: ::steps{level="3"} diff --git a/content/en/3.serveex/91.advanced/1.authentik.md b/content/en/3.serveex/91.advanced/1.authentik.md index dbe6786..1585ffc 100644 --- a/content/en/3.serveex/91.advanced/1.authentik.md +++ b/content/en/3.serveex/91.advanced/1.authentik.md @@ -475,7 +475,7 @@ On your remote machine, use [Dockge](/serveex/core/docker/#install-dockge-to-man If you haven’t installed [Dockge](/serveex/core/docker/#install-dockge-to-manage-and-deploy-containers), create a folder `/srv/docker/authentik-outpost`, or directly via command line: ```bash [Terminal] -sudo mkdir -P /srv/docker/authentik-outpost +sudo mkdir -p /srv/docker/authentik-outpost ``` ::tip{icon="" to="/serveex/files/file-browser-quantum"} @@ -492,7 +492,7 @@ Via command line: ```bash [Terminal] sudo nano /srv/docker/authentik-outpost/compose.yaml ``` -Paste the following configuration, updating the version in `{AUTHENTIK_TAG:proxy:2024.2.3}`{lang=properties} to match your Authentik server version. +Paste the following configuration, updating the version in `ghcr.io/goauthentik/proxy:2026.2`{lang=properties} to match your Authentik server version. ```yaml [compose.yaml] --- @@ -500,7 +500,7 @@ version: "3.5" services: authentik_proxy: container_name: authentik-outpost - image: ghcr.io/goauthentik/proxy:2024.2.3 + image: ghcr.io/goauthentik/proxy:2026.2 # Optionally specify which networks the container should be # might be needed to reach the core authentik server restart: unless-stopped diff --git a/content/en/6.recycled/2.deprecated/2.file-browser.md b/content/en/6.recycled/2.deprecated/2.file-browser.md index ec0c4ec..383b01f 100644 --- a/content/en/6.recycled/2.deprecated/2.file-browser.md +++ b/content/en/6.recycled/2.deprecated/2.file-browser.md @@ -1,6 +1,6 @@ --- title: File Browser -description: Install File Browser to browse and manage your server files from a web interface, exposed securely with SWAG. +description: Archived guide to installing File Browser to browse and manage your server files, superseded by File Browser Quantum. --- diff --git a/content/en/6.recycled/3.alternatives/1.plex.md b/content/en/6.recycled/3.alternatives/1.plex.md index fe5c4af..bb2a8cc 100644 --- a/content/en/6.recycled/3.alternatives/1.plex.md +++ b/content/en/6.recycled/3.alternatives/1.plex.md @@ -1,6 +1,6 @@ --- title: Plex -description: Install Plex Media Server with Tautulli on your homelab to stream movies and TV shows from anywhere on all your devices. +description: Archived guide to installing Plex Media Server with Tautulli, kept for reference — Serveex now recommends Jellyfin. --- diff --git a/content/en/6.recycled/3.alternatives/2.qbittorrent-for-plex.md b/content/en/6.recycled/3.alternatives/2.qbittorrent-for-plex.md index fea14bc..e49df9c 100644 --- a/content/en/6.recycled/3.alternatives/2.qbittorrent-for-plex.md +++ b/content/en/6.recycled/3.alternatives/2.qbittorrent-for-plex.md @@ -1,6 +1,6 @@ --- title: qBittorrent for Plex -description: Install qBittorrent with Gluetun and ProtonVPN to download torrents securely behind a VPN on your self-hosted server. +description: Archived guide to installing qBittorrent for a Plex setup, kept for reference — see the current qBittorrent guide instead. --- @@ -52,7 +52,7 @@ tree: If not already done, create the `downloads` folder under `/media`: ```bash [Terminal] -mkdir -P /media/downloads +mkdir -p /media/downloads ``` ### Deploy the stack @@ -93,7 +93,7 @@ services: devices: - /dev/net/tun:/dev/net/tun ports: - - ${UI_PORT}:5695 # Port de la web-ui + - ${UI_PORT}:${UI_PORT} # Port de la web-ui - 8000:8000 # Port de controle de Gluetun cap_add: - NET_ADMIN @@ -322,7 +322,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app gluetun; - set $upstream_port 5555; + set $upstream_port 5695; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; diff --git a/content/en/6.recycled/3.alternatives/3.servarr-for-plex.md b/content/en/6.recycled/3.alternatives/3.servarr-for-plex.md index 0afb63a..2f69867 100644 --- a/content/en/6.recycled/3.alternatives/3.servarr-for-plex.md +++ b/content/en/6.recycled/3.alternatives/3.servarr-for-plex.md @@ -1,6 +1,6 @@ --- title: Servarr for Plex -description: Automate media downloads with the Servarr stack, Radarr, Sonarr, Bazarr, Prowlarr, and Overseerr for movies and TV shows. +description: Archived guide to the Servarr stack for a Plex setup, kept for reference — see the current Servarr guide instead. --- @@ -415,7 +415,7 @@ It can be useful to expose Overseerr if you want to send requests from outside y ::note -We assume you have the subdomain `films.mydomain.com` with a `CNAME` pointing to `films.fr` in your [DNS zone](/general/networking/dns). And that [unless you’re using Cloudflare Zero Trust](/serveex/security/cloudflare), port `443` on your router is forwarded to port `443` on your server via [NAT rules](/general/networking/nat). +We assume you have the subdomain `films.mydomain.com` with a `CNAME` pointing to `mydomain.com` in your [DNS zone](/general/networking/dns). And that [unless you’re using Cloudflare Zero Trust](/serveex/security/cloudflare), port `443` on your router is forwarded to port `443` on your server via [NAT rules](/general/networking/nat). :: ::steps{level="3"} diff --git a/content/en/6.recycled/3.alternatives/4.gitea.md b/content/en/6.recycled/3.alternatives/4.gitea.md index 23e0820..23a358d 100644 --- a/content/en/6.recycled/3.alternatives/4.gitea.md +++ b/content/en/6.recycled/3.alternatives/4.gitea.md @@ -1,6 +1,6 @@ --- title: Gitea -description: Install Gitea, a lightweight self-hosted Git service to manage your code repositories privately on your own server. +description: Archived guide to installing Gitea, kept for reference — Serveex now recommends Forgejo. --- diff --git a/content/fr/2.general/3.storage/2.zfs.md b/content/fr/2.general/3.storage/2.zfs.md index 33d5b3d..42fc3c6 100644 --- a/content/fr/2.general/3.storage/2.zfs.md +++ b/content/fr/2.general/3.storage/2.zfs.md @@ -29,8 +29,8 @@ Ce qui nous intéresse le plus : ZFS dispose d'une structure particulière : - __vdev__ (virtual device) : une grappe de disques (physiques ou virtuel) -- __zpool__ : un ensemble de disques physiques ou virtuels en volume simple, Z-mirror ou RAIDZ. Un _zpool_ peut englober plusieurs _vdev_ mais pas l'inverse. -- __dataset__ : un système de de donnée dans un _zpool_. Chaque dataset peut avoir ses propres options (compression, quotas, permissions, etc.). +- __zpool__ : un ensemble de _vdev_ configuré comme un seul pool de stockage. Un _zpool_ peut englober plusieurs _vdev_ mais pas l'inverse. +- __dataset__ : un conteneur logique de données dans un _zpool_. Chaque dataset peut avoir ses propres options (compression, quotas, permissions, etc.). Il existe plusieurs types de dataset : 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 180fb47..c6e6304 100644 --- a/content/fr/2.general/5.linux/3.handy-tools.md +++ b/content/fr/2.general/5.linux/3.handy-tools.md @@ -61,7 +61,7 @@ Cliquez sur un processus pour le sélectionner, :kbd{value="Esc"} ouvre le menu, ## `duf`, l'espace disque qui se lit comme un tableau -`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. +`df -h` affiche jusqu'au moindre loop device créé par Docker 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 diff --git a/content/fr/3.serveex/4.monitoring/5.upsnap.md b/content/fr/3.serveex/4.monitoring/5.upsnap.md index e52737a..280b2ba 100644 --- a/content/fr/3.serveex/4.monitoring/5.upsnap.md +++ b/content/fr/3.serveex/4.monitoring/5.upsnap.md @@ -101,32 +101,25 @@ Nous partons du principe que vous avez créé un sous-domaine dans votre [zone D :: ::steps{level="3"} -### Ajouter le réseau d'UpSnap à SWAG +### Rendre l'hôte accessible depuis SWAG -Allez dans Dockge et modifiez le compose de SWAG en y ajoutant le réseau d'UpSnap : +UpSnap tourne en `network_mode: host` (nécessaire pour que la diffusion Wake-on-LAN et le scan réseau fonctionnent de manière fiable), il ne rejoint donc jamais de réseau Docker auquel SWAG pourrait se rattacher comme pour les autres stacks. Il faut à la place donner à SWAG un moyen d'atteindre l'hôte lui-même : ```yaml [compose.yaml] --- services: swag: container_name: # ... - # ... - networks: # Rattache le conteneur au réseau personnalisé - # ... - - upsnap # Nom du réseau déclaré dans la stack - -networks: # Définit le réseau personnalisé - # ... - upsnap: # Nom du réseau déclaré dans la stack - name: upsnap_default # Nom réel du réseau externe - external: true # Indique qu'il s'agit d'un réseau externe + # ... + extra_hosts: + - "host.docker.internal:host-gateway" # se résout vers l'IP de l'hôte Docker lui-même ``` Redémarrez la stack en cliquant sur « deploy » et attendez que SWAG soit pleinement opérationnel. ::note -Nous partons ici du principe que le nom du réseau d'upsnap est `upsnap_default`. Vous pouvez vérifier la connexion dans le tableau de bord de SWAG sur `http://ipdevotreserveur:81`. +`host-gateway` est une valeur spéciale que Docker résout automatiquement vers l'IP de la machine hôte, donc cela fonctionne quelle que soit l'adresse réelle de votre serveur. :: ### Créer le fichier subdomain.conf @@ -184,7 +177,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; - set $upstream_app upsnap; + set $upstream_app host.docker.internal; set $upstream_port 8095; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; @@ -262,7 +255,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; - set $upstream_app upsnap; + set $upstream_app host.docker.internal; set $upstream_port 8095; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; diff --git a/content/fr/3.serveex/5.media/2.qbittorrent.md b/content/fr/3.serveex/5.media/2.qbittorrent.md index 885ef42..48ca7e0 100644 --- a/content/fr/3.serveex/5.media/2.qbittorrent.md +++ b/content/fr/3.serveex/5.media/2.qbittorrent.md @@ -47,7 +47,7 @@ tree: Si ce n'est pas déjà fait, créez le dossier `downloads` dans `/media` : ```bash [Terminal] -mkdir -P /media/downloads +mkdir -p /media/downloads ``` ### Déployer la stack @@ -88,7 +88,7 @@ services: devices: - /dev/net/tun:/dev/net/tun ports: - - ${UI_PORT}:5695 # Port de la web-ui + - ${UI_PORT}:${UI_PORT} # Port de la web-ui - 8000:8000 # Port de controle de Gluetun cap_add: - NET_ADMIN @@ -321,7 +321,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app gluetun; - set $upstream_port 5555; + set $upstream_port 5695; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; @@ -399,7 +399,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app gluetun; - set $upstream_port 5555; + set $upstream_port 5695; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; diff --git a/content/fr/3.serveex/5.media/3.servarr.md b/content/fr/3.serveex/5.media/3.servarr.md index b1585ce..4b6e1ad 100644 --- a/content/fr/3.serveex/5.media/3.servarr.md +++ b/content/fr/3.serveex/5.media/3.servarr.md @@ -394,7 +394,7 @@ Seerr n'a pas d'authentification à deux facteurs intégrée. Ne l'exposez que s ::note -Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` pointant vers `films.fr` dans votre [zone DNS](/general/networking/dns). Et que, [à moins d'utiliser Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box est redirigé vers le port `443` de votre serveur via les [règles NAT](/general/networking/nat). +Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` pointant vers `mondomaine.fr` dans votre [zone DNS](/general/networking/dns). Et que, [à moins d'utiliser Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box est redirigé vers le port `443` de votre serveur via les [règles NAT](/general/networking/nat). :: ::steps{level="3"} diff --git a/content/fr/3.serveex/91.advanced/1.authentik.md b/content/fr/3.serveex/91.advanced/1.authentik.md index 405a665..2bd20c4 100644 --- a/content/fr/3.serveex/91.advanced/1.authentik.md +++ b/content/fr/3.serveex/91.advanced/1.authentik.md @@ -476,7 +476,7 @@ Sur votre machine distante, utilisez [Dockge](/serveex/core/docker/#installer-do Si vous n'avez pas installé [Dockge](/serveex/core/docker/#installer-dockge-pour-gérer-et-déployer-les-conteneurs), créez un dossier `/srv/docker/authentik-outpost`, ou directement en ligne de commande : ```bash [Terminal] -sudo mkdir -P /srv/docker/authentik-outpost +sudo mkdir -p /srv/docker/authentik-outpost ``` ::tip{icon="" to="/serveex/files/file-browser-quantum"} diff --git a/content/fr/5.nonsense/2.python/2.adguard-cidre.md b/content/fr/5.nonsense/2.python/2.adguard-cidre.md index cf9c0fb..6af3402 100644 --- a/content/fr/5.nonsense/2.python/2.adguard-cidre.md +++ b/content/fr/5.nonsense/2.python/2.adguard-cidre.md @@ -28,6 +28,6 @@ Tout ceci de manière complètement autonome, avec une fréquence choisie en var Plus d'infos directement sur le repo : -::card{title="🐋 __AdGuard CIDRE Sync__"} -[Robot de synchronisation de la blocklist d'AdGuard](https://git.djeex.fr/Djeex/adguard-cidre) +::card{title="🐋 __AdGuard CIDRE Sync__" to="https://git.djeex.fr/Djeex/adguard-cidre" target="_blank"} +Robot de synchronisation de la blocklist d'AdGuard :: diff --git a/content/fr/5.nonsense/3.bash/2.luks-backup.md b/content/fr/5.nonsense/3.bash/2.luks-backup.md index 1f63975..6e7736b 100644 --- a/content/fr/5.nonsense/3.bash/2.luks-backup.md +++ b/content/fr/5.nonsense/3.bash/2.luks-backup.md @@ -20,66 +20,66 @@ Ainsi, ce script : * Chiffre avec le mot de passe * Détruit l'archive non chiffrée -``` +```bash [Terminal] #!/bin/bash -# Directory where LUKS headers will be backed up +# Dossier où seront sauvegardés les headers LUKS DEST="/root/luks-headers-backup" mkdir -p "$DEST" -echo "🔍 Searching for LUKS containers on all partitions..." +echo "🔍 Recherche des conteneurs LUKS sur toutes les partitions..." -# Loop through all possible disk partitions (including NVMe and SATA) +# Parcourt toutes les partitions disque possibles (y compris NVMe et SATA) for part in /dev/sd? /dev/sd?? /dev/nvme?n?p?; do - # Skip if the device doesn't exist + # Ignore si le périphérique n'existe pas if [ ! -b "$part" ]; then continue fi - # Check if the partition is a LUKS encrypted volume + # Vérifie si la partition est un volume chiffré LUKS if cryptsetup isLuks "$part"; then - # Find the parent disk device (e.g. nvme0n1p4 → nvme0n1) + # Trouve le disque parent (ex. nvme0n1p4 → nvme0n1) disk=$(lsblk -no pkname "$part" | head -n 1) full_disk="/dev/$disk" - # Get the serial number of the parent disk + # Récupère le numéro de série du disque parent SERIAL=$(udevadm info --query=all --name="$full_disk" | grep ID_SERIAL= | cut -d= -f2) if [ -z "$SERIAL" ]; then SERIAL="unknown" fi - # Extract the partition name (e.g. nvme0n1p4) + # Extrait le nom de la partition (ex. nvme0n1p4) PART_NAME=$(basename "$part") - # Build the output filename with partition name and disk serial + # Construit le nom du fichier de sortie avec le nom de partition et le numéro de série OUTPUT="$DEST/luks-header-${PART_NAME}__${SERIAL}.img" - echo "🔐 Backing up LUKS header of $part (Serial: $SERIAL)..." + echo "🔐 Sauvegarde du header LUKS de $part (Numéro de série : $SERIAL)..." - # Backup the LUKS header to the output file + # Sauvegarde le header LUKS dans le fichier de sortie cryptsetup luksHeaderBackup "$part" --header-backup-file "$OUTPUT" if [[ $? -eq 0 ]]; then - echo "✅ Backup successful → $OUTPUT" + echo "✅ Sauvegarde réussie → $OUTPUT" else - echo "❌ Backup failed for $part" + echo "❌ Échec de la sauvegarde pour $part" fi fi done -# Create a timestamped compressed tar archive of all header backups +# Crée une archive tar compressée et horodatée de toutes les sauvegardes de headers ARCHIVE_NAME="/root/luks-headers-$(date +%Y%m%d_%H%M%S).tar.gz" -echo "📦 Creating archive $ARCHIVE_NAME..." +echo "📦 Création de l'archive $ARCHIVE_NAME..." tar -czf "$ARCHIVE_NAME" -C "$DEST" . -# Encrypt the archive symmetrically using GPG with AES256 cipher -echo "🔐 Encrypting the archive with GPG..." +# Chiffre l'archive symétriquement avec GPG et le chiffrement AES256 +echo "🔐 Chiffrement de l'archive avec GPG..." gpg --symmetric --cipher-algo AES256 "$ARCHIVE_NAME" if [[ $? -eq 0 ]]; then - echo "✅ Encrypted archive created: ${ARCHIVE_NAME}.gpg" - # Remove the unencrypted archive for security + echo "✅ Archive chiffrée créée : ${ARCHIVE_NAME}.gpg" + # Supprime l'archive non chiffrée pour plus de sécurité rm -f "$ARCHIVE_NAME" else - echo "❌ Encryption failed" + echo "❌ Échec du chiffrement" fi ``` diff --git a/content/fr/5.nonsense/3.bash/3.socat-proxy.md b/content/fr/5.nonsense/3.bash/3.socat-proxy.md index 8908b15..be3078c 100644 --- a/content/fr/5.nonsense/3.bash/3.socat-proxy.md +++ b/content/fr/5.nonsense/3.bash/3.socat-proxy.md @@ -77,6 +77,6 @@ services: Plus d'infos directement sur le repo : -::card{title="🐋 __Socat Proxy__"} -[A lighteweight bind mount socket proxy](https://git.djeex.fr/Djeex/socat-proxy) +::card{title="🐋 __Socat Proxy__" to="https://git.djeex.fr/Djeex/socat-proxy" target="_blank"} +Un proxy de socket léger basé sur un bind mount :: diff --git a/content/fr/6.recycled/2.deprecated/2.file-browser.md b/content/fr/6.recycled/2.deprecated/2.file-browser.md index 9e93991..ff13ea5 100644 --- a/content/fr/6.recycled/2.deprecated/2.file-browser.md +++ b/content/fr/6.recycled/2.deprecated/2.file-browser.md @@ -1,6 +1,6 @@ --- title: File Browser -description: Installer File Browser pour parcourir et gérer les fichiers de votre serveur depuis une interface web, exposée en toute sécurité avec SWAG. +description: Ancien guide File Browser conservé à titre archivé, voir le guide File Browser Quantum pour une installation actuelle. --- diff --git a/content/fr/6.recycled/3.alternatives/1.plex.md b/content/fr/6.recycled/3.alternatives/1.plex.md index 150276c..bd3551b 100644 --- a/content/fr/6.recycled/3.alternatives/1.plex.md +++ b/content/fr/6.recycled/3.alternatives/1.plex.md @@ -1,6 +1,6 @@ --- title: Plex -description: Installer Plex Media Server avec Tautulli sur votre homelab pour diffuser films et séries depuis n'importe où sur tous vos appareils. +description: Ancien guide Plex Media Server conservé à titre archivé, voir le guide Jellyfin pour une installation actuelle. --- diff --git a/content/fr/6.recycled/3.alternatives/2.qbittorrent-for-plex.md b/content/fr/6.recycled/3.alternatives/2.qbittorrent-for-plex.md index d8c801b..5df17f4 100644 --- a/content/fr/6.recycled/3.alternatives/2.qbittorrent-for-plex.md +++ b/content/fr/6.recycled/3.alternatives/2.qbittorrent-for-plex.md @@ -1,6 +1,6 @@ --- title: qBittorrent pour Plex -description: Installer qBittorrent avec Gluetun et ProtonVPN pour télécharger des torrents de manière sécurisée derrière un VPN sur votre serveur auto-hébergé. +description: Ancien guide qBittorrent pour Plex conservé à titre archivé, voir le guide qBittorrent à jour pour une installation actuelle. --- @@ -52,7 +52,7 @@ tree: Si ce n'est pas déjà fait, créez le dossier `downloads` dans `/media` : ```bash [Terminal] -mkdir -P /media/downloads +mkdir -p /media/downloads ``` ### Déployer la stack @@ -93,7 +93,7 @@ services: devices: - /dev/net/tun:/dev/net/tun ports: - - ${UI_PORT}:5695 # Port de la web-ui + - ${UI_PORT}:${UI_PORT} # Port de la web-ui - 8000:8000 # Port de controle de Gluetun cap_add: - NET_ADMIN @@ -322,7 +322,7 @@ server { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app gluetun; - set $upstream_port 5555; + set $upstream_port 5695; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; diff --git a/content/fr/6.recycled/3.alternatives/3.servarr-for-plex.md b/content/fr/6.recycled/3.alternatives/3.servarr-for-plex.md index 734d7af..cca1e37 100644 --- a/content/fr/6.recycled/3.alternatives/3.servarr-for-plex.md +++ b/content/fr/6.recycled/3.alternatives/3.servarr-for-plex.md @@ -1,6 +1,6 @@ --- title: Servarr pour Plex -description: Automatiser les téléchargements de médias avec la suite Servarr, Radarr, Sonarr, Bazarr, Prowlarr et Overseerr pour les films et les séries. +description: Ancien guide Servarr pour Plex conservé à titre archivé, voir le guide Servarr à jour pour une installation actuelle. --- @@ -415,7 +415,7 @@ Il peut être utile d'exposer Overseerr si vous voulez envoyer des demandes depu ::note -Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` pointant vers `films.fr` dans votre [zone DNS](/general/networking/dns). Et que, [à moins d'utiliser Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box est redirigé vers le port `443` de votre serveur via les [règles NAT](/general/networking/nat). +Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` pointant vers `mondomaine.fr` dans votre [zone DNS](/general/networking/dns). Et que, [à moins d'utiliser Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box est redirigé vers le port `443` de votre serveur via les [règles NAT](/general/networking/nat). :: ::steps{level="3"} diff --git a/content/fr/6.recycled/3.alternatives/4.gitea.md b/content/fr/6.recycled/3.alternatives/4.gitea.md index 96ec7cd..b31e080 100644 --- a/content/fr/6.recycled/3.alternatives/4.gitea.md +++ b/content/fr/6.recycled/3.alternatives/4.gitea.md @@ -1,6 +1,6 @@ --- title: Gitea -description: Installer Gitea, un service Git auto-hébergé et léger pour gérer vos dépôts de code en privé sur votre propre serveur. +description: Ancien guide Gitea conservé à titre archivé, voir le guide Forgejo pour une installation actuelle. --- diff --git a/content/fr/index.md b/content/fr/index.md index eef8194..3fc434a 100644 --- a/content/fr/index.md +++ b/content/fr/index.md @@ -25,7 +25,7 @@ seo: --- color: primary size: xl -to: /fr/about/welcome +to: /about/welcome/ --- Accéder à la doc ::::::