Fix content audit findings across Serveex, Nonsense and recycled guides
Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
@@ -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 :
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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"}
|
||||
|
||||
@@ -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"}
|
||||
|
||||
@@ -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
|
||||
::
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
|
||||
@@ -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
|
||||
::
|
||||
|
||||
@@ -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.
|
||||
---
|
||||
|
||||
|
||||
|
||||
@@ -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.
|
||||
---
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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"}
|
||||
|
||||
@@ -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.
|
||||
---
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ seo:
|
||||
---
|
||||
color: primary
|
||||
size: xl
|
||||
to: /fr/about/welcome
|
||||
to: /about/welcome/
|
||||
---
|
||||
Accéder à la doc
|
||||
::::::
|
||||
|
||||
Reference in New Issue
Block a user