Fix content audit findings across Serveex, Nonsense and recycled guides

This commit is contained in:
Djeex
2026-09-07 20:54:58 +02:00
parent aa43d51c42
commit 9c4b8a756e
25 changed files with 78 additions and 92 deletions
+1 -1
View File
@@ -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 dont want to expose your services and prefer to always use a VPN to connect remotely, you can go **here instead**. 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 dont 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:** **Reverse proxy principle and its application in our case:**
+8 -15
View File
@@ -101,32 +101,25 @@ We assume you've created a subdomain in your [DNS zone](/general/networking/dns)
:: ::
::steps{level="3"} ::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] ```yaml [compose.yaml]
--- ---
services: services:
swag: swag:
container_name: # ... container_name: # ...
# ... # ...
networks: # Connects the container to the custom network extra_hosts:
# ... - "host.docker.internal:host-gateway" # resolves to the Docker host's own IP
- 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
``` ```
Restart the stack by clicking "deploy" and wait for SWAG to be fully operational. Restart the stack by clicking "deploy" and wait for SWAG to be fully operational.
::note ::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 ### Create the subdomain.conf file
@@ -184,7 +177,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app upsnap; set $upstream_app host.docker.internal;
set $upstream_port 8095; set $upstream_port 8095;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
@@ -262,7 +255,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app upsnap; set $upstream_app host.docker.internal;
set $upstream_port 8095; set $upstream_port 8095;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
@@ -47,7 +47,7 @@ tree:
If not already done, create the `downloads` folder under `/media`: If not already done, create the `downloads` folder under `/media`:
```bash [Terminal] ```bash [Terminal]
mkdir -P /media/downloads mkdir -p /media/downloads
``` ```
### Deploy the stack ### Deploy the stack
@@ -88,7 +88,7 @@ services:
devices: devices:
- /dev/net/tun:/dev/net/tun - /dev/net/tun:/dev/net/tun
ports: 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 - 8000:8000 # Port de controle de Gluetun
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
@@ -321,7 +321,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app gluetun; set $upstream_app gluetun;
set $upstream_port 5555; set $upstream_port 5695;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
@@ -399,7 +399,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app gluetun; set $upstream_app gluetun;
set $upstream_port 5555; set $upstream_port 5695;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
+1 -1
View File
@@ -394,7 +394,7 @@ Seerr has no built-in two-factor authentication. Only expose it if you're using
::note ::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 youre 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 youre 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"} ::steps{level="3"}
@@ -475,7 +475,7 @@ On your remote machine, use [Dockge](/serveex/core/docker/#install-dockge-to-man
If you havent installed [Dockge](/serveex/core/docker/#install-dockge-to-manage-and-deploy-containers), create a folder `/srv/docker/authentik-outpost`, or directly via command line: If you havent 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] ```bash [Terminal]
sudo mkdir -P /srv/docker/authentik-outpost sudo mkdir -p /srv/docker/authentik-outpost
``` ```
::tip{icon="" to="/serveex/files/file-browser-quantum"} ::tip{icon="" to="/serveex/files/file-browser-quantum"}
@@ -492,7 +492,7 @@ Via command line:
```bash [Terminal] ```bash [Terminal]
sudo nano /srv/docker/authentik-outpost/compose.yaml 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] ```yaml [compose.yaml]
--- ---
@@ -500,7 +500,7 @@ version: "3.5"
services: services:
authentik_proxy: authentik_proxy:
container_name: authentik-outpost 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 # Optionally specify which networks the container should be
# might be needed to reach the core authentik server # might be needed to reach the core authentik server
restart: unless-stopped restart: unless-stopped
@@ -1,6 +1,6 @@
--- ---
title: File Browser 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.
--- ---
@@ -1,6 +1,6 @@
--- ---
title: Plex 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.
--- ---
@@ -1,6 +1,6 @@
--- ---
title: qBittorrent for Plex 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`: If not already done, create the `downloads` folder under `/media`:
```bash [Terminal] ```bash [Terminal]
mkdir -P /media/downloads mkdir -p /media/downloads
``` ```
### Deploy the stack ### Deploy the stack
@@ -93,7 +93,7 @@ services:
devices: devices:
- /dev/net/tun:/dev/net/tun - /dev/net/tun:/dev/net/tun
ports: 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 - 8000:8000 # Port de controle de Gluetun
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
@@ -322,7 +322,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app gluetun; set $upstream_app gluetun;
set $upstream_port 5555; set $upstream_port 5695;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
@@ -1,6 +1,6 @@
--- ---
title: Servarr for Plex 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 ::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 youre 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 youre 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"} ::steps{level="3"}
@@ -1,6 +1,6 @@
--- ---
title: Gitea 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.
--- ---
+2 -2
View File
@@ -29,8 +29,8 @@ Ce qui nous intéresse le plus :
ZFS dispose d'une structure particulière : ZFS dispose d'une structure particulière :
- __vdev__ (virtual device) : une grappe de disques (physiques ou virtuel) - __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. - __zpool__ : un ensemble de _vdev_ configuré comme un seul pool de stockage. 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.). - __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 : 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 ## `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"} ::steps{level="4"}
#### L'installer #### L'installer
+8 -15
View File
@@ -101,32 +101,25 @@ Nous partons du principe que vous avez créé un sous-domaine dans votre [zone D
:: ::
::steps{level="3"} ::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] ```yaml [compose.yaml]
--- ---
services: services:
swag: swag:
container_name: # ... container_name: # ...
# ... # ...
networks: # Rattache le conteneur au réseau personnalisé extra_hosts:
# ... - "host.docker.internal:host-gateway" # se résout vers l'IP de l'hôte Docker lui-même
- 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
``` ```
Redémarrez la stack en cliquant sur « deploy » et attendez que SWAG soit pleinement opérationnel. Redémarrez la stack en cliquant sur « deploy » et attendez que SWAG soit pleinement opérationnel.
::note ::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 ### Créer le fichier subdomain.conf
@@ -184,7 +177,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app upsnap; set $upstream_app host.docker.internal;
set $upstream_port 8095; set $upstream_port 8095;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
@@ -262,7 +255,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app upsnap; set $upstream_app host.docker.internal;
set $upstream_port 8095; set $upstream_port 8095;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; 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` : Si ce n'est pas déjà fait, créez le dossier `downloads` dans `/media` :
```bash [Terminal] ```bash [Terminal]
mkdir -P /media/downloads mkdir -p /media/downloads
``` ```
### Déployer la stack ### Déployer la stack
@@ -88,7 +88,7 @@ services:
devices: devices:
- /dev/net/tun:/dev/net/tun - /dev/net/tun:/dev/net/tun
ports: 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 - 8000:8000 # Port de controle de Gluetun
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
@@ -321,7 +321,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app gluetun; set $upstream_app gluetun;
set $upstream_port 5555; set $upstream_port 5695;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
@@ -399,7 +399,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app gluetun; set $upstream_app gluetun;
set $upstream_port 5555; set $upstream_port 5695;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
+1 -1
View File
@@ -394,7 +394,7 @@ Seerr n'a pas d'authentification à deux facteurs intégrée. Ne l'exposez que s
::note ::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"} ::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 : 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] ```bash [Terminal]
sudo mkdir -P /srv/docker/authentik-outpost sudo mkdir -p /srv/docker/authentik-outpost
``` ```
::tip{icon="" to="/serveex/files/file-browser-quantum"} ::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 : Plus d'infos directement sur le repo :
::card{title="🐋 __AdGuard CIDRE Sync__"} ::card{title="🐋 __AdGuard CIDRE Sync__" to="https://git.djeex.fr/Djeex/adguard-cidre" target="_blank"}
[Robot de synchronisation de la blocklist d'AdGuard](https://git.djeex.fr/Djeex/adguard-cidre) Robot de synchronisation de la blocklist d'AdGuard
:: ::
+21 -21
View File
@@ -20,66 +20,66 @@ Ainsi, ce script :
* Chiffre avec le mot de passe * Chiffre avec le mot de passe
* Détruit l'archive non chiffrée * Détruit l'archive non chiffrée
``` ```bash [Terminal]
#!/bin/bash #!/bin/bash
# Directory where LUKS headers will be backed up # Dossier où seront sauvegardés les headers LUKS
DEST="/root/luks-headers-backup" DEST="/root/luks-headers-backup"
mkdir -p "$DEST" 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 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 if [ ! -b "$part" ]; then
continue continue
fi 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 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) disk=$(lsblk -no pkname "$part" | head -n 1)
full_disk="/dev/$disk" 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) SERIAL=$(udevadm info --query=all --name="$full_disk" | grep ID_SERIAL= | cut -d= -f2)
if [ -z "$SERIAL" ]; then if [ -z "$SERIAL" ]; then
SERIAL="unknown" SERIAL="unknown"
fi fi
# Extract the partition name (e.g. nvme0n1p4) # Extrait le nom de la partition (ex. nvme0n1p4)
PART_NAME=$(basename "$part") 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" 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" cryptsetup luksHeaderBackup "$part" --header-backup-file "$OUTPUT"
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then
echo "✅ Backup successful → $OUTPUT" echo "✅ Sauvegarde réussie → $OUTPUT"
else else
echo "❌ Backup failed for $part" echo "❌ Échec de la sauvegarde pour $part"
fi fi
fi fi
done 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" 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" . tar -czf "$ARCHIVE_NAME" -C "$DEST" .
# Encrypt the archive symmetrically using GPG with AES256 cipher # Chiffre l'archive symétriquement avec GPG et le chiffrement AES256
echo "🔐 Encrypting the archive with GPG..." echo "🔐 Chiffrement de l'archive avec GPG..."
gpg --symmetric --cipher-algo AES256 "$ARCHIVE_NAME" gpg --symmetric --cipher-algo AES256 "$ARCHIVE_NAME"
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then
echo "✅ Encrypted archive created: ${ARCHIVE_NAME}.gpg" echo "✅ Archive chiffrée créée : ${ARCHIVE_NAME}.gpg"
# Remove the unencrypted archive for security # Supprime l'archive non chiffrée pour plus de sécurité
rm -f "$ARCHIVE_NAME" rm -f "$ARCHIVE_NAME"
else else
echo "❌ Encryption failed" echo "❌ Échec du chiffrement"
fi fi
``` ```
@@ -77,6 +77,6 @@ services:
Plus d'infos directement sur le repo : Plus d'infos directement sur le repo :
::card{title="🐋 __Socat Proxy__"} ::card{title="🐋 __Socat Proxy__" to="https://git.djeex.fr/Djeex/socat-proxy" target="_blank"}
[A lighteweight bind mount socket proxy](https://git.djeex.fr/Djeex/socat-proxy) Un proxy de socket léger basé sur un bind mount
:: ::
@@ -1,6 +1,6 @@
--- ---
title: File Browser 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 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 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` : Si ce n'est pas déjà fait, créez le dossier `downloads` dans `/media` :
```bash [Terminal] ```bash [Terminal]
mkdir -P /media/downloads mkdir -p /media/downloads
``` ```
### Déployer la stack ### Déployer la stack
@@ -93,7 +93,7 @@ services:
devices: devices:
- /dev/net/tun:/dev/net/tun - /dev/net/tun:/dev/net/tun
ports: 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 - 8000:8000 # Port de controle de Gluetun
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
@@ -322,7 +322,7 @@ server {
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_app gluetun; set $upstream_app gluetun;
set $upstream_port 5555; set $upstream_port 5695;
set $upstream_proto http; set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_pass $upstream_proto://$upstream_app:$upstream_port;
@@ -1,6 +1,6 @@
--- ---
title: Servarr pour Plex 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 ::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"} ::steps{level="3"}
@@ -1,6 +1,6 @@
--- ---
title: Gitea 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
View File
@@ -25,7 +25,7 @@ seo:
--- ---
color: primary color: primary
size: xl size: xl
to: /fr/about/welcome to: /about/welcome/
--- ---
Accéder à la doc Accéder à la doc
:::::: ::::::