diff --git a/assets/css/extra.css b/assets/css/extra.css index d7747a5..d3ce8f0 100644 --- a/assets/css/extra.css +++ b/assets/css/extra.css @@ -49,6 +49,18 @@ max-width: var(--elements-container-maxWidth); } +.has-parent-icon .icon { + color: #ADA9A4; +} + +.has-parent-icon.active .icon { + color: var(--color-primary-500) !important; +} + +.card:hover{ + color:#00304a; +} + p img { border-radius:7px; } diff --git a/content/1.apropos/1.bienvenue.md b/content/1.apropos/1.bienvenue.md index d4b2c92..2ff6cbb 100644 --- a/content/1.apropos/1.bienvenue.md +++ b/content/1.apropos/1.bienvenue.md @@ -1,4 +1,5 @@ --- +icon: lucide:home title: Bienvenue main: fluid: false diff --git a/content/2.generalites/1.nat.md b/content/2.generalites/1.reseau/1.nat.md similarity index 100% rename from content/2.generalites/1.nat.md rename to content/2.generalites/1.reseau/1.nat.md diff --git a/content/2.generalites/2.dns.md b/content/2.generalites/1.reseau/2.dns.md similarity index 98% rename from content/2.generalites/2.dns.md rename to content/2.generalites/1.reseau/2.dns.md index c073b13..e2cbb64 100644 --- a/content/2.generalites/2.dns.md +++ b/content/2.generalites/1.reseau/2.dns.md @@ -53,7 +53,7 @@ Ainsi, si vous choisissez de pointer le domaine `mondomaine.fr` vers votre serve - __Attention,__ Si votre serveur est chez vous : ::: - l'IP publique est celle de votre box internet. Assurez-vous auprès de votre opérateur que cette IP est fixe ou configurez un [DDNS](https://aws.amazon.com/fr/what-is/dynamic-dns/). -- assurez-vous d'avoir [redirigé le port 443 vers le port d'écoute de votre serveur](/generalites/nat). +- assurez-vous d'avoir [redirigé le port 443 vers le port d'écoute de votre serveur](/generalites/reseau/nat). :: Et si vous ajoutez un sous-domaine qui doit pointer vers votre serveur, vous pouvez utiliser un enregistrement `CNAME` vers `mondomaine.fr`. diff --git a/content/2.generalites/3.samba.md b/content/2.generalites/1.reseau/3.samba.md similarity index 100% rename from content/2.generalites/3.samba.md rename to content/2.generalites/1.reseau/3.samba.md diff --git a/content/2.generalites/1.reseau/_dir.yml b/content/2.generalites/1.reseau/_dir.yml new file mode 100644 index 0000000..a8d85e3 --- /dev/null +++ b/content/2.generalites/1.reseau/_dir.yml @@ -0,0 +1,2 @@ +navigation.title: Réseau +icon: lucide:network \ No newline at end of file diff --git a/content/2.generalites/4.raid.md b/content/2.generalites/2.stockage/1.raid.md similarity index 100% rename from content/2.generalites/4.raid.md rename to content/2.generalites/2.stockage/1.raid.md diff --git a/content/2.generalites/5.zfs.md b/content/2.generalites/2.stockage/2.zfs.md similarity index 92% rename from content/2.generalites/5.zfs.md rename to content/2.generalites/2.stockage/2.zfs.md index c58c67d..2cb3c71 100644 --- a/content/2.generalites/5.zfs.md +++ b/content/2.generalites/2.stockage/2.zfs.md @@ -18,7 +18,7 @@ ZFS est populaire dans le monde des serveurs, des NAS (comme FreeNAS / TrueNAS), ZFS dépasse largement les limites des autres systèmes de fichiers, que cela soit en terme de performance ou de fonctionnalité. Ce qui nous intéresse le plus : - ses fonctionnalités de __gestion des instantanés__ (snaphsot), permettant de rapidement revenir en arrière en cas de problème -- sa gestion des grappes de disques et [__ses équivalent au RAID__](/generalites/raid) (Z-Mirror, RAIDZ1, RAIDZ2, RAIDZ3) +- sa gestion des grappes de disques et [__ses équivalent au RAID__](/generalites/stockage/raid) (Z-Mirror, RAIDZ1, RAIDZ2, RAIDZ3) - sa __reconstruction automatique des données corrumpues__ (via le scrubbing) - ses performance avec son cache RAM (ZFS ARC) - ses notifications en cas d'erreur @@ -46,7 +46,7 @@ ZFS vérifie automatiquement que les données stockées ne sont pas corrompues. ### RAID intégré -ZFS propose son propre système de gestion de volumes (vdev). Vous pouvez créer un pool de stockage (zpool) en combinant plusieurs disques, un peu comme avec le [RAID](/generalites/raid) classique, mais de façon plus souple. Par exemple : +ZFS propose son propre système de gestion de volumes (vdev). Vous pouvez créer un pool de stockage (zpool) en combinant plusieurs disques, un peu comme avec le [RAID](/generalites/stockage/raid) classique, mais de façon plus souple. Par exemple : - __Z-mirror__ => equivalent du RAID 1 - __RAIDZ1__ => équivalent du RAID 5 (tolérance à 1 panne disque) - __RAIDZ2__ => équivalent du RAID 6 (tolérance à 2 pannes disque) @@ -56,7 +56,7 @@ ZFS gère cela directement, pas besoin de logiciel RAID externe. ::alert{type="info"} :::list{type="info"} -- Consultez [l'article sur le RAID](/generalites/raid) pour en savoir plus sur la solution qui vous convient. +- Consultez [l'article sur le RAID](/generalites/stockage/raid) pour en savoir plus sur la solution qui vous convient. ::: :: diff --git a/content/2.generalites/2.stockage/_dir.yml b/content/2.generalites/2.stockage/_dir.yml new file mode 100644 index 0000000..da55507 --- /dev/null +++ b/content/2.generalites/2.stockage/_dir.yml @@ -0,0 +1,2 @@ +navigation.title: Stockage +icon: lucide:hard-drive \ No newline at end of file diff --git a/content/2.generalites/_dir.yml b/content/2.generalites/_dir.yml index 9e6024f..28f1bdb 100644 --- a/content/2.generalites/_dir.yml +++ b/content/2.generalites/_dir.yml @@ -1,3 +1,3 @@ icon: noto:open-book navigation.title: Généralités -navigation.redirect: /generalites/nat +navigation.redirect: /generalites/reseau/nat diff --git a/content/3.serveex/1.introduction.md b/content/3.serveex/1.introduction.md index a498216..4c1f793 100644 --- a/content/3.serveex/1.introduction.md +++ b/content/3.serveex/1.introduction.md @@ -1,4 +1,5 @@ --- +icon: lucide:bookmark navigation: true title: Introduction main: @@ -17,8 +18,8 @@ Un grand merci à **Nipah**, pour le partage de ses connaissances infinies, et s **Pré-requis :** :::list{type="primary"} - Posséder [un VPS en ligne](https://www.it-connect.fr/les-serveurs-prives-virtuels-vps-pour-les-debutants/) ou une machine locale : idéalement un mini PC (on trouve des N100 pour 100€), mais fonctionne aussi sur laptop ou [une machine virtuelle](https://openclassrooms.com/fr/courses/2035806-virtualisez-votre-architecture-et-vos-environnements-de-travail/6313946-installez-virtualbox). Les [Freebox Delta/Ultra proposent des machines virtuelles](https://next.ink/3493/machines-virtuelles-et-freebox-delta-comment-heberger-votre-premiere-page-web/). -- Savoir configurer les [règles NAT d'un routeur et attribuer des baux DHCP](/generalites/nat) -- Savoir configurer la [zone DNS d'un nom de domaine](/generalites/dns) +- Savoir configurer les [règles NAT d'un routeur et attribuer des baux DHCP](/generalites/reseau/nat) +- Savoir configurer la [zone DNS d'un nom de domaine](/generalites/reseau/dns) ::: :: diff --git a/content/3.serveex/2.coeur/1.installation.md b/content/3.serveex/2.coeur/1.installation.md index b53c509..252a8cc 100644 --- a/content/3.serveex/2.coeur/1.installation.md +++ b/content/3.serveex/2.coeur/1.installation.md @@ -61,7 +61,7 @@ En plus : - [Firewalld](https://linuxcapable.com/how-to-install-firewalld-on-debian-linux/) ### Partage Samba (accès à un disque réseau distant) -- [Créer et accéder à un partage Samba](/generalites/samba) +- [Créer et accéder à un partage Samba](/generalites/reseau/samba) ### Transfert de fichier via rsync diff --git a/content/3.serveex/2.coeur/3.swag.md b/content/3.serveex/2.coeur/3.swag.md index 3dc4324..be5943f 100644 --- a/content/3.serveex/2.coeur/3.swag.md +++ b/content/3.serveex/2.coeur/3.swag.md @@ -268,7 +268,7 @@ Dans les fichiers de conf des domaines (section suivante), vous pourrez activer --- ::alert{type="info"} 📋 __Prérequis :__

-Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `dockge.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `dockge.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). :: Il s'agit maintenant d'exposer Dockge sur internet, afin de pouvoir y accéder et gérer vos conteneurs sans que vous soyez chez vous. Pour cela, nous partons du principe que vous avez configuré un sous domaine `dockge.mondomaine.fr` dans votre zone DNS dont le `CNAME` pointe sur `mondomaine.fr`. diff --git a/content/3.serveex/2.coeur/_dir.yml b/content/3.serveex/2.coeur/_dir.yml index 52a6ca5..7da250b 100644 --- a/content/3.serveex/2.coeur/_dir.yml +++ b/content/3.serveex/2.coeur/_dir.yml @@ -1 +1,2 @@ navigation.title: Le coeur du serveur +icon: lucide:server-cog \ No newline at end of file diff --git a/content/3.serveex/3.securite/2.authentik.md b/content/3.serveex/3.securite/2.authentik.md index 302778c..e97f6af 100644 --- a/content/3.serveex/3.securite/2.authentik.md +++ b/content/3.serveex/3.securite/2.authentik.md @@ -195,7 +195,7 @@ Pour être utilisable hors de chez vous, vous devez exposer authentik. ::alert{type="info"} 📋 __Au préalable :__

-Nous partons du principe quer vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `auth.mondomaine.fr` avec pour CNAME `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +Nous partons du principe quer vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `auth.mondomaine.fr` avec pour CNAME `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). :: Ouvrez le fichier `authentik-server.conf`. diff --git a/content/3.serveex/3.securite/3.cloudflare.md b/content/3.serveex/3.securite/3.cloudflare.md index 4791371..e9daf80 100644 --- a/content/3.serveex/3.securite/3.cloudflare.md +++ b/content/3.serveex/3.securite/3.cloudflare.md @@ -46,7 +46,7 @@ Ici, nous expliquerons comment associer SWAG aux tunnels Cloudflare. --- ### Zone DNS -Avant toute chose, vous devez définir Cloudflare comme gestionnaire de votre [zone DNS](/generalites/dns). Si vous avez réservé votre nom de domaine chez Cloudflare, c'est déjà le cas. Sinon, renseignez vous auprès de votre registrar sur comment ajouter des DNS externes. Cloudflare dispose d'[une documentation expliquant pas à pas comment paramétrer une Zone DNS](https://developers.cloudflare.com/dns/zone-setups/full-setup/setup/), que vous ayez un domaine externe ou reservé chez Cloudflare. +Avant toute chose, vous devez définir Cloudflare comme gestionnaire de votre [zone DNS](/generalites/reseau/dns). Si vous avez réservé votre nom de domaine chez Cloudflare, c'est déjà le cas. Sinon, renseignez vous auprès de votre registrar sur comment ajouter des DNS externes. Cloudflare dispose d'[une documentation expliquant pas à pas comment paramétrer une Zone DNS](https://developers.cloudflare.com/dns/zone-setups/full-setup/setup/), que vous ayez un domaine externe ou reservé chez Cloudflare. Si vous avez qu'un seul serveur à protéger derrière Cloudflare, vous pouvez supprimer l'ensemble des enregistrement DNS existant, par défaut le domaine et tout ses sous-domaines seront directement redirigés vers le tunnel. @@ -216,10 +216,10 @@ TUNNEL_PW= Une fois fait, déployez la stack. Cela prendra un peu de temps, vérifiez les logs, vous devriez arriver à `serveur ready` -Une fois le conteneur en ligne, vérifiez dans cloudflare que votre tunnel est bien présent dans la section _Networks > Tunnels_ de [Cloudflare Zero Trust](https://one.dash.cloudflare.com/). Par défaut, l'ensemble des sous domaine sont redirigés vers le tunnel, sans avoir besoin de les déclarer [dans votre zone DNS](/generalites/dns). +Une fois le conteneur en ligne, vérifiez dans cloudflare que votre tunnel est bien présent dans la section _Networks > Tunnels_ de [Cloudflare Zero Trust](https://one.dash.cloudflare.com/). Par défaut, l'ensemble des sous domaine sont redirigés vers le tunnel, sans avoir besoin de les déclarer [dans votre zone DNS](/generalites/reseau/dns). ::alert{type="success"} -✨ __Astuce:__ si vous voulez exposer un service sans tunnel, vous pouvez toujours déclarer un enregistrement A [dans votre zone DNS](/generalites/dns). En cas de problème de résolution, désactivez la fonction _proxy_ pour cet enregistrement. Par exemple pour `sous.mondomaine.fr` +✨ __Astuce:__ si vous voulez exposer un service sans tunnel, vous pouvez toujours déclarer un enregistrement A [dans votre zone DNS](/generalites/reseau/dns). En cas de problème de résolution, désactivez la fonction _proxy_ pour cet enregistrement. Par exemple pour `sous.mondomaine.fr` ![dns](/img/serveex/cf-dns.png) :: diff --git a/content/3.serveex/3.securite/_dir.yml b/content/3.serveex/3.securite/_dir.yml index a1ce4b5..e6ac196 100644 --- a/content/3.serveex/3.securite/_dir.yml +++ b/content/3.serveex/3.securite/_dir.yml @@ -1 +1,2 @@ navigation.title: La sécurité +icon: lucide:shield \ No newline at end of file diff --git a/content/3.serveex/4.monitoring/1.uptime-kuma.md b/content/3.serveex/4.monitoring/1.uptime-kuma.md index 6c300fa..14f69fd 100644 --- a/content/3.serveex/4.monitoring/1.uptime-kuma.md +++ b/content/3.serveex/4.monitoring/1.uptime-kuma.md @@ -68,7 +68,7 @@ Vous n'avez plus qu'à accéder à l'outil via `http://ipdevotreserveur:3200`. ::alert{type="info"} 📋 __Au préalable :__

-Nous partons du principe que vous avez le sous-domaine `stats.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez le sous-domaine `stats.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/reseau/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/reseau/nat). :: ::alert{type="warning"} diff --git a/content/3.serveex/4.monitoring/2.dozzle.md b/content/3.serveex/4.monitoring/2.dozzle.md index adc82a1..ac42aba 100644 --- a/content/3.serveex/4.monitoring/2.dozzle.md +++ b/content/3.serveex/4.monitoring/2.dozzle.md @@ -79,7 +79,7 @@ Vous aurez peut-etre envie d'y accéder à distance et sur tout vos appareils. P ::alert{type="info"} 📋 __Au préalable :__

-Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `dozzle.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `dozzle.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). :: Rendez-vous dans dockge, et éditez le compose de SWAG en ajoutant le réseau de Dozzle : diff --git a/content/3.serveex/4.monitoring/3.speedtest-tracker.md b/content/3.serveex/4.monitoring/3.speedtest-tracker.md index 1a74c7c..efc671e 100644 --- a/content/3.serveex/4.monitoring/3.speedtest-tracker.md +++ b/content/3.serveex/4.monitoring/3.speedtest-tracker.md @@ -92,7 +92,7 @@ Déployez le conteneur et rendez-vous sur http://ipduserveur:3225. Connectez vou --- ::alert{type="info"} 📋 __Prérequis :__

-Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `speedtest.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `speedtest.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). :: Il s'agit maintenant d'exposer Speedtest Tracker sur internet, afin de pouvoir y accéder sans que vous soyez chez vous. Pour cela, nous partons du principe que vous avez configuré un sous domaine `speedtest.mondomaine.fr` dans votre zone DNS dont le `CNAME` pointe sur `mondomaine.fr`. diff --git a/content/3.serveex/4.monitoring/4.beszel.md b/content/3.serveex/4.monitoring/4.beszel.md index 9558d34..283d1a4 100644 --- a/content/3.serveex/4.monitoring/4.beszel.md +++ b/content/3.serveex/4.monitoring/4.beszel.md @@ -155,7 +155,7 @@ Vous aurez peut-etre envie d'y accéder à distance et sur tout vos appareils. P ::alert{type="info"} 📋 __Au préalable :__

-Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `beszel.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `beszel.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). :: Rendez-vous dans dockge, et éditez le compose de SWAG en ajoutant le réseau de Beszel : diff --git a/content/3.serveex/4.monitoring/5.upsnap.md b/content/3.serveex/4.monitoring/5.upsnap.md index 5af430d..755e730 100644 --- a/content/3.serveex/4.monitoring/5.upsnap.md +++ b/content/3.serveex/4.monitoring/5.upsnap.md @@ -94,7 +94,7 @@ Vous aurez peut-etre envie d'y accéder à distance et sur tout vos appareils. P ::alert{type="info"} 📋 __Au préalable :__

-Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `upsnap.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `upsnap.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). :: Rendez-vous dans dockge, et éditez le compose de SWAG en ajoutant le réseau de UpSnap : diff --git a/content/3.serveex/4.monitoring/_dir.yml b/content/3.serveex/4.monitoring/_dir.yml index a147d7a..7802d32 100644 --- a/content/3.serveex/4.monitoring/_dir.yml +++ b/content/3.serveex/4.monitoring/_dir.yml @@ -1 +1,2 @@ navigation.title: Monitoring +icon: lucide:chart-no-axes-column \ No newline at end of file diff --git a/content/3.serveex/5.media/1.plex.md b/content/3.serveex/5.media/1.plex.md index 3cd0d70..a382480 100644 --- a/content/3.serveex/5.media/1.plex.md +++ b/content/3.serveex/5.media/1.plex.md @@ -140,7 +140,7 @@ Ensuite rendez-vous dans la section _Accès à distance_ et choisissez un port m ![picture](/img/serveex/plex-port.png) -- Sur votre routeur, redirigez le port `TCP` source `1234` vers le port `32400`, vers l'IP de votre serveur via [les règles NAT](/generalites/nat). +- Sur votre routeur, redirigez le port `TCP` source `1234` vers le port `32400`, vers l'IP de votre serveur via [les règles NAT](/generalites/reseau/nat). - Une fois fait, retournez dans Plex afin de vérifier que la connexion est bien opérationnelle ::alert{type="danger"} @@ -159,7 +159,7 @@ Vous n'avez plus qu'a remplir les dossiers `/media/movies` et `/media/tvseries` ::alert{type="info"} :::list{type="info"} -- Si pour stocker vos média vous utilisez un disque réseau (par exemple un stockage sur un NAS ou un disque dur externe branché ailleurs sur le réseau), veuillez consulter la section [montage samba](/generalites/samba) afin que Plex puisse y accéder. +- Si pour stocker vos média vous utilisez un disque réseau (par exemple un stockage sur un NAS ou un disque dur externe branché ailleurs sur le réseau), veuillez consulter la section [montage samba](/generalites/reseau/samba) afin que Plex puisse y accéder. ::: :: @@ -170,7 +170,7 @@ Plex n'a pas besoin d'etre exposé, étant joignable directement depuis votre co En revanche, vous pouvez désirer exposer Tautulli, afin d'accéder aux stats même si vous n'est pas chez vous, depuis une simple url. ::alert{type="info"} :::list{type="info"} -- Nous partons du principe que vous avez le sous-domaine `tautulli.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/generalites/nat). +- Nous partons du principe que vous avez le sous-domaine `tautulli.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans [zone DNS](/generalites/reseau/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/5.media/2.qbittorrent.md b/content/3.serveex/5.media/2.qbittorrent.md index 3e6aa1b..a8dbe18 100644 --- a/content/3.serveex/5.media/2.qbittorrent.md +++ b/content/3.serveex/5.media/2.qbittorrent.md @@ -218,7 +218,7 @@ Afin de lancer des téléchargement hors de chez vous, sans VPN, vous pouvez exp ::alert{type="info"} :::list{type="info"} -- Nous partons du principe que vous avez le sous-domaine `seedbox.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/generalites/nat). +- Nous partons du principe que vous avez le sous-domaine `seedbox.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans [zone DNS](/generalites/reseau/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/5.media/3.servarr.md b/content/3.serveex/5.media/3.servarr.md index a8aa6f7..7f004eb 100644 --- a/content/3.serveex/5.media/3.servarr.md +++ b/content/3.serveex/5.media/3.servarr.md @@ -395,7 +395,7 @@ Il peut etre intéressant d'exposer Overseerr, si vous souhaitez pouvoir faire d ::alert{type="info"} :::list{type="info"} -- Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` qui pointe vers `films.fr` dans [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/generalites/nat). +- Nous partons du principe que vous avez le sous-domaine `films.mondomaine.fr` avec un `CNAME` qui pointe vers `films.fr` dans [zone DNS](/generalites/reseau/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/5.media/_dir.yml b/content/3.serveex/5.media/_dir.yml index 02b52c4..c704d0f 100644 --- a/content/3.serveex/5.media/_dir.yml +++ b/content/3.serveex/5.media/_dir.yml @@ -1 +1,2 @@ navigation.title: Media & Seedbox +icon: lucide:list-video \ No newline at end of file diff --git a/content/3.serveex/6.cloud/1.immich.md b/content/3.serveex/6.cloud/1.immich.md index 4b4d622..2b410fe 100644 --- a/content/3.serveex/6.cloud/1.immich.md +++ b/content/3.serveex/6.cloud/1.immich.md @@ -42,7 +42,7 @@ Configurer le `.env` en copiant collant le contenu de la dernière version [publ ::alert{type="info"} :::list{type="info"} -- Si vous avez un NAS ou un disque réseau partagé via [samba](/generalites/samba/) pour stocker vos données, remplacez la valeur de `UPLOAD_LOCATION`{lang=properties} par le chemin d'accès de votre dossier partagé. +- Si vous avez un NAS ou un disque réseau partagé via [samba](/generalites/reseau/samba/) pour stocker vos données, remplacez la valeur de `UPLOAD_LOCATION`{lang=properties} par le chemin d'accès de votre dossier partagé. ::: :: @@ -61,7 +61,7 @@ Tout l'intérêt d'une telle solution, c'est de pouvoir y accéder à distance e ::alert{type="info"} 📋 __Au préalable :__

-Nous partons du principe que vous avez le sous-domaine `immich.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez le sous-domaine `immich.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/reseau/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/reseau/nat). :: Dans Dockge, rendez-vous dans la stack de SWAG et éditez le compose en ajoutant le réseau de immich : diff --git a/content/3.serveex/6.cloud/2.nextcloud.md b/content/3.serveex/6.cloud/2.nextcloud.md index dc3412d..93b9e61 100644 --- a/content/3.serveex/6.cloud/2.nextcloud.md +++ b/content/3.serveex/6.cloud/2.nextcloud.md @@ -57,7 +57,7 @@ services: ::alert{type="info"} :::list{type="info"} -- Si vous avez un NAS ou un disque réseau partagé via [samba](/generalites/samba) pour stocker vos données, remplacez `/docker/nextcloud/data` par le chemin d'accès de votre dossier partagé. +- Si vous avez un NAS ou un disque réseau partagé via [samba](/generalites/reseau/samba) pour stocker vos données, remplacez `/docker/nextcloud/data` par le chemin d'accès de votre dossier partagé. ::: :: @@ -88,7 +88,7 @@ Tout l'intérêt d'une telle solution, c'est de pouvoir y accéder à distance e ::alert{type="info"} :::list{type="info"} -- Nous partons du principe que vous avez le sous-domaine `nextcloud.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/nat). +- Nous partons du principe que vous avez le sous-domaine `nextcloud.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/reseau/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/6.cloud/_dir.yml b/content/3.serveex/6.cloud/_dir.yml index 2f5fcc6..30ddb2e 100644 --- a/content/3.serveex/6.cloud/_dir.yml +++ b/content/3.serveex/6.cloud/_dir.yml @@ -1 +1,2 @@ navigation.title: Cloud Drive & Photos +icon: lucide:cloud-upload \ No newline at end of file diff --git a/content/3.serveex/7.files/1.file-browser.md b/content/3.serveex/7.files/1.file-browser.md index f7ecdd6..e5f759f 100644 --- a/content/3.serveex/7.files/1.file-browser.md +++ b/content/3.serveex/7.files/1.file-browser.md @@ -67,7 +67,7 @@ Vous aurez peut-etre envie d'y accéder à distance et sur tout vos appareils. P ::alert{type="info"} :::list{type="info"} -- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `files.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `files.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/7.files/2.pingvin.md b/content/3.serveex/7.files/2.pingvin.md index a1fa640..a4d396d 100644 --- a/content/3.serveex/7.files/2.pingvin.md +++ b/content/3.serveex/7.files/2.pingvin.md @@ -81,7 +81,7 @@ Tout l'intérêt d'une telle solution, c'est de pouvoir y accéder à distance e ::alert{type="info"} 📋 __Au préalable :__

-Nous partons du principe que vous avez le sous-domaine `pingvin.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/nat). +Nous partons du principe que vous avez le sous-domaine `pingvin.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/generalites/reseau/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/generalites/reseau/nat). :: Dans Dockge, rendez-vous dans la stack de SWAG et éditez le compose en ajoutant le réseau de pingvin : diff --git a/content/3.serveex/7.files/_dir.yml b/content/3.serveex/7.files/_dir.yml index 7ad2125..0a0cb7f 100644 --- a/content/3.serveex/7.files/_dir.yml +++ b/content/3.serveex/7.files/_dir.yml @@ -1 +1,2 @@ navigation.title: Fichiers & partage +icon: lucide:folder-tree \ No newline at end of file diff --git a/content/3.serveex/8.development/1.code-server.md b/content/3.serveex/8.development/1.code-server.md index 19bec8a..6cd7b19 100644 --- a/content/3.serveex/8.development/1.code-server.md +++ b/content/3.serveex/8.development/1.code-server.md @@ -122,7 +122,7 @@ Tout l'intérêt d'une telle solution, c'est de pouvoir y accéder à distance e ::alert{type="info"} :::list{type="info"} -- __Au préalable :__ Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `code.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +- __Au préalable :__ Nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `code.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/8.development/2.gitea.md b/content/3.serveex/8.development/2.gitea.md index 4741c64..302d7b7 100644 --- a/content/3.serveex/8.development/2.gitea.md +++ b/content/3.serveex/8.development/2.gitea.md @@ -73,7 +73,7 @@ Tout l'intérêt d'une telle solution, c'est de pouvoir y accéder à distance e ::alert{type="info"} :::list{type="info"} -- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `gitea.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `gitea.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/8.development/3.it-tools.md b/content/3.serveex/8.development/3.it-tools.md index 80c88de..42b10dd 100644 --- a/content/3.serveex/8.development/3.it-tools.md +++ b/content/3.serveex/8.development/3.it-tools.md @@ -59,7 +59,7 @@ Vous aurez peut-etre envie d'y accéder à distance et sur tout vos appareils. P ::alert{type="info"} :::list{type="info"} -- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `tools.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `tools.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). ::: :: diff --git a/content/3.serveex/8.development/_dir.yml b/content/3.serveex/8.development/_dir.yml index c0bed4c..5bd87c8 100644 --- a/content/3.serveex/8.development/_dir.yml +++ b/content/3.serveex/8.development/_dir.yml @@ -1 +1,2 @@ -navigation.title: Développement \ No newline at end of file +navigation.title: Développement +icon: lucide:code-xml \ No newline at end of file diff --git a/content/3.serveex/9.apps/1.adguard.md b/content/3.serveex/9.apps/1.adguard.md index 0c6b9a5..5fbb464 100644 --- a/content/3.serveex/9.apps/1.adguard.md +++ b/content/3.serveex/9.apps/1.adguard.md @@ -105,7 +105,7 @@ Pour être utilisable hors de chez vous, vous devez exposer Adguard ::alert{type="info"} :::list{type="info"} -- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `adguard.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). Redirigez également le port `53` et le port `853` vers votre serveur. Ces ports serviront à router les requêtes DNS. +- __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `adguard.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). Redirigez également le port `53` et le port `853` vers votre serveur. Ces ports serviront à router les requêtes DNS. ::: :: diff --git a/content/3.serveex/9.apps/2.vaultwarden.md b/content/3.serveex/9.apps/2.vaultwarden.md index a77c9c7..ec188a9 100644 --- a/content/3.serveex/9.apps/2.vaultwarden.md +++ b/content/3.serveex/9.apps/2.vaultwarden.md @@ -109,7 +109,7 @@ Depuis quelques temps, Vaultwarden ne permet pas d'etre accéder sans certificat Tout l'intérêt d'une telle solution, c'est de pouvoir y accéder à distance et sur tout vos appareils. Pour cela, nous allons exposer Vaultwarden via [SWAG](/serveex/coeur/swag). ::alert{type="info"} -✨ __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/dns) un sous domaine du type `vault.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/nat). +✨ __Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/generalites/reseau/dns) un sous domaine du type `vault.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/serveex/securite/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/generalites/reseau/nat). :: Dans Dockge, rendez-vous dans la stack de SWAG et éditez le compose en ajoutant le réseau de vaultwarden : diff --git a/content/3.serveex/9.apps/_dir.yml b/content/3.serveex/9.apps/_dir.yml index be17195..748f278 100644 --- a/content/3.serveex/9.apps/_dir.yml +++ b/content/3.serveex/9.apps/_dir.yml @@ -1 +1,2 @@ navigation.title: Applications utiles +icon: lucide:award \ No newline at end of file diff --git a/content/4.Stockeex/1.introduction.md b/content/4.Stockeex/1.introduction.md index fbb5ff9..0f6f109 100644 --- a/content/4.Stockeex/1.introduction.md +++ b/content/4.Stockeex/1.introduction.md @@ -1,4 +1,5 @@ --- +icon: lucide:bookmark navigation: true title: Introduction main: diff --git a/content/5.betises/1.python/1.nvidia-stock-bot.md b/content/5.betises/1.python/1.nvidia-stock-bot.md new file mode 100644 index 0000000..3e3f68a --- /dev/null +++ b/content/5.betises/1.python/1.nvidia-stock-bot.md @@ -0,0 +1,43 @@ +--- +navigation: true +title: Nvidia Stock Bot +main: + fluid: false +--- +:ellipsis{left=0px width=40rem top=10rem blur=140px} +# Scripts python + +Mes cochonneries en python + +## 🤖 Nvidia Stock Bot +--- + +Depuis déjà 4 ans, la pénurie de materiel electronique fait rage. Et les cartes graphiques ne sont pas épargnées. En 2020, j'ai du attendre 2 mois pour obtenir mon exemplaire de RTX 3080, et pour cela j'ai du m'inscrire sur [JV Hardware](https://discord.gg/gxffg3GA96) où une poignée de geek avait mis en place un bot qui envoyait un ping lorsqu'elles étaient disponibles. + +4 ans après et 5000 abonnés plus tard, vient la sortie des RTX 5000. Et là aucun bot dispo sur le marché ne semble fonctionner correctement. Je ne parle même pas d'un certain "influenceur" qui se permet de faire payer l'accès à son bot qui ne fonctionne meme pas. Il copie à la main les alertes provenant d'autres serveurs, comme le notre qui ont résolu le problème. + +Quoiqu'il en soit, désireux d'obtenir une RTX 5090 pour ma machine dédiée à l'IA, je me suis dit qu'il était peut etre le temps de plonger dans le monde de python et de ChatGPT pour m'épauler. A l'aide d'un autre membre du serveur, KevOut, qui a principalement guidé sur le principe de départ et les sources des différentes API, j'ai réussi à obtenir un bot propre, fonctionnel, qui envoie différents types d'alertes via Discord. Avec un simple conteneur docker à déployer. + +Après moult déconvenues, je suis passé de ceci : + +![Nvidia Stock Bot Old](/img/betises/nvidia-stock-bot-old.svg) + +à cela : + +![Nvidia Stock bot](/img/betises/nvidia-stock-bot.svg) + +Et plus récemment : + +![Nvidia Stock bot](/img/betises/nvidia-stock-bot-en-v4.svg) + +J'ai également eu la chance d'être référencé dans la fameuse [newsletter selfhost](https://selfh.st/weekly/2025-07-11/) ! + +Plus d'infos directement sur le repo : + + + ::card + #title + 🐋 __Nvidia Stock Bot__ + #description + [Robot d'alerte de stock de GPU Nvidia](https://git.djeex.fr/Djeex/nvidia-stock-bot) + :: diff --git a/content/5.betises/2.python.md b/content/5.betises/1.python/2.adguard-cidre.md similarity index 54% rename from content/5.betises/2.python.md rename to content/5.betises/1.python/2.adguard-cidre.md index 053ea49..29a2a6d 100644 --- a/content/5.betises/2.python.md +++ b/content/5.betises/1.python/2.adguard-cidre.md @@ -1,48 +1,11 @@ --- navigation: true -title: Scripts python +title: Adguard CIDRE main: fluid: false --- :ellipsis{left=0px width=40rem top=10rem blur=140px} -# Scripts python - -Mes cochonneries en python - -## 🤖 Nvidia Stock Bot ---- - -Depuis déjà 4 ans, la pénurie de materiel electronique fait rage. Et les cartes graphiques ne sont pas épargnées. En 2020, j'ai du attendre 2 mois pour obtenir mon exemplaire de RTX 3080, et pour cela j'ai du m'inscrire sur [JV Hardware](https://discord.gg/gxffg3GA96) où une poignée de geek avait mis en place un bot qui envoyait un ping lorsqu'elles étaient disponibles. - -4 ans après et 5000 abonnés plus tard, vient la sortie des RTX 5000. Et là aucun bot dispo sur le marché ne semble fonctionner correctement. Je ne parle même pas d'un certain "influenceur" qui se permet de faire payer l'accès à son bot qui ne fonctionne meme pas. Il copie à la main les alertes provenant d'autres serveurs, comme le notre qui ont résolu le problème. - -Quoiqu'il en soit, désireux d'obtenir une RTX 5090 pour ma machine dédiée à l'IA, je me suis dit qu'il était peut etre le temps de plonger dans le monde de python et de ChatGPT pour m'épauler. A l'aide d'un autre membre du serveur, KevOut, qui a principalement guidé sur le principe de départ et les sources des différentes API, j'ai réussi à obtenir un bot propre, fonctionnel, qui envoie différents types d'alertes via Discord. Avec un simple conteneur docker à déployer. - -Après moult déconvenues, je suis passé de ceci : - -![Nvidia Stock Bot Old](/img/betises/nvidia-stock-bot-old.svg) - -à cela : - -![Nvidia Stock bot](/img/betises/nvidia-stock-bot.svg) - -Et plus récemment : - -![Nvidia Stock bot](/img/betises/nvidia-stock-bot-en-v4.svg) - -J'ai également eu la chance d'être référencé dans la fameuse [newsletter selfhost](https://selfh.st/weekly/2025-07-11/) ! - -Plus d'infos directement sur le repo : - - - ::card - #title - 🐋 __Nvidia Stock Bot__ - #description - [Robot d'alerte de stock de GPU Nvidia](https://git.djeex.fr/Djeex/nvidia-stock-bot) - :: - -## 🤖 Adguard CIDRE Sync +# 🤖 Adguard CIDRE Sync --- Adguard Home est une solution merveilleuse pour filter ses requêtes DNS et ainsi se débarasser de la publicité ou des DNS des fournisseurs d'accès, ou encore réécrire des requetes. diff --git a/content/5.betises/1.bash.md b/content/5.betises/2.bash/1.servarr-doublons.md similarity index 66% rename from content/5.betises/1.bash.md rename to content/5.betises/2.bash/1.servarr-doublons.md index bf3528c..02edac2 100644 --- a/content/5.betises/1.bash.md +++ b/content/5.betises/2.bash/1.servarr-doublons.md @@ -1,15 +1,12 @@ --- navigation: true -title: Scripts bash +title: Doublons servarr main: fluid: false --- :ellipsis{left=0px width=40rem top=10rem blur=140px} -# Scripts bash -Quelques scripts en vracs qui m'ont sauvé la vie. - -## Detection de doublons et remplacement par des hardlinks +# Detection de doublons et remplacement par des hardlinks --- Six mois après avoir téléchargé des térabytes de media, je me suis rendu compte que Sonarr et Radarr les copaient dans ma biblio Plex au lieu de créer des hardlinks. C'est dû à un mécanisme contre intuitif qui est que si vous montez plusieurs dossiers dans Sonarr/Radarr, il les voit comme deux systemes de fichiers différents. Et ne peut donc pas créer de hardlinks. C'est pour cela qu'il ne faut monter qu'un seul dossier parent, qui contient tous les enfants (`downloads`, `movies`, `tvseries` dans le dossier parent `media` par exemple). @@ -142,84 +139,3 @@ Bilan j'ai : - appris qu'il ne faut jamais copier coller un script généré ChatGPT sans le comprendre et sans le tester en dry-run - appris que Qwen sur une RTX 5090 est plus cohérent que ChatGPT 4o sur des fermes de serveurs (je vous passe les résultats de la version "normale"). - appris que même quand on a 100TB d'espace, monitorer ce dernier m'aurait permis de voir beaucoup plus tot que j'avais 12TB de doublons qui trainent. - -## Backup des headers luks pour disques/volumes chiffrés ---- - -Je me suis rendu compte il y a peu qu'il ne suffisait pas d'avoir le mot de passe pour deverouiller un volume luks apres une panne ou une corruption. J'ai ainsi appris à dump les headers luks des disques/volumes et à utiliser les numéros de série + noms de partitions pour pouvoir bien identifier quel header correspond à quel disque/partition (j'en ai 10 !). - -Après avoir bien galéré à la main, j'avoue avoir demandé à Qwen3 (llm hebergé sur ma RTX 5090) de me faire un script qui automatise le listing et identification des disques, dump les headers et les stock dans une archive chiffrée prete à etre backupée sur mon serveur de sauvegarde. - -Ainsi, ce script : -* Liste et identifie les disques avec leur numéro de série -* Liste les partition -* Dump les headers dans un dossier dans `/root` (dossier sécurisé) -* Cree une archive temporaire -* Prompt pour saisir un mot de passe -* Chiffre avec le mot de passe -* Détruit l'archive non chiffrée - -``` -#!/bin/bash - -# Directory where LUKS headers will be backed up -DEST="/root/luks-headers-backup" -mkdir -p "$DEST" - -echo "🔍 Searching for LUKS containers on all partitions..." - -# Loop through all possible disk partitions (including NVMe and SATA) -for part in /dev/sd? /dev/sd?? /dev/nvme?n?p?; do - # Skip if the device doesn't exist - if [ ! -b "$part" ]; then - continue - fi - - # Check if the partition is a LUKS encrypted volume - if cryptsetup isLuks "$part"; then - # Find the parent disk device (e.g. nvme0n1p4 → nvme0n1) - disk=$(lsblk -no pkname "$part" | head -n 1) - full_disk="/dev/$disk" - - # Get the serial number of the parent disk - 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) - PART_NAME=$(basename "$part") - - # Build the output filename with partition name and disk serial - OUTPUT="$DEST/luks-header-${PART_NAME}__${SERIAL}.img" - - echo "🔐 Backing up LUKS header of $part (Serial: $SERIAL)..." - - # Backup the LUKS header to the output file - cryptsetup luksHeaderBackup "$part" --header-backup-file "$OUTPUT" - if [[ $? -eq 0 ]]; then - echo "✅ Backup successful → $OUTPUT" - else - echo "❌ Backup failed for $part" - fi - fi -done - -# Create a timestamped compressed tar archive of all header backups -ARCHIVE_NAME="/root/luks-headers-$(date +%Y%m%d_%H%M%S).tar.gz" -echo "📦 Creating archive $ARCHIVE_NAME..." -tar -czf "$ARCHIVE_NAME" -C "$DEST" . - -# Encrypt the archive symmetrically using GPG with AES256 cipher -echo "🔐 Encrypting the archive with 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 - rm -f "$ARCHIVE_NAME" -else - echo "❌ Encryption failed" -fi -``` - -Ne pas oublier de backup `/etc/fstab` et `/etc/crypttab` ! \ No newline at end of file diff --git a/content/5.betises/2.bash/2.luks-backup.md b/content/5.betises/2.bash/2.luks-backup.md new file mode 100644 index 0000000..26924d5 --- /dev/null +++ b/content/5.betises/2.bash/2.luks-backup.md @@ -0,0 +1,87 @@ +--- +navigation: true +title: Luks backup +main: + fluid: false +--- +:ellipsis{left=0px width=40rem top=10rem blur=140px} +# Backup des headers luks pour disques/volumes chiffrés +--- + +Je me suis rendu compte il y a peu qu'il ne suffisait pas d'avoir le mot de passe pour deverouiller un volume luks apres une panne ou une corruption. J'ai ainsi appris à dump les headers luks des disques/volumes et à utiliser les numéros de série + noms de partitions pour pouvoir bien identifier quel header correspond à quel disque/partition (j'en ai 10 !). + +Après avoir bien galéré à la main, j'avoue avoir demandé à Qwen3 (llm hebergé sur ma RTX 5090) de me faire un script qui automatise le listing et identification des disques, dump les headers et les stock dans une archive chiffrée prete à etre backupée sur mon serveur de sauvegarde. + +Ainsi, ce script : +* Liste et identifie les disques avec leur numéro de série +* Liste les partition +* Dump les headers dans un dossier dans `/root` (dossier sécurisé) +* Cree une archive temporaire +* Prompt pour saisir un mot de passe +* Chiffre avec le mot de passe +* Détruit l'archive non chiffrée + +``` +#!/bin/bash + +# Directory where LUKS headers will be backed up +DEST="/root/luks-headers-backup" +mkdir -p "$DEST" + +echo "🔍 Searching for LUKS containers on all partitions..." + +# Loop through all possible disk partitions (including NVMe and SATA) +for part in /dev/sd? /dev/sd?? /dev/nvme?n?p?; do + # Skip if the device doesn't exist + if [ ! -b "$part" ]; then + continue + fi + + # Check if the partition is a LUKS encrypted volume + if cryptsetup isLuks "$part"; then + # Find the parent disk device (e.g. nvme0n1p4 → nvme0n1) + disk=$(lsblk -no pkname "$part" | head -n 1) + full_disk="/dev/$disk" + + # Get the serial number of the parent disk + 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) + PART_NAME=$(basename "$part") + + # Build the output filename with partition name and disk serial + OUTPUT="$DEST/luks-header-${PART_NAME}__${SERIAL}.img" + + echo "🔐 Backing up LUKS header of $part (Serial: $SERIAL)..." + + # Backup the LUKS header to the output file + cryptsetup luksHeaderBackup "$part" --header-backup-file "$OUTPUT" + if [[ $? -eq 0 ]]; then + echo "✅ Backup successful → $OUTPUT" + else + echo "❌ Backup failed for $part" + fi + fi +done + +# Create a timestamped compressed tar archive of all header backups +ARCHIVE_NAME="/root/luks-headers-$(date +%Y%m%d_%H%M%S).tar.gz" +echo "📦 Creating archive $ARCHIVE_NAME..." +tar -czf "$ARCHIVE_NAME" -C "$DEST" . + +# Encrypt the archive symmetrically using GPG with AES256 cipher +echo "🔐 Encrypting the archive with 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 + rm -f "$ARCHIVE_NAME" +else + echo "❌ Encryption failed" +fi +``` + +Ne pas oublier de backup `/etc/fstab` et `/etc/crypttab` ! \ No newline at end of file