Compare commits
30 Commits
main
...
bb26e5e5b4
Author | SHA1 | Date | |
---|---|---|---|
bb26e5e5b4 | |||
09bd0bbd20 | |||
ff4fbb05c6 | |||
8a2cf3d75e | |||
dde0b724d5 | |||
ddbd0c6677 | |||
6ad48a3a2f | |||
233c06d58a | |||
0188964f24 | |||
92d3214602 | |||
5849eeb6c7 | |||
68defde59b | |||
eed768d108 | |||
96e095c099 | |||
79f852bd3d | |||
d346f7fb4a | |||
824b5b9eb3 | |||
a2e01614d3 | |||
4e748b50d7 | |||
a086969bd0 | |||
f807cd7a1f | |||
a80df85cad | |||
abcdf62f0f | |||
623d61e3d3 | |||
844e86b81f | |||
5317991f17 | |||
b69621c552 | |||
f749aade70 | |||
80cdcc9fb6 | |||
07e524857e |
@ -2,7 +2,7 @@
|
||||
<img src="https://git.djeex.fr/Djeex/DjeexLab/raw/branch/main/docs/files/img/global/lab.svg" align="center" width="700">
|
||||
|
||||
|
||||
[](https://docu.djeex.fr/) [](https://discord.gg/jvhardware) [](https://docu.djeex.fr/)
|
||||
[](https://docu.djeex.fr/) [](https://docu.djeex.fr/)
|
||||
|
||||
</p>
|
||||
|
||||
|
@ -29,16 +29,21 @@ export default defineAppConfig({
|
||||
image: '/img/social.png',
|
||||
socials: {
|
||||
github:'',
|
||||
Language: {
|
||||
label: 'En',
|
||||
icon: 'ri:english-input',
|
||||
href: 'https://docu.djeex.fr'
|
||||
},
|
||||
Gitea: {
|
||||
label: 'Gitea',
|
||||
icon: 'cib:gitea',
|
||||
href: 'https://git.djeex.fr/Djeex/docudjeex',
|
||||
},
|
||||
Discord: {
|
||||
label: 'Discord',
|
||||
icon: 'cbi:discord',
|
||||
href: 'https://discord.gg/jvhardware',
|
||||
},
|
||||
Github: {
|
||||
label: 'Github',
|
||||
icon:'cib:github',
|
||||
href: 'https://github.com/Djeex',
|
||||
}
|
||||
},
|
||||
github: {
|
||||
baseUrl:'https://git.djeex.fr',
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -14,38 +14,22 @@ cta:
|
||||
- Accéder à la doc
|
||||
- /apropos/bienvenue
|
||||
secondary:
|
||||
- Discord →
|
||||
- https://discord.gg/jvhardware
|
||||
- En →
|
||||
- https://docu.djeex.fr
|
||||
---
|
||||
|
||||
#title
|
||||
Bienvenue sur docu[·]{style="color: #1ad6ff"}djeex
|
||||
|
||||
#description
|
||||
De la doc, encore de la doc. Des astuces et des expériences. Vous y trouverez entre autre :
|
||||
De la doc, encore de la doc. Des astuces et des expériences. Construisez votre homelab et votre propre NAS.
|
||||
|
||||
#extra
|
||||
::list
|
||||
- **Installation de Debian** pour votre serveur
|
||||
- **Docker** pour déployer vos services
|
||||
- **VPN** pour accéder à votre réseau privé
|
||||
- **Reverse proxy** et **Zero Trust** pour exposer vos services
|
||||
- **SSO** et **Multi-facteur** pour protéger vos services exposés
|
||||
- **Cloud** et **media** pour accéder et synchroniser vos fichiers et media
|
||||
- _(à venir)_ **Créer votre NAS** de A à Z pour stocker vos données
|
||||
- _(à venir)_ **Backup 3-2-1**
|
||||
::
|
||||
|
||||

|
||||
#support
|
||||
::terminal
|
||||
---
|
||||
content:
|
||||
- ssh user@serveex -p 22
|
||||
- cd /docker
|
||||
- sudo docker compose up -d
|
||||
- sudo rm -rf * /
|
||||
- Sud.. shit shiiit shiiiiit !!!
|
||||
|
||||
---
|
||||
::
|
||||
::card{icon=cib:gitea style="color:#1ad6ff;"}
|
||||
#title
|
||||
__git.djeex.fr__
|
||||
#description
|
||||
[Consultez mes bêtises](https://git.djeex.fr)
|
||||
::
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: A propos
|
||||
icon: lucide:home
|
||||
title: Bienvenue
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
@ -7,7 +8,7 @@ main:
|
||||
|
||||
# docu[·]{style="color: #1ad6ff"}quoi ?
|
||||
|
||||
__Docu[·]{style="color: #1ad6ff"}djeex__ est le site regroupant la documentation de mes serveurs, pensé à l'origine pour retrouver facilement mes configurations et commandes. Mon infrastructure est construite autour du duo Debian 12 et docker, pour plus de simplicité à l'export et au déploiement. On remerciera principale __Nipah__ et __Xenio__ (et d'autres) pour leur patience et écoute. La majeur partie de ce contenu vient de leurs têtes. Rejoins nous sur [Discord](https://discord.gg/jvhardware) !
|
||||
__Docu[·]{style="color: #1ad6ff"}djeex__ est le site regroupant la documentation de mes serveurs, pensé à l'origine pour retrouver facilement mes configurations et commandes. Mon infrastructure est construite autour du duo Debian 12 et docker, pour plus de simplicité à l'export et au déploiement. On remerciera principalement __Nipah__ et __Xenio__ (et d'autres) pour leur patience et écoute. La majeur partie de ce contenu vient de leurs têtes.
|
||||
|
||||
## A propos de la documentation
|
||||
|
||||
|
@ -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`.
|
2
content/2.generalites/1.reseau/_dir.yml
Normal file
@ -0,0 +1,2 @@
|
||||
navigation.title: Réseau
|
||||
icon: lucide:network
|
117
content/2.generalites/2.stockage/1.raid.md
Normal file
@ -0,0 +1,117 @@
|
||||
---
|
||||
navigation: true
|
||||
title: RAID
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
# RAID
|
||||
|
||||
_Ensemble Redondant de Disques Indépendants_
|
||||
|
||||
::alert{type="info"}
|
||||
🎯 __Objectifs :__
|
||||
- Comprendre ce qu'est un système RAID
|
||||
- Comprendre quel type de RAID est adapté aux différents usages
|
||||
::
|
||||
|
||||
En informatique, le RAID (Redundant Array of Independent Disks) est un système permettant de combiner plusieurs disques durs pour améliorer les performances et/ou la fiabilité. Il fonctionne en restructurant et en répartissant les blocs de données entre les disques.
|
||||
|
||||
À l’origine, les systèmes RAID étaient matériels, ce qui signifiait qu’un contrôleur dédié (une puce spécifique) gérait la distribution des données et les opérations RAID. Aujourd’hui, la plupart des systèmes RAID (ou équivalents) sont logiciels. En fait, de nombreuses technologies logicielles peuvent créer des systèmes de type RAID avec des fonctionnalités indisponibles dans les RAID matériels, comme la réparation automatique (data scrubbing), les instantanés (snapshots), etc.
|
||||
|
||||
## Différents types de RAID
|
||||
|
||||
Il existe plusieurs types de RAID, chacun ayant ses avantages et inconvénients. Les facteurs qui les influencent sont les suivants :
|
||||
|
||||
- Nombre de disques
|
||||
- Capacité totale de stockage
|
||||
- Vitesse de lecture
|
||||
- Vitesse d’écriture
|
||||
- Tolérance aux pannes (résistance aux défaillances matérielles)
|
||||
|
||||
::alert{type="warning"}
|
||||
:::list{type="warning"}
|
||||
- Le RAID n’est pas un système de sauvegarde mais un système de continuité de service ! Il permet seulement le remplacement à chaud des disques sans interruption du serveur ou restauration depuis une sauvegarde. Vous avez toujours besoin d’un système de sauvegarde externe.
|
||||
:::
|
||||
::
|
||||
|
||||
### Sans RAID
|
||||
---
|
||||
|
||||
<div style="display: flex; align-items: center;">
|
||||
<img src="/img/global/no-raid.svg" alt="Image" style="max-width: 30%; max-height:230px; margin-right: 20px;">
|
||||
<ul>
|
||||
<li>Vos disques sans RAID. Les données sont stockées disque par disque.</li>
|
||||
<li>Si vous perdez un disque, seules ses données sont perdues.</li>
|
||||
<li>La capacité totale est la somme de tous les disques.</li>
|
||||
</div>
|
||||
|
||||
Utilisez vos disques sans RAID si vous n’avez pas peur de perdre des données et pouvez tolérer une interruption de service entre la panne et la restauration.
|
||||
|
||||
### RAID 0
|
||||
---
|
||||
|
||||
<div style="display: flex; align-items: center;">
|
||||
<img src="/img/global/raid0.svg" alt="Image" style="max-width: 30%; max-height:230px; margin-right: 20px;">
|
||||
<ul>
|
||||
<li>Le système voit un seul disque.</li>
|
||||
<li>Les données sont entrelacées entre tous les disques.</li>
|
||||
<li>Si un disque est perdu, toutes les données le sont.</li>
|
||||
<li>Excellentes performances en lecture et écriture (multipliées par le nombre de disques).</li>
|
||||
<li>La capacité totale est la somme de tous les disques.</li>
|
||||
<li>Minimum de 2 disques requis.</li>
|
||||
</div>
|
||||
|
||||
Utilisez RAID 0 si vous souhaitez privilégier la performance et que la perte de données n’est pas un problème. Idéal pour le stockage temporaire à haute vitesse (montage vidéo, IA, etc). Pas adapté au stockage à long terme.
|
||||
|
||||
### RAID 1
|
||||
---
|
||||
|
||||
<div style="display: flex; align-items: center;">
|
||||
<img src="/img/global/raid1.svg" alt="Image" style="max-width: 30%; max-height:230px; margin-right: 20px;">
|
||||
<ul>
|
||||
<li>Le système voit un seul disque.</li>
|
||||
<li>Tous les disques contiennent les mêmes données.</li>
|
||||
<li>Vous pouvez perdre tous les disques tant qu'un seul est en bonne santé.</li>
|
||||
<li>Vitesse de lecture améliorée (selon le nombre de disques).</li>
|
||||
<li>Capacité totale égale à un seul disque (ex. : 2×10 To = 10 To).</li>
|
||||
<li>Minimum de 2 disques requis.</li>
|
||||
</div>
|
||||
|
||||
Utilisez RAID 1 pour une redondance maximale. Chaque disque contient toutes les données, donc les performances ne sont pas affectées en cas de panne. Une fois les disques remplacés, les données sont rapidement restaurées. Mais la capacité utilisable est limitée à un seul disque, ce qui en fait une solution coûteuse.
|
||||
|
||||
::alert{type="success"}
|
||||
:::list{type="success"}
|
||||
- __Astuce :__ Vous pouvez combiner le RAID 1 avec d’autres types de RAID pour créer des grappes miroir.
|
||||
:::
|
||||
::
|
||||
|
||||
### RAID 5
|
||||
---
|
||||
<p align="center">
|
||||
<img src="/img/global/raid5.svg" alt="Image" style="max-width: 40%; margin-right: 20px;">
|
||||
</p>
|
||||
|
||||
- Le système voit un seul disque.
|
||||
- Les données sont entrelacées avec des blocs de parité.
|
||||
- Vous pouvez perdre un disque et récupérer les données.
|
||||
- Vitesse de lecture améliorée (selon le nombre de disques).
|
||||
- Capacité totale = somme des disques – 1 (ex. : 3×10 To = 20 To).
|
||||
- Minimum de 3 disques (4 recommandés pour limiter la perte de capacité).
|
||||
|
||||
Utilisez RAID 5 pour un stockage fiable avec 3 à 5 disques et une perte minimale d’espace. Il tolère une panne, mais la reconstruction peut durer plusieurs jours avec des performances dégradées.
|
||||
|
||||
### RAID 6
|
||||
---
|
||||
<p align="center">
|
||||
<img src="/img/global/raid6.svg" alt="Image" style="max-width: 50%; margin-right: 20px;">
|
||||
</p>
|
||||
|
||||
- Le système voit un seul disque.
|
||||
- Les données sont entrelacées avec deux blocs de parité.
|
||||
- Vous pouvez perdre 2 disques et récupérer les données.
|
||||
- Vitesse de lecture améliorée (selon le nombre de disques).
|
||||
- Capacité totale = somme des disques – 2 (ex. : 4×10 To = 20 To).
|
||||
- Minimum de 4 disques (6 recommandés pour minimiser la perte d’espace).
|
||||
|
||||
Utilisez RAID 6 dans les mêmes cas que RAID 5, surtout avec 6 disques ou plus. Plus de disques = plus de risque de panne. RAID 6 vous apportera plus de fiabilité en cas de panne simultanée de deux disques. Il n'y a rien de plus frustrant que de perdre un second disque en pleine reconstruction du remplacement du premier.
|
71
content/2.generalites/2.stockage/2.zfs.md
Normal file
@ -0,0 +1,71 @@
|
||||
---
|
||||
navigation: true
|
||||
title: ZFS
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
# ZFS
|
||||
|
||||
::alert{type="info"}
|
||||
🎯 __Objectifs :__
|
||||
- Comprendre ce qu'est ZFS et son utilité
|
||||
::
|
||||
|
||||
ZFS est populaire dans le monde des serveurs, des NAS (comme FreeNAS / TrueNAS), de la virtualisation, et même chez les particuliers qui veulent un stockage résilient. C'est est un _système de fichier_ (à l'instar de NTFS pour windows, EXT4, FAT32 etc...) mais également un __gestionnaire de volume__ (comme LVM par exemple). Pour le dire (très) rapidement, un gestionnaire de volume arrange l'espace sur des espaces physiques comme un ou plusieurs disques durs, et un gestionnaire de fichier arrange la maniere dont sont organisés les blocs de données dans ces volumes pour écrire, lire et supprimer les données.
|
||||
|
||||
|
||||
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/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
|
||||
|
||||
## Structure
|
||||
|
||||

|
||||
|
||||
ZFS dispose d'une structure particulière :
|
||||
|
||||
- __vdev__ (virtual device) : une grappe de disques (physiques ou virtuel)
|
||||
- __zpool__ : un ensemble de disques physiques ou virtuels en volume simple, Z-mirror ou RAIDZ. Un _zpool_ peut englober plusieurs _vdev_ mais pas l'inverse.
|
||||
- __dataset__ : un système de de donnée dans un _zpool_. Chaque dataset peut avoir ses propres options (compression, quotas, permissions, etc.).
|
||||
|
||||
Il existe plusieurs types de dataset :
|
||||
- __file system__ : un système de fichier, ZFS par défaut, monté comme un volume sans quota de stockage.
|
||||
- __zvol__ : un "disque virtuel" avec un quota d'espace, que vous pouvez formater/partitionner comme vous le souhaitez. Il sera utilisable comme un disque physique.
|
||||
- __snapshot__ : un état figé d’un autre dataset à un instant donné. Ils peuvent etre créés manuellement ou via des outils de sauvegarde. Ils peuvent etre montés pour parcourir les données dans leur état au moment du snapshot.
|
||||
|
||||
## Pourquoi ZFS vs les autres ?
|
||||
|
||||
### Intégrité des données
|
||||
|
||||
ZFS vérifie automatiquement que les données stockées ne sont pas corrompues. Chaque bloc de données est accompagné d’une empreinte (checksum) qui permet à ZFS de détecter toute altération, même minime. Et s’il y a un problème, il peut souvent le réparer automatiquement, si une copie saine existe ailleurs dans le système.
|
||||
|
||||
### 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/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)
|
||||
- __RAIDZ3__ => (tolérance à 3 pannes disque)
|
||||
|
||||
ZFS gère cela directement, pas besoin de logiciel RAID externe.
|
||||
|
||||
::alert{type="info"}
|
||||
:::list{type="info"}
|
||||
- Consultez [l'article sur le RAID](/generalites/stockage/raid) pour en savoir plus sur la solution qui vous convient.
|
||||
:::
|
||||
::
|
||||
|
||||
### Snapshots et clones
|
||||
|
||||
ZFS permet de créer des snapshots, c’est-à-dire des captures instantanées de l’état d’un système de fichiers à un moment donné. Ces snapshots prennent très peu d’espace et peuvent être créés automatiquement et fréquemment. Vous pouvez aussi faire des clones : des copies modifiables d’un snapshot.
|
||||
|
||||
### Compression et déduplication
|
||||
|
||||
ZFS peut compresser les données à la volée (transparente pour l’utilisateur), ce qui permet d’économiser de l’espace disque. Il propose aussi la déduplication (éliminer les doublons), mais cette fonctionnalité consomme beaucoup de mémoire et n’est pas recommandée pour tous les usages.
|
||||
|
||||
Voilà, à présent vous savez pourquoi ZFS est Ze systeme de fichier à déployer sur votre NAS.
|
2
content/2.generalites/2.stockage/_dir.yml
Normal file
@ -0,0 +1,2 @@
|
||||
navigation.title: Stockage
|
||||
icon: lucide:hard-drive
|
@ -1,3 +1,3 @@
|
||||
icon: noto:open-book
|
||||
navigation.title: Généralités
|
||||
navigation.redirect: /generalites/nat
|
||||
navigation.redirect: /generalites/reseau/nat
|
||||
|
@ -1,4 +1,5 @@
|
||||
---
|
||||
icon: lucide:bookmark
|
||||
navigation: true
|
||||
title: Introduction
|
||||
main:
|
||||
@ -7,8 +8,7 @@ main:
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
## Un home lab par un débutant pour les débutants
|
||||
|
||||
<p align="center">
|
||||
<img src="/img/serveex/serveex.svg" align="center" width="700">
|
||||

|
||||
|
||||
**Serveex** c'est avant tout un projet personnel visant à héberger chez soi le plus de services possibles du quotidien sans passer par des plateformes propriétaires (Google, Apple, Netflix...). L'idée était d'expérimenter, d'apprendre, et de documenter chaque étape. C'est un projet purement pour la science, et n'a pas vocation à être utilisé en production.
|
||||
|
||||
@ -18,12 +18,15 @@ 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)
|
||||
:::
|
||||
::
|
||||
|
||||
L'objectif etant d'etre facilement déployable et facile à migrer, voici sa structure :
|
||||
<p align="center">
|
||||
<img src="/img/serveex/serveex.svg" align="center" width="700">
|
||||
|
||||
L'objectif étant d'etre facilement déployable et facile à migrer, voici sa structure :
|
||||
|
||||
::card-grid{grid-template-columns="repeat(2, minmax(0, 1fr));"}
|
||||
#title
|
||||
@ -273,5 +276,4 @@ Applications utiles
|
||||
- Homepage, pour avoir tout vos services en un coup d'oeil et y accéder facilement
|
||||
- Mkdocs pour votre documentation
|
||||
- Docus, alternative à Mkdocs
|
||||
- Speedtest-tracker pour vérifier la connexion de votre serveur
|
||||
- UpSnap pour réveiller vos machines à distance
|
@ -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
|
||||
|
@ -16,7 +16,7 @@ main:
|
||||
- Exposer Dockge
|
||||
::
|
||||
|
||||
[Swag](https://docs.linuxserver.io/general/swag/) est le noyau de ce homelab. C'est un reverse proxy puissant qui permet d'exposer des services sur le net via un ou des noms de domaines, en se chargeant de l'émission des certificats SSL (pour garder des connexions chiffrées), du routage des requêtes et de la sécurisation des accès (par authent HTTP ou par SSO comme Authelia ou Authentik). Toute la doc nécessaire ce [situe ici](https://docs.linuxserver.io/general/swag).
|
||||
[Swag](https://docs.linuxserver.io/general/swag/) est le noyau de ce homelab. C'est un reverse proxy puissant qui permet d'exposer des services sur le net via un ou des noms de domaines, en se chargeant de l'émission des certificats SSL (pour garder des connexions chiffrées), du routage des requêtes et de la sécurisation des accès (par authent HTTP ou par SSO comme Authelia ou Authentik). Toute la doc nécessaire se [situe ici](https://docs.linuxserver.io/general/swag).
|
||||
|
||||
::alert{type="warning"}
|
||||
:::list{type="warning"}
|
||||
@ -268,7 +268,7 @@ Dans les fichiers de conf des domaines (section suivante), vous pourrez activer
|
||||
---
|
||||
::alert{type="info"}
|
||||
📋 __Prérequis :__ <br/></br>
|
||||
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`.
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: Le coeur du serveur
|
||||
icon: lucide:server-cog
|
@ -81,8 +81,6 @@ Copiez la configuration suivante :
|
||||
|
||||
```yaml
|
||||
---
|
||||
volumes:
|
||||
etc_wireguard:
|
||||
services:
|
||||
wg-easy:
|
||||
network_mode: host
|
||||
@ -108,7 +106,9 @@ services:
|
||||
- SYS_MODULE
|
||||
```
|
||||
::alert{type="success"}
|
||||
✨ __Astuce :__ ajoutez le label de watchtower afin d'automatiser les mises à jour
|
||||
✨ __Astuce :__
|
||||
- Vous pouvez personnaliser le port de wireguard avec `WG_PORT` au lieu du port par defaut `51820`
|
||||
- Ajoutez le label de watchtower afin d'automatiser les mises à jour
|
||||
|
||||
```yaml
|
||||
services
|
||||
@ -129,7 +129,7 @@ IPS=
|
||||
|
||||
| Variable | Valeur | Exemples |
|
||||
|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
|
||||
| `HOST`{lang=properties} | Domaine de l'host | `mondomaine.fr` |
|
||||
| `HOST`{lang=properties} | IP publique de votre box internet (elle doit etre fixe) | `80.72.136.27` |
|
||||
| `PW`{lang=properties} | Hash du mot de passe, [à générer ici](https://bcrypt-generator.com/). **ATTENTION:** doubler les `$` | `$$2a$$12$$FF6T4QqSP9Ho`|
|
||||
| `ADDRESS`{lang=properties} | Plage d'adresse que le DHCP du VPN peut attribuer, le `x` doit etre présent, on peut changer les autres chiffres ou les remplacer par `x` aussi | `10.8.0.x` |
|
||||
| `IPS`{lang=properties} | les IPs qui doivent etre routées par les clients vers le VPN. Dans notre cas, on veut que seul le traffic vers le serveur et clients du VPN soit routé, on veut pas de leurs réseau local et on veut conserver l'accès à internet direct sans passer par le VPN.Si vous voulez tout de meme ajouter toutes les machines connectées aux appareils en local, ajoutez la plage `192.168.0.0/16` en séparant les deux plages par une virgule. | `10.8.0.0/24` |
|
||||
|
@ -74,14 +74,14 @@ sudo echo "AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64)" >> .env
|
||||
::
|
||||
|
||||
Ouvrez dockge, et cherchez "authentik" dans les stack inactives.
|
||||
Nommez la stack authentik et collez la configuration suivante, en changeant les chiffres de `{AUTHENTIK_TAG:-2024.2.3}`{lang=properties} par [la dernière version de Authentik](https://version-2024-6.goauthentik.io/docs/releases).
|
||||
Nommez la stack authentik et collez la configuration suivante, en changeant les chiffres de `{AUTHENTIK_TAG:-2025.6.3}`{lang=properties} par [la dernière version de Authentik](https://goauthentik.io/docs/releases).
|
||||
|
||||
```yaml
|
||||
---
|
||||
services:
|
||||
|
||||
postgresql:
|
||||
image: docker.io/library/postgres:12-alpine
|
||||
image: docker.io/library/postgres:16-alpine
|
||||
container_name: authentik-postgresql
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
@ -118,7 +118,7 @@ services:
|
||||
- redis:/data
|
||||
|
||||
server:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.2.3}
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.2.1}
|
||||
container_name: authentik-server
|
||||
restart: unless-stopped
|
||||
command: server
|
||||
@ -131,7 +131,6 @@ services:
|
||||
volumes:
|
||||
- ./media:/media
|
||||
- ./custom-templates:/templates
|
||||
- ./auth.css:/web/dist/custom.css
|
||||
- ./ssh:/authentik/.ssh
|
||||
env_file:
|
||||
- .env
|
||||
@ -143,7 +142,7 @@ services:
|
||||
- redis
|
||||
|
||||
worker:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.2.3}
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.2.1}
|
||||
container_name: authentik-worker
|
||||
restart: unless-stopped
|
||||
command: worker
|
||||
@ -165,7 +164,6 @@ services:
|
||||
- ./media:/media
|
||||
- ./certs:/certs
|
||||
- ./custom-templates:/templates
|
||||
- ./auth.css:/web/dist/custom.css
|
||||
- ./ssh:/authentik/.ssh
|
||||
env_file:
|
||||
- .env
|
||||
@ -197,7 +195,7 @@ Pour être utilisable hors de chez vous, vous devez exposer authentik.
|
||||
|
||||
::alert{type="info"}
|
||||
📋 __Au préalable :__ <br/><br/>
|
||||
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`.
|
||||
|
@ -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.
|
||||
|
||||
@ -109,7 +109,7 @@ ingress:
|
||||
- hostname: mondomaine.fr
|
||||
service: https://mondomaine.fr
|
||||
- hostname: "*.mondomaine.fr"
|
||||
service: https://mondomaine..fr
|
||||
service: https://mondomaine.fr
|
||||
- service: http_status:404
|
||||
```
|
||||
|
||||
@ -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`
|
||||

|
||||
::
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: La sécurité
|
||||
icon: lucide:shield
|
@ -68,7 +68,7 @@ Vous n'avez plus qu'à accéder à l'outil via `http://ipdevotreserveur:3200`.
|
||||
::alert{type="info"}
|
||||
📋 __Au préalable :__
|
||||
<br/><br/>
|
||||
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"}
|
||||
|
@ -41,11 +41,9 @@ services:
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- DOZZLE_AUTH_PROVIDER=simple
|
||||
- DOZZLE_HOSTNAME=${DOMAIN}
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /docker/dozzle/data:/data
|
||||
```
|
||||
|
||||
::alert{type="success"}
|
||||
@ -81,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 :__
|
||||
<br/><br/>
|
||||
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 :
|
||||
|
@ -92,7 +92,7 @@ Déployez le conteneur et rendez-vous sur http://ipduserveur:3225. Connectez vou
|
||||
---
|
||||
::alert{type="info"}
|
||||
📋 __Prérequis :__ <br/></br>
|
||||
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`.
|
||||
|
@ -45,7 +45,7 @@ services:
|
||||
container_name: beszel
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${PORT}$:8090
|
||||
- ${PORT}:8090
|
||||
volumes:
|
||||
- ./data:/beszel_data
|
||||
- ./socket:/beszel_socket
|
||||
@ -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 :__
|
||||
<br/><br/>
|
||||
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 :
|
||||
|
@ -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 :__
|
||||
<br/><br/>
|
||||
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 :
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: Monitoring
|
||||
icon: lucide:chart-no-axes-column
|
@ -140,7 +140,7 @@ Ensuite rendez-vous dans la section _Accès à distance_ et choisissez un port m
|
||||
|
||||

|
||||
|
||||
- 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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -15,7 +15,7 @@ main:
|
||||
|
||||

|
||||
|
||||
Afin de téléchargez vos media favoris en toute sécurité, nous allons monter un système à base de :
|
||||
Afin de télécharger vos media favoris en toute sécurité, nous allons monter un système à base de :
|
||||
|
||||
- [Qbittorent](https://github.com/linuxserver/docker-qbittorrent) comme logiciel de téléchargement bittorent
|
||||
- [Proton VPN Plus](https://protonvpn.com/torrenting), VPN pour sécuriser vos échanges, auquel vous devez souscrire (il y a de nombreux codes promo) pour accéder au protocole Bittorent, mais vous pouvez également en choisir un autre, à condition qu'il propose le protocole bittorent.
|
||||
@ -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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -49,11 +49,18 @@ root
|
||||
│ └── overseerr
|
||||
│ └── config
|
||||
└── media
|
||||
├── downloads
|
||||
├── tvseries
|
||||
├── movies
|
||||
└── library
|
||||
```
|
||||
|
||||
::alert{type="warning"}
|
||||
:::list{type="warning"}
|
||||
- __Attention :__ Respectez bien ce type de structure de fichier, notamment le dossier `media`. Ce dossier doit etre monté de la même manière dans les compose de _Qbittorrent_ (`/votre/chemin/media:/media`) et des _arr_. Sans cela, les _arr_ risquent de ne pas trouver le chemin fourni par Qbittorrent et de ne pas créer de _hardlinks_. Sans hardlink, les _arr_ copieront les films et cela doublera l'espace utilisé sur votre stockage.
|
||||
:::
|
||||
::
|
||||
|
||||
Ouvrez dockge et votre stack `plex`. Modifiez le compose comme ceci :
|
||||
|
||||
```yaml
|
||||
@ -388,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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: Media & Seedbox
|
||||
icon: lucide:list-video
|
@ -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 :__
|
||||
<br/><br/>
|
||||
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 :
|
||||
|
@ -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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: Cloud Drive & Photos
|
||||
icon: lucide:cloud-upload
|
@ -27,9 +27,8 @@ services:
|
||||
filebrowser:
|
||||
container_name: filebrowser
|
||||
volumes:
|
||||
- /:/srv
|
||||
- /docker/filebrowser/config:/config/
|
||||
# - /chemin/vers/vos/dossiers:/vosdossiers
|
||||
- /docker/filebrowser/config:/config/
|
||||
- /chemin/vers/vos/dossiers:/vosdossiers #ajoutez ici les dossiers que vous voulez voir apparaitre dans filebrowser
|
||||
ports:
|
||||
- 8010:80
|
||||
image: filebrowser/filebrowser:s6
|
||||
@ -68,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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -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 :__
|
||||
<br/><br/>
|
||||
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 :
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: Fichiers & partage
|
||||
icon: lucide:folder-tree
|
@ -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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -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).
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: Développement
|
||||
icon: lucide:code-xml
|
@ -57,7 +57,7 @@ root
|
||||
|
||||
Ouvrez Dockge, et cliquez sur `compose`
|
||||
|
||||
Nommez la stack `adguard` et copiez la configuration ci-dessous
|
||||
Nommez la stack `adguardhome` et copiez la configuration ci-dessous
|
||||
|
||||
```yaml
|
||||
---
|
||||
@ -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.
|
||||
:::
|
||||
::
|
||||
|
||||
|
@ -67,7 +67,7 @@ services:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
vauktwarden:
|
||||
vaultwarden:
|
||||
#...
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
@ -76,10 +76,10 @@ services:
|
||||
Nous allons maintenant générer un hash de mot de passe, qu'il faudra renseigner dans la variable `TOKEN` du `.env`
|
||||
|
||||
```shell
|
||||
echo -n "votremotdepasse" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4
|
||||
echo -n 'votremotdepasse' | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4
|
||||
```
|
||||
|
||||
Copiez le résultat précieusement.
|
||||
Copiez le résultat précieusement et gardez en tête le mot de passe que vous avez choisi.
|
||||
|
||||
Dans le `.env`, renseignez les variables suivantes :
|
||||
|
||||
@ -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 :
|
||||
@ -239,7 +239,7 @@ server {
|
||||
|
||||
Appuyez sur `Echap` puis sauvegardez et quittez en tapant `:x` puis en appuyant sur `Entrée`.
|
||||
|
||||
Et voilà, vous avez exposé Vaultwarden ! Accédez au panneau d'administration via `vault.mondomaine.fr` et créez votre compte. Plus d'info sur les fonctionnalités de [Bitwarden](https://bitwarden.com/help/).
|
||||
Et voilà, vous avez exposé Vaultwarden ! Accédez au panneau d'administration via `https://vault.mondomaine.fr/admin` et collez le mot de passe que vous avez choisi pour générer l'`ADMIN_TOKEN`. Plus d'info sur les fonctionnalités de [Bitwarden](https://bitwarden.com/help/).
|
||||
|
||||
N'oubliez pas d'installer les extensions Bitwarden (elles sont compatibles avec Vaultwarden) pour [Chrome](https://chromewebstore.google.com/detail/gestionnaire-de-mots-de-p/nngceckbapebfimnlniiiahkandclblb) ou pour [Firefox](https://addons.mozilla.org/fr/firefox/addon/bitwarden-password-manager/) ainsi que les applications [iOS](https://apps.apple.com/fr/app/bitwarden/id1137397744) et [Android](https://play.google.com/store/apps/details?id=com.x8bit.bitwarden&hl=fr) afin de synchroniser vos mot de passe.
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
navigation.title: Applications utiles
|
||||
icon: lucide:award
|
@ -1,17 +1,23 @@
|
||||
---
|
||||
icon: lucide:bookmark
|
||||
navigation: true
|
||||
title: Introduction
|
||||
layout: page
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
# Stockeex
|
||||
|
||||
::terminal{style="margin-top:80px;"}
|
||||
---
|
||||
content:
|
||||
- sudo systemctl status stockeex
|
||||
- server is busy, come back later...
|
||||
|
||||
- sudo systemctl status stockeex-article
|
||||
- currently writing, come back later...
|
||||
---
|
||||
::
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
|
||||
<div align="center">
|
||||
<img src="/img/stockeex/stockeex-raid.svg" alt="Image" style="max-width: 60%;">
|
||||
</div>
|
||||
|
||||
|
43
content/5.betises/1.python/1.nvidia-stock-bot.md
Normal file
@ -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 :
|
||||
|
||||

|
||||
|
||||
à cela :
|
||||
|
||||

|
||||
|
||||
Et plus récemment :
|
||||
|
||||

|
||||
|
||||
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)
|
||||
::
|
@ -1,42 +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 :
|
||||
|
||||

|
||||
|
||||
à cela :
|
||||
|
||||

|
||||
|
||||
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.
|
@ -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,5 +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.
|
||||
|
||||
A plus tard pour de nouvelles aventures passionnantes.
|
87
content/5.betises/2.bash/2.luks-backup.md
Normal file
@ -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` !
|
@ -27,6 +27,7 @@ export default defineNuxtConfig({
|
||||
},
|
||||
|
||||
app: {
|
||||
baseURL: '/fr/',
|
||||
head: {
|
||||
link: [
|
||||
{ rel: 'icon', type: 'image/x-icon', href: '/img/favicon/favicon.ico' },
|
||||
|
5
public/img/betises/nvidia-stock-bot-en-v4.svg
Normal file
After Width: | Height: | Size: 739 KiB |
5
public/img/betises/nvidia-stock-bot-old.svg
Normal file
After Width: | Height: | Size: 78 KiB |
5
public/img/betises/nvidia-stock-bot.svg
Normal file
After Width: | Height: | Size: 133 KiB |
4
public/img/global/docudjeex-home.svg
Normal file
After Width: | Height: | Size: 101 KiB |
4
public/img/global/no-raid.svg
Normal file
After Width: | Height: | Size: 17 KiB |
4
public/img/global/raid0.svg
Normal file
After Width: | Height: | Size: 17 KiB |
4
public/img/global/raid1.svg
Normal file
After Width: | Height: | Size: 26 KiB |
4
public/img/global/raid5.svg
Normal file
After Width: | Height: | Size: 24 KiB |
4
public/img/global/raid6.svg
Normal file
After Width: | Height: | Size: 31 KiB |
4
public/img/global/stockeex-raid.svg
Normal file
After Width: | Height: | Size: 165 KiB |
4
public/img/global/zfs.svg
Normal file
After Width: | Height: | Size: 143 KiB |
4
public/img/serveex/serveex-server.svg
Normal file
After Width: | Height: | Size: 64 KiB |
4
public/img/stockeex/stockeex-raid.svg
Normal file
After Width: | Height: | Size: 165 KiB |