Better writing
This commit is contained in:
@@ -6,52 +6,52 @@ description: Guide pas à pas pour installer Debian 13 sur un serveur maison et
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
|
||||
[Debian 13 « Trixie »](https://www.debian.org/) est la base sur laquelle repose tout ce guide. C'est un Linux simple, ennuyeux et stable, et pour un homelab c'est précisément l'intérêt : les versions des paquets restent figées pendant toute la durée de vie de la version, les correctifs de sécurité continuent d'arriver pendant environ cinq ans en comptant la LTS, si bien que la machine tourne des années au lieu de demander une reconstruction tous les quelques mois.
|
||||
[Debian 13 « Trixie »](https://www.debian.org/) est le fondement sur lequel repose tout ce guide. C'est une distribution Linux simple, stable et sans surprise. Et pour un homelab c'est précisément l'intérêt : les versions des paquets restent figées pendant toute la durée de vie de la version, les correctifs de sécurité continuent d'arriver pendant environ cinq ans en comptant la LTS, si bien que la machine tourne des années au lieu d'exiger d'être réinstallée tous les quelques mois.
|
||||
|
||||
L'autre raison, c'est qu'il ne vous gêne pas. Les systèmes clés en main comme Unraid, TrueNAS ou le DSM de Synology posent leur propre couche par-dessus Docker, et le jour où vous avez besoin de quelque chose que leur interface n'expose pas, vous êtes coincé à bricoler autour. Debian n'est qu'un serveur : vous installez ce que vous voulez, où vous voulez, et rien n'est caché derrière l'interface de quelqu'un d'autre. Ça se trouve être aussi ce que la plupart des projets auto-hébergés visent en premier, leurs docs vous donnent donc des commandes `apt` qui fonctionnent telles quelles, Docker publie un dépôt Debian officiel, et n'importe quel message d'erreur collé dans un moteur de recherche a déjà des années de réponses derrière lui. Une installation minimale est assez légère pour laisser presque toute la RAM et le CPU d'un petit N100 à vos conteneurs.
|
||||
L'autre raison, c'est qu'il ne vous donnera aucune limite, il ne vous enfermera jamais. Les systèmes clés en main comme Unraid, TrueNAS ou le DSM de Synology posent leur propre couche par-dessus, et le jour où vous avez besoin de quelque chose que leur interface n'expose pas, vous serez coincé ou devrez bricoler autour. Debian n'est qu'un serveur : vous installez ce que vous voulez, où vous voulez, et rien n'est caché derrière l'interface de quelqu'un d'autre. C'est exactement ce que la plupart des projets auto-hébergés visent en premier, leurs docs vous donnent donc des commandes `apt` qui fonctionnent telles quelles, et n'importe quel message d'erreur collé dans un moteur de recherche a déjà des années de réponses derrière lui. Une installation minimale est assez légère pour laisser la quasi intégralité de la RAM et du CPU à tous les délires que vous installerez dessus.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
::note{icon="" to="/general/linux/cli-basics"}
|
||||
📋 __Prérequis :__ tout ce qui suit se passe dans un terminal, vous devriez donc être à l'aise avec les bases : se déplacer avec `cd`, lister avec `ls`, modifier un fichier avec `nano`, et lire ce qu'une commande vous dit quand elle échoue. Si tout ça est nouveau pour vous, commencez par les **bases de la ligne de commande** et revenez ensuite.
|
||||
📋 __Prérequis :__ tout ce qui suit se déroule dans un terminal, vous devez donc être à l'aise avec les bases : se déplacer avec `cd`, lister avec `ls`, modifier un fichier avec `nano`, et lire ce qu'une commande vous dit quand elle échoue. Si tout ceci est nouveau pour vous, commencez par les **bases de la ligne de commande** et revenez ensuite.
|
||||
::
|
||||
|
||||
### Réglages du BIOS
|
||||
|
||||
Appuyez sur :kbd{value="Del"} ou :kbd{value="F2"} juste après l'allumage pour ouvrir le setup du firmware (l'écran de démarrage indique généralement quelle touche c'est). La plupart des machines ont aussi un menu de démarrage ponctuel, souvent :kbd{value="F12"}, :kbd{value="F11"} ou :kbd{value="F8"}, qui permet de démarrer sur la clé USB une seule fois sans toucher à l'ordre de démarrage permanent. Debian documente la procédure générale dans son [manuel d'installation](https://www.debian.org/releases/forky/amd64/ch03s06.fr.html), et voici ce qui compte avant d'installer :
|
||||
Appuyez sur :kbd{value="Del"} ou :kbd{value="F2"} juste après l'allumage de votre machine afin d'ouvrir le setup du BIOS (l'écran de démarrage indique généralement quelle touche c'est). La plupart des machines ont aussi un menu de démarrage ponctuel, souvent :kbd{value="F12"}, :kbd{value="F11"} ou :kbd{value="F8"}, qui permet de démarrer sur la clé USB une seule fois sans toucher à l'ordre de démarrage permanent. Debian documente la procédure générale dans son [manuel d'installation](https://www.debian.org/releases/forky/amd64/ch03s06.fr.html), et voici ce qui compte avant d'installer :
|
||||
|
||||
- **Mode de démarrage.** Préférez l'UEFI natif. L'important est que l'installateur démarre dans le *même* mode que celui dans lequel vous comptez faire tourner le serveur, parce que l'UEFI utilise un partitionnement GPT alors que le BIOS legacy (et l'UEFI en mode CSM) utilise une table de partitions DOS, et une incohérence installe le chargeur de démarrage au mauvais endroit. Attention sur les machines multiboot : le mode de démarrage par défaut des périphériques amovibles n'est souvent pas celui utilisé pour les disques internes.
|
||||
- **Mode de démarrage.** Préférez l'UEFI natif. Il est nécessaire que l'installateur démarre dans le *même* mode que celui dans lequel vous comptez faire tourner le serveur, parce que l'UEFI utilise un partitionnement GPT alors que le BIOS legacy (et l'UEFI en mode CSM) utilise une table de partitions DOS. Une incohérence installe le bootloader au mauvais endroit. Attention sur les machines multiboot : le mode de démarrage par défaut des périphériques amovibles n'est souvent pas celui utilisé pour les disques internes.
|
||||
- **Le Secure Boot** peut rester activé. Debian fournit un chargeur shim signé par Microsoft, il démarre donc très bien tel quel.
|
||||
- **Le mode SATA** doit être `AHCI`, pas `RAID` / Intel RST, sinon Linux risque de ne pas voir vos disques du tout. Changer ce réglage après avoir installé un autre OS sur le même disque empêchera cet OS de démarrer, réglez-le donc avant de commencer.
|
||||
- **La restauration après coupure de courant**, pour que le serveur revienne tout seul après une coupure au lieu d'attendre que quelqu'un appuie sur le bouton. Le réglage se trouve dans *Power Management*, *APM Configuration* ou *Advanced* selon la carte, sous un nom du genre *Restore on AC Power Loss*, *AC Power Recovery*, *After Power Failure*, *AC Back Function* ou *S0 state*. Mettez-le sur **Power On**, pas sur *Last State*, qui laisserait la machine éteinte si la coupure l'a surprise pendant un arrêt.
|
||||
- **Le Wake on LAN**, si vous voulez pouvoir allumer la machine à distance plutôt que d'aller la voir. Même menu *Power Management* : mettez *Wake on LAN*, *Power On By PCI-E/PCI* ou *Resume by PCI-E Device* sur **Enabled**, puis désactivez *ErP* / *EuP Ready* et *Deep Sleep* / *Deep Sx*, qui coupent l'alimentation de la carte réseau une fois la machine éteinte et la rendraient sourde au magic packet. Debian doit aussi dire à la carte d'écouter, voir [Pour aller plus loin](#pour-aller-plus-loin).
|
||||
- **La restauration après coupure de courant**, pour que le serveur redémarre tout seul après une coupure au lieu d'attendre que quelqu'un appuie sur le bouton. Le réglage se trouve dans *Power Management*, *APM Configuration* ou *Advanced* selon la carte, sous un nom du genre *Restore on AC Power Loss*, *AC Power Recovery*, *After Power Failure*, *AC Back Function* ou *S0 state*. Mettez-le sur **Power On**, pas sur *Last State*, qui laisserait la machine éteinte si la coupure l'a surprise pendant un arrêt.
|
||||
- **Le Wake on LAN**, si vous voulez pouvoir allumer la machine à distance plutôt que d'appuyer physiquement sur le bouton. Même menu *Power Management* : mettez *Wake on LAN*, *Power On By PCI-E/PCI* ou *Resume by PCI-E Device* sur **Enabled**, puis désactivez *ErP* / *EuP Ready* et *Deep Sleep* / *Deep Sx*, qui coupent l'alimentation de la carte réseau une fois la machine éteinte et la rendraient sourde au magic packet. Debian doit aussi dire à la carte d'écouter, voir [Pour aller plus loin](#pour-aller-plus-loin).
|
||||
- **La virtualisation** (`VT-x` / `AMD-V`, plus `VT-d` pour le passthrough) ne coûte rien à activer maintenant et évite un aller-retour dans le BIOS le jour où vous voudrez faire tourner une VM. Docker lui-même n'en a pas besoin sous Linux.
|
||||
|
||||
::note
|
||||
Si vous êtes en dual boot avec Windows, désactivez son *démarrage rapide* : il laisse le système de fichiers dans un état que Linux peut corrompre, et Windows Update aime bien le réactiver en douce.
|
||||
::
|
||||
|
||||
### Télécharger l'ISO et l'écrire sur une clé USB
|
||||
### Télécharger l'ISO et créer clé USB Bootable
|
||||
|
||||
::steps{level="4"}
|
||||
#### Télécharger l'image netinst
|
||||
|
||||
Récupérez l'image **netinst** `amd64` sur [debian.org](https://www.debian.org/download.fr.html). Elle fait environ 700 Mo et récupère le reste des paquets sur le réseau pendant l'installation, ce qui est exactement ce qu'on veut sur un serveur branché en ethernet : vous obtenez des paquets à jour au lieu d'installer depuis un instantané vieux de plusieurs mois puis de tout mettre à jour derrière. Les images DVD complètes n'ont de sens que si la machine n'a pas de réseau pendant l'installation.
|
||||
|
||||
#### L'écrire avec Rufus
|
||||
#### Créer une clée bootable avec Rufus
|
||||
|
||||
Sous Windows, écrivez-la avec [Rufus](https://rufus.ie/) (portable, aucune installation nécessaire). Branchez une clé USB de 2 Go ou plus, en gardant en tête qu'**elle sera entièrement effacée**, puis :
|
||||
Sous Windows, utilisez [Rufus](https://rufus.ie/) (portable, aucune installation nécessaire). Branchez une clé USB de 2 Go ou plus, en gardant en tête qu'**elle sera entièrement effacée**, puis :
|
||||
|
||||
- **Périphérique** : votre clé USB. Vérifiez la capacité deux fois, Rufus écrit volontiers sur le mauvais disque si vous le laissez faire.
|
||||
- **Périphérique** : votre clé USB. Vérifiez la capacité deux fois, Sinon Rufus écrira sans rechigner sur le mauvais disque si vous le laissez faire.
|
||||
- **Type de démarrage** : `SÉLECTION`, puis choisissez l'ISO Debian que vous venez de télécharger.
|
||||
- **Schéma de partition** : il doit correspondre au mode de démarrage réglé dans le BIOS plus haut. `GPT` pour l'UEFI, `MBR` uniquement si vous restez en legacy/CSM. Le champ système de destination suit automatiquement.
|
||||
- Laissez les options de formatage par défaut, puis cliquez sur `DÉMARRER`. Si Rufus demande comment écrire l'image, gardez le *mode image ISO* recommandé.
|
||||
|
||||

|
||||
|
||||
_Capture issue de [ce guide de clé USB bootable sur DEV Community](https://dev.to/devops2808/how-to-create-bootable-usb-installer-for-debian-12-4f66)._
|
||||
_Capture issue de [DEV Community](https://dev.to/devops2808/how-to-create-bootable-usb-installer-for-debian-12-4f66)._
|
||||
|
||||
L'écriture prend quelques minutes.
|
||||
|
||||
@@ -67,7 +67,7 @@ Démarrez sur la clé USB (menu de démarrage ponctuel vu dans la section BIOS)
|
||||
::steps{level="4"}
|
||||
#### Langue, pays, clavier
|
||||
|
||||
Rien de particulier. La disposition du clavier est celle sur laquelle vous tapez physiquement, ce qui est facile à rater si vous avez choisi l'anglais mais tapez en AZERTY.
|
||||
Rien de particulier. La disposition du clavier est celle sur laquelle vous tapez physiquement, ce qui est facile à rater si vous avez choisi l'anglais mais tapez en AZERTY, alors soyez vigilant.
|
||||
|
||||
#### Réseau et nom de machine
|
||||
|
||||
@@ -121,21 +121,21 @@ Installez-le sur le disque que vous venez de partitionner (`/dev/sda`, `/dev/nvm
|
||||
::
|
||||
|
||||
::note
|
||||
Avant de redémarrer, prenez une minute pour donner au serveur une **adresse fixe** dans votre box. Tout ce qui suit pointe dessus : vos raccourcis SSH, le reverse proxy, les favoris vers chaque service. Sur un simple bail DHCP cette adresse finit par changer toute seule et tout casse d'un coup.
|
||||
Avant de redémarrer, prenez une minute pour donner au serveur une **adresse fixe** dans votre routeur. Tout ce qui suit pointe dessus : vos raccourcis SSH, le reverse proxy, les favoris vers chaque service. Si cette adresse n'est pas fixée, lorsqu'elle changera elle cassera tout.
|
||||
|
||||
La bonne méthode est une réservation DHCP, qui lie l'adresse à l'adresse MAC du serveur tout en laissant la box gérer l'adressage. Voir [NAT & DHCP](/general/networking/nat) pour savoir où la trouver dans l'interface de votre box.
|
||||
La bonne méthode est une réservation DHCP, qui lie l'adresse à l'adresse MAC du serveur tout en laissant la box gérer l'adressage. Voir [NAT & DHCP](/general/networking/nat).
|
||||
::
|
||||
|
||||
_Captures de l'installateur issues du [guide de serveur Debian minimal de howtoforge.com](https://www.howtoforge.com/tutorial/debian-minimal-server/)._
|
||||
_Captures de l'installateur issues du [howtoforge.com](https://www.howtoforge.com/tutorial/debian-minimal-server/)._
|
||||
|
||||
### Se connecter en SSH
|
||||
|
||||
Le serveur n'a plus d'écran à partir de maintenant, tout passe par SSH. Ces étapes vous font entrer, puis s'assurent que personne d'autre ne le peut.
|
||||
Le serveur n'a plus besoin d'écran ni de clavier à partir de maintenant, tout passe par SSH. Ces étapes vous apprennent à vous logger sur votre serveur, puis s'assurent que personne d'autre ne le peut.
|
||||
|
||||
::steps{level="4"}
|
||||
#### Se connecter depuis une autre machine
|
||||
|
||||
Retirez la clé USB et redémarrez. L'adresse à utiliser est celle que vous avez réservée dans la box juste avant, `192.168.1.42` dans les exemples ci-dessous.
|
||||
Retirez la clé USB et redémarrez. L'adresse à utiliser est celle que vous avez fixée dans la box juste avant, `192.168.1.42` dans les exemples ci-dessous.
|
||||
|
||||
Tout ce qui suit se passe depuis une autre machine de votre réseau local, pas sur le serveur. Windows et macOS embarquent tous les deux un client SSH, il n'y a donc rien à installer : ouvrez **PowerShell** sous Windows, ou **Terminal** sous macOS, et tapez la même commande.
|
||||
|
||||
@@ -143,23 +143,24 @@ Tout ce qui suit se passe depuis une autre machine de votre réseau local, pas s
|
||||
ssh [email protected]
|
||||
```
|
||||
|
||||
La première connexion vous demande de confirmer l'empreinte du serveur, c'est normal, répondez `yes`. Elle est stockée dans `~/.ssh/known_hosts` et la question ne reviendra pas.
|
||||
La première connexion vous demande de confirmer l'empreinte du serveur, c'est normal, répondez `yes`. Elle est stockée dans `~/.ssh/known_hosts` et la question ne reviendra plus.
|
||||
|
||||
::note
|
||||
Si la connexion est refusée, la case `serveur SSH` a probablement été laissée décochée à l'écran tasksel. Rebranchez un écran, connectez-vous en local et lancez `sudo apt install openssh-server`.
|
||||
Si la connexion est refusée, la case `serveur SSH` a probablement été laissée décochée à l'écran tasksel. Rebranchez un écran, connectez-vous en local en tapant votre nom d'utilisateur puis votre mot de passe, et lancez `sudo apt install openssh-server`. N'oubliez pas de vous dé-logger en tapant `exit`.
|
||||
::
|
||||
|
||||
L'écran et le clavier ne servent plus à rien. Débranchez-les, la machine peut aller vivre dans son coin.
|
||||
|
||||
#### Se connecter par clé plutôt que par mot de passe
|
||||
#### Se connecter avec une clé SSH plutôt que par mot de passe
|
||||
|
||||
Les mots de passe en SSH se font attaquer par force brute dès que le port est joignable depuis l'extérieur, et en taper un à chaque connexion devient vite pénible. Toujours sur l'autre machine, générez une clé si vous n'en avez pas déjà une :
|
||||
Les mots de passe en SSH sont vulnérables aux attaques par brute force, et en taper un à chaque connexion devient vite pénible. Les clés SSH permettent d'autoriser une machine à se logger sans mot de passe à votre serveur.
|
||||
|
||||
Toujours sur l'autre machine, générez une clé.
|
||||
|
||||
```bash [Terminal]
|
||||
ssh-keygen -t ed25519
|
||||
```
|
||||
|
||||
Appuyez sur :kbd{value="Enter"} pour accepter le chemin par défaut, et mettez une passphrase (elle protège le fichier de clé lui-même, votre système la retiendra après le premier déverrouillage). Copiez ensuite la moitié publique sur le serveur. Windows n'a pas de `ssh-copy-id`, il pousse donc la clé à travers la connexion :
|
||||
Appuyez sur :kbd{value="Enter"} pour accepter le chemin par défaut, et mettez une passphrase (elle protège le fichier de clé lui-même, votre système la retiendra après le premier déverrouillage). Il s'agit ensuite de transmettre la clée publique à votre serveur. A noter que Windows n'a pas de `ssh-copy-id`, nous pousserons donc la clé manuellement dans ce cas :
|
||||
|
||||
::code-group
|
||||
```bash [macOS]
|
||||
@@ -175,7 +176,7 @@ ssh-copy-id [email protected]
|
||||
```
|
||||
::
|
||||
|
||||
Il demande votre mot de passe une dernière fois. Reconnectez-vous pour vérifier qu'il ne le demande plus :
|
||||
Votre serveur demande votre mot de passe une dernière fois. Reconnectez-vous pour vérifier qu'il ne le demande plus :
|
||||
|
||||
```bash [Terminal]
|
||||
ssh [email protected]
|
||||
@@ -183,7 +184,7 @@ ssh [email protected]
|
||||
|
||||
#### Refermer la porte derrière vous
|
||||
|
||||
Une fois la clé fonctionnelle, coupez les connexions par mot de passe et l'accès root direct. Sur le serveur :
|
||||
Une fois la clé fonctionnelle, coupez les connexions par mot de passe (et l'accès root direct si root existe). Sur le serveur :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /etc/ssh/sshd_config.d/hardening.conf
|
||||
@@ -202,11 +203,11 @@ sudo systemctl restart ssh
|
||||
```
|
||||
|
||||
::warning
|
||||
Gardez votre session SSH actuelle ouverte pendant le test. Ouvrez un **second** terminal et reconnectez-vous : si la clé ne fonctionne plus, la session restée ouverte est votre porte de secours pour corriger la configuration. Fermez-la avant d'avoir vérifié et une faute de frappe vous enferme dehors de votre propre serveur, avec l'écran et le clavier comme seul recours.
|
||||
Gardez votre session SSH actuelle ouverte pendant le test. Ouvrez un **second** terminal et reconnectez-vous : si la clé ne fonctionne plus, la session restée ouverte est votre porte de secours pour corriger la configuration. Si vous la fermez avant d'avoir vérifié et une faute de frappe vous enferme en dehors de votre propre serveur, avec l'écran et le clavier comme seul recours.
|
||||
::
|
||||
|
||||
::note
|
||||
La porte est maintenant fermée pour toutes les autres machines aussi, y compris la prochaine depuis laquelle vous voudrez vous connecter. Pour en laisser entrer une nouvelle, remettez `PasswordAuthentication yes` dans `hardening.conf`, redémarrez SSH, refaites les deux étapes de clé ci-dessus depuis cette machine, puis remettez `no` et redémarrez SSH une dernière fois.
|
||||
La porte est maintenant fermée pour toutes les autres machines aussi, y compris la prochaine depuis laquelle vous voudrez vous connecter. Pour en enregistrer une nouvelle, remettez `PasswordAuthentication yes` dans `hardening.conf`, redémarrez SSH, refaites les deux étapes de clé ci-dessus depuis cette machine, puis remettez `no` et redémarrez SSH une dernière fois.
|
||||
::
|
||||
|
||||
#### Terminé !
|
||||
@@ -216,7 +217,7 @@ La porte est maintenant fermée pour toutes les autres machines aussi, y compris
|
||||
|
||||
Une machine qui tourne 24h/24 pour deux heures d'utilisation réelle consomme, fait tourner des ventilateurs et use des disques pour rien. Le Wake on LAN permet de l'éteindre proprement quand vous avez fini et de la rallumer en quelques secondes sans vous déplacer : la carte réseau reste alimentée en veille, à l'écoute d'un broadcast bien précis (le *magic packet*) contenant l'adresse MAC du serveur, et allume la machine dès qu'elle le voit. Pratique pour une cible de sauvegarde dont vous n'avez besoin que la nuit, ou un serveur multimédia que personne ne regarde dans la journée.
|
||||
|
||||
Deux conditions avant de commencer : la machine doit être en ethernet filaire, les cartes WiFi ne gèrent presque jamais ça, et le paquet doit être envoyé depuis le même réseau local, puisqu'un broadcast ne traverse pas un routeur. La partie BIOS a été traitée dans [Réglages du BIOS](#réglages-du-bios), voici la partie Debian.
|
||||
Deux conditions avant de commencer : la machine doit être en ethernet filaire, les cartes WiFi ne gèrent presque jamais ça, et le paquet doit être envoyé depuis le même réseau local, à moins d'utiliser une app spécifique et des règles de redirection via le routeur. La partie BIOS a été traitée dans [Réglages du BIOS](#réglages-du-bios), voici la partie Debian.
|
||||
|
||||
::steps{level="4"}
|
||||
#### Trouver l'interface et son adresse MAC
|
||||
|
||||
@@ -51,7 +51,7 @@ sudo mkdir /srv/docker
|
||||
::
|
||||
|
||||
## Installer [Dockge](https://github.com/louislam/dockge) pour gérer et déployer les conteneurs
|
||||
[Dockge](https://github.com/louislam/dockge) est un outil web pour créer, configurer, lancer et gérer des conteneurs Docker. C'est une interface simple et intuitive, plus légère et plus abordable pour un débutant que la ligne de commande ou Portainer.
|
||||
[Dockge](https://github.com/louislam/dockge) est un outil web permettant de créer, configurer, lancer et gérer des conteneurs pour Docker. C'est une interface simple, intuitive, qui est plus légère et plus facile pour les débutants que d'utiliser docker en CLI ou Portainer.
|
||||
|
||||

|
||||
|
||||
@@ -122,7 +122,7 @@ Plus d'infos sur [Dockge et son utilisation](https://github.com/louislam/dockge)
|
||||
Et voilà ! Docker et un outil pour gérer facilement vos conteneurs sont prêts !
|
||||
|
||||
## [Watchtower](https://watchtower.nickfedor.com/), pour mettre à jour les conteneurs automatiquement
|
||||
Watchtower est un conteneur qui vérifie les mises à jour et récupère les nouvelles images automatiquement, simplement en ajoutant un label dans les fichiers `compose.yml` de vos conteneurs.
|
||||
Watchtower est un conteneur qui permet de vérifier les mise à jour et d'installer les nouvelles images sans effort, en ajoutant un simple label dans les fichiers `compose.yml` de vos conteneurs.
|
||||
|
||||
### Configuration
|
||||
|
||||
@@ -186,4 +186,4 @@ Redémarrez ensuite les stacks modifiées.
|
||||
#### Terminé !
|
||||
::
|
||||
|
||||
Et c'est tout ! Vous avez maintenant une base solide pour commencer à déployer les services que vous voulez !
|
||||
Et voilà, vous avez une bonne carcasse pour commencer à installer les services qui vous plaisent !
|
||||
|
||||
Reference in New Issue
Block a user