7 Commits
Author SHA1 Message Date
Djeex 74abf9a934 Fixed gluetun version 2026-08-25 10:34:32 +00:00
Djeex a36ddfd70c Fixed deprecated path in qbitorrent.md 2026-08-25 10:32:59 +00:00
DjeexandClaude Sonnet 5 9c257a9d00 chore: bump nuxt to ^3.21.11 to match main
The pinned nuxt ^3.14.159 never resolved a fuse.js version satisfying
@vueuse/integrations' optional peer dependency (fuse.js ^7), used by
Docus's search component. A clean install would crash rendering any
page. Matching main's nuxt version pulls in @nuxt/cli's own fuse.js
^7.4.2, which npm hoists and that satisfies the peer.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-11 23:21:38 +02:00
DjeexandClaude Sonnet 5 921780d0d2 feat: add canonical URL and og:url
Docus doesn't generate canonical links or og:url natively. This
branch has no @nuxtjs/sitemap/nuxt-site-config, so the plugin reads
the base URL from docus.url in app.config.ts (already includes the
/fr prefix) instead of hardcoding it, and combines it with the
current route path.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-11 23:14:20 +02:00
Djeex a36b3c7c2a Fixed darkreader lock 2026-08-11 10:11:56 +00:00
DjeexandClaude Sonnet 5 c93134975a feat: generate /fr/sitemap.xml via custom Nitro route
@nuxtjs/sitemap is incompatible with app.baseURL: '/fr/' here — it broke
nginx routing (403) on this deployment where /fr/ is served via an alias
to a separate static build. A hand-rolled Nitro route sidesteps the
module entirely and gets prerendered to a plain sitemap.xml file at the
root of the generated output, matching what the nginx alias expects.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-11 11:44:46 +02:00
DjeexandClaude Sonnet 5 dd06d01b62 feat: add SEO descriptions to all pages and fix canonical URL
Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-11 11:31:10 +02:00
51 changed files with 9090 additions and 2755 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ export default defineAppConfig({
docus: { docus: {
title: 'Docudjeex', title: 'Docudjeex',
description: 'La doc de mes expériences', description: 'La doc de mes expériences',
url: 'http://docus.dev', url: 'https://docu.djeex.fr/fr',
image: '/img/social.png', image: '/img/social.png',
socials: { socials: {
github:'', github:'',
+1
View File
@@ -1,5 +1,6 @@
--- ---
title: Accueil title: Accueil
description: Documentation homelab par Djeex — guides d'auto-hébergement pour Debian, Docker, réseau, stockage et bien plus.
navigation: false navigation: false
layout: page layout: page
main: main:
+1
View File
@@ -1,6 +1,7 @@
--- ---
icon: lucide:home icon: lucide:home
title: Bienvenue title: Bienvenue
description: Introduction à Docudjeex — un site de documentation personnelle sur les services auto-hébergés, Debian et l'infrastructure Docker.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: NAT & DHCP title: NAT & DHCP
description: Comprendre le NAT, la redirection de ports et le DHCP sur un routeur domestique. Configurer des baux IP fixes et exposer des services locaux.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Zone DNS title: Zone DNS
description: Comprendre le fonctionnement du DNS, lire et éditer une zone DNS, et configurer des noms de domaine pour vos services auto-hébergés.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Samba title: Samba
description: Configurer Samba sur Debian pour partager des dossiers sur votre réseau local et y accéder depuis Windows, macOS ou Linux.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: RAID title: RAID
description: Comprendre le RAID — matériel vs logiciel, niveaux RAID, et comment mettre en place des grappes de disques redondants pour votre homelab.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: ZFS title: ZFS
description: Introduction à ZFS — système de fichiers et gestionnaire de volumes combinés avec snapshots, checksums et redondance intégrée pour un stockage fiable.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Les bases title: Les bases
description: Les fondamentaux du matériel serveur — CPU, RAM, stockage et facteurs de forme pour bien démarrer votre homelab.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Réseau title: Réseau
description: Aperçu du matériel réseau pour homelab — switches, cartes réseau, câbles et comment connecter efficacement vos serveurs.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Le ProloNAS title: Le ProloNAS
description: Construire un serveur domestique performant avec un mini PC Intel N100 — guide pratique pour démarrer l'auto-hébergement pour moins de 130 €.
fluid: false fluid: false
--- ---
:ellipsis{left=0px width=40rem top=10rem blur=140px} :ellipsis{left=0px width=40rem top=10rem blur=140px}
+1
View File
@@ -2,6 +2,7 @@
icon: lucide:bookmark icon: lucide:bookmark
navigation: true navigation: true
title: Introduction title: Introduction
description: Introduction à Serveex — un projet homelab pour auto-héberger ses services du quotidien avec Debian et Docker, sans dépendre de Google, Apple ou Netflix.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Debian 13 title: Debian 13
description: Guide pas à pas pour installer Debian 13 sur un serveur et configurer l'accès SSH, les paquets essentiels et un système de base prêt à l'emploi.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Docker title: Docker
description: Installer Docker et Dockge sur Debian pour déployer et gérer des services auto-hébergés avec de simples stacks de conteneurs.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: SWAG title: SWAG
description: Configurer SWAG comme reverse proxy avec SSL automatique, exposer vos services en toute sécurité et activer le blocage géographique sur votre homelab.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Wireguard title: Wireguard
description: Installer et configurer WireGuard VPN pour accéder à votre homelab de n'importe où et connecter tous vos appareils à votre réseau privé.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Authentik title: Authentik
description: Installer Authentik comme fournisseur d'identité auto-hébergé — configurer le MFA et protéger vos services avec du SSO et l'authentification via reverse proxy.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Cloudflare Zero Trust title: Cloudflare Zero Trust
description: Utiliser les tunnels Cloudflare et Zero Trust pour exposer des services sans ouvrir de ports — configurer SWAG et gérer plusieurs tunnels.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Uptime-Kuma title: Uptime-Kuma
description: Installer Uptime-Kuma pour surveiller la disponibilité de vos services auto-hébergés, configurer des alertes et protéger le tableau de bord avec Authentik.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Dozzle title: Dozzle
description: Installer Dozzle pour surveiller les logs des conteneurs Docker en temps réel depuis une interface web épurée, exposée via SWAG.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Speedtest Tracker title: Speedtest Tracker
description: Installer Speedtest Tracker pour mesurer et enregistrer automatiquement la vitesse de votre connexion internet dans le temps, exposé avec SWAG.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Beszel title: Beszel
description: Installer Beszel pour surveiller CPU, RAM, disques et réseau de vos serveurs — y compris à distance — via un tableau de bord web léger.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: UpSnap title: UpSnap
description: Installer UpSnap pour allumer à distance des machines de votre réseau local via Wake-on-LAN, exposé avec SWAG.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Plex title: Plex
description: Installer Plex Media Server avec Tautulli sur votre homelab pour streamer films et séries depuis n'importe où sur tous vos appareils.
main: main:
fluid: false fluid: false
--- ---
+3 -2
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Qbittorrent title: Qbittorrent
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é.
main: main:
fluid: false fluid: false
--- ---
@@ -80,7 +81,7 @@ services:
- gluetun - gluetun
gluetun: gluetun:
image: qmcgaw/gluetun:v3.40.1 image: qmcgaw/gluetun:v3.41.3
container_name: gluetun container_name: gluetun
restart: unless-stopped restart: unless-stopped
mem_limit: 4g mem_limit: 4g
@@ -150,7 +151,7 @@ Entrez en modification en tapant `i` et éditez le comme suit en ajoutant la cl
```toml ```toml
[[roles]] [[roles]]
name = "t-anc/GSP-Qbittorent-Gluetun-sync-port-mod" name = "t-anc/GSP-Qbittorent-Gluetun-sync-port-mod"
routes = ["GET /v1/openvpn/portforwarded"] routes = ["GET /v1/portforward"]
auth = "apikey" auth = "apikey"
apikey = "votre_clée" # clée que vous avez générée précédemment apikey = "votre_clée" # clée que vous avez générée précédemment
``` ```
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Automatisation title: Automatisation
description: Automatiser les téléchargements de médias avec la suite Servarr — Radarr, Sonarr, Bazarr, Prowlarr et Overseerr pour films et séries.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Immich title: Immich
description: Installer Immich, une alternative auto-hébergée à Google Photos et iCloud avec reconnaissance faciale, géolocalisation et synchronisation multi-appareils.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Nextcloud title: Nextcloud
description: Installer Nextcloud pour auto-héberger vos fichiers, photos et agenda — une alternative respectueuse de la vie privée à Google Drive, OneDrive et iCloud.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
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 de manière sécurisée avec SWAG.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Pingvin title: Pingvin
description: Installer Pingvin Share, une plateforme d'envoi de fichiers auto-hébergée pour partager des fichiers de façon sécurisée sans WeTransfer ni Google Drive.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Code-Serveur title: Code-Serveur
description: Installer code-server pour utiliser VS Code dans votre navigateur depuis votre homelab — montez des dossiers et exposez-le de manière sécurisée avec SWAG.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Gitea title: Gitea
description: Installer Gitea, un service Git auto-hébergé léger pour gérer vos dépôts de code de façon privée sur votre propre serveur.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: IT-Tools title: IT-Tools
description: Installer IT Tools, une collection auto-hébergée d'utilitaires pratiques pour développeurs — convertisseurs, encodeurs, formateurs et plus encore.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Adguard Home title: Adguard Home
description: Installer AdGuard Home pour bloquer publicités et trackers à l'échelle du réseau avec DNS-over-HTTPS, gestion des clients et règles de filtrage personnalisées.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Vaultwarden title: Vaultwarden
description: Installer Vaultwarden, un gestionnaire de mots de passe auto-hébergé compatible Bitwarden pour remplacer les gestionnaires Google ou Apple sur tous vos appareils.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -2,6 +2,7 @@
icon: lucide:bookmark icon: lucide:bookmark
navigation: true navigation: true
title: Introduction title: Introduction
description: Introduction à Stockeex — un projet personnel de gestion de stock et d'inventaire. Documentation en cours de rédaction.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Nvidia Stock Bot title: Nvidia Stock Bot
description: Un bot Python qui surveille la disponibilité des GPU en temps réel et envoie des alertes Discord — créé lors de la pénurie de la série RTX 5000.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Adguard CIDRE title: Adguard CIDRE
description: Un script Python pour synchroniser automatiquement les listes CIDR d'AdGuard Home et sécuriser votre serveur DNS auto-hébergé exposé sur internet.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Lumeex title: Lumeex
description: Lumeex est un générateur de galerie photo statique en Python — minimaliste, léger et entièrement personnalisable sans CMS.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Instameex title: Instameex
description: Instameex est un outil Docker pour fusionner des exports SDR et HDR en un JPEG avec gain map prêt pour l'upload HDR sur Instagram.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Doublons servarr title: Doublons servarr
description: Un script bash pour détecter et corriger les fichiers médias en double dans les bibliothèques Sonarr et Radarr en remplaçant les copies par des hardlinks.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Luks backup title: Luks backup
description: Un script bash pour extraire automatiquement les headers LUKS de tous les disques chiffrés, les identifier par numéro de série et les archiver de façon chiffrée.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Socat Proxy title: Socat Proxy
description: Utiliser socat pour proxifier le socket Docker via Docker Socket Proxy, permettant à Beszel de collecter les stats des conteneurs sans exposer le socket complet.
main: main:
fluid: false fluid: false
--- ---
+1
View File
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: HotDisk title: HotDisk
description: Un script bash qui surveille la température des disques durs et éteint automatiquement le serveur lorsqu'ils dépassent un seuil de sécurité trop longtemps.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Backrest Docker Stop title: Backrest Docker Stop
description: Un script bash qui arrête les conteneurs Docker avant une sauvegarde Backrest et les redémarre après — pour des sauvegardes de bases de données sans dump complexe.
main: main:
fluid: false fluid: false
--- ---
@@ -1,6 +1,7 @@
--- ---
navigation: true navigation: true
title: Wireguard 14 title: Wireguard 14
description: Ancien guide WireGuard 14 conservé à titre archivé — voir le guide WireGuard à jour pour une installation actuelle.
main: main:
fluid: false fluid: false
--- ---
+7 -1
View File
@@ -39,10 +39,16 @@ export default defineNuxtConfig({
{ rel: 'manifest', href: '/img/favicon/site.webmanifest' } { rel: 'manifest', href: '/img/favicon/site.webmanifest' }
], ],
meta: [ meta: [
{ name: 'darkreader-lock' }, { name: 'darkreader-lock', content: 'true' },
] ]
} }
}, },
nitro: {
prerender: {
routes: ['/sitemap.xml']
}
},
compatibilityDate: '2024-10-24' compatibilityDate: '2024-10-24'
}) })
+8997 -2750
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -17,6 +17,6 @@
"@nuxtjs/plausible": "^1.0.3", "@nuxtjs/plausible": "^1.0.3",
"@types/node": "^22.9.0", "@types/node": "^22.9.0",
"eslint": "^9.14.0", "eslint": "^9.14.0",
"nuxt": "^3.14.159" "nuxt": "^3.21.11"
} }
} }
+14
View File
@@ -0,0 +1,14 @@
export default defineNuxtPlugin(() => {
const route = useRoute()
const { docus } = useAppConfig()
const canonicalUrl = computed(() => `${docus.url}${route.path}`)
useHead({
link: [
{ rel: 'canonical', href: canonicalUrl }
],
meta: [
{ property: 'og:url', content: canonicalUrl }
]
})
})
+23
View File
@@ -0,0 +1,23 @@
import { serverQueryContent } from '#content/server'
// generates /fr/sitemap.xml without @nuxtjs/sitemap (incompatible with baseURL /fr/)
export default defineEventHandler(async (event) => {
const docs = await serverQueryContent(event).find()
const urls = docs
.filter((doc: any) =>
doc._path &&
!doc._path.startsWith('/_') &&
!doc._path.endsWith('/_dir')
)
.map((doc: any) => ` <url><loc>https://docu.djeex.fr/fr${doc._path}</loc></url>`)
.join('\n')
const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${urls}
</urlset>`
setHeader(event, 'Content-Type', 'application/xml')
return sitemap
})