Ceci est une ancienne révision du document !
Table des matières
Hardware
Modèle
GMKtec Mini PC N95 (Turbo 3.4 GHz) 12ème Gen. 4 coeurs 4 threads et 6 Mo de cache 8 Gb DDR4 RAM + 256 Gb SSD Wifi 5 + BT 5.0
Préparation
Connecter un écran au port HDMI Connecter un clavier à un port USB Insérer une clé USB avec une image ISO Proxmox Connecter l'alimentation
Proxmox
Installation de Proxmox
Démarrer le PC, en principe il ne devrait pas y avoir de changement à faire au niveau du BIOS.
L'installation de Proxmox démarre:
- choisir “Install proxmox VE (grahical)
- Accepter la license d'utilisation
- Garder la sélection du disque ou sera installé Proxmox
- Choisir le pays: Switzerland
- Garder la Time zone: Europe/Zurich
- Changer le Keyboard Layout: Swiss-French
- Créer un mot de passe root (2x)
- Définir un e-mail: sysadmin@cpacon.com
- Garder l'interface de management définie
- Définir le Hostname: pvetest3.test.cpacon.com
- Donner une adresse IP: 192.168.50.x/24
- Donner la gateway: 192.168.50.254
- Donner le DNS Server: 8.8.8.8 A voir si je le modifie par la suite
L'installation se fait, puis le PC redémarre, il faut enlever la clé USB.
Premier démarrage de Proxmox
Installer le PC et le connecter au réseau
Se connecter à la page d'administration: [adresse_ip:8006]]
Aller dans le >_ Shell
Lancer la ligne de commande: bash -c “$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)” (Source: https://community-scripts.org/scripts/post-pve-install)
- Start the Proxmox VE Post Install Script (y/n): y
- Deb822 sources detected: <Ok>
- PVE-ENTERPRISE: disable
- CEPH-ENTERPRISE: disable
- PVE-NO-SUBSCRIPTION: yes
- PVETEST: yes
- SUBSCRIPTION NAG: yes
- Support Subscription: <Ok>
- HIGH AVAILABILITY: no
- UPDATE: yes
Attendre que le script s'execute.
- Post-install Reminder: <Ok>
- REBOOT: yes
Configuration réseau
Changer la configuration du vmbr0:
- Enlever l'adresse IP et la GW
- Clicker la case “Vlan aware”
- Clicker la case “Advanced”
- ajouter les vlan IDs: 210 500 voir si il faudra en ajouter d'autres
Créer un Linux VLAN: Create/Linux VLAN
- vlan500
- IPv4/CIDR: 192.168.50.x/24
- Gateway (IPv4): 192.168.50.254
- Vlan raw device: nic0
- Comment: pve Mgmt
Appuyer sur le bouton “Apply Configuration”
Il faut adapter le switch pour gérer les Vlan taggé et on devrait récupérer le management.
Définition des disques
Dans “Datacenter”, “Storage”, on ajoute les disques du SAN-3 avec le bouton “Add”
SMB/CIFS:
- ID: nas-backup
- Server: 192.168.21.193
- Username: proxmox_svr
- Password: voir doc
- Share: proxmox_backups
- Content: Disk image, ISO image, Container template, Backup, Container
NFS:
- ID: pve-storage
- Server: 192.168.21.193
- Export: /volume1/proxmox-test
- Content: Disk Image, Container
Autres paramètres
Datacenter/System/Hosts
192.168.50.101 pvetest1.test.cpacon.com pvetest1
192.168.50.102 pvetest2.test.cpacon.com pvetest2
192.168.50.103 pvetest3.test.cpacon.com pvetest3
Datacenter/Permissions/Users
Ajouter un ou des utilisateurs si nécessaire.
Créer/joindre un cluster
Dans Datacenter/Cluster, sur le premier noeud, il faut créer un cluster avec le bouton “Create Cluster”
Sur les noeuds suivants, il faut copier les informations du cluster avec le bouton “Join Information”, puis aller sur le noeud à ajouter, et appuyer sur le bouton “Join Cluster”.
Copier les informations du cluster et donner le mot de passe root.
Attendre que celà se passe.
Debian (PVE)
Création d'une VM
Depuis un node, cliquer sur “Create VM”
Donner un VM ID et un nom, en cliquant la case “Advanced”, on peut aussi donner des Tags - puis Next
Choisir le “Storage” si nécessaire (par exemple le “nas-backup”), puis l'image ISO (debian-13.xxx) - puis Next
Cliquer sur la case “Qemu Agent” - puis Next
Choisir le “Storage” si nécessaire (par exemple le “pve-storage”, la teille du disque - puis Next
Choisir le nombre de Sockets et core - puis Next
Choisir le mémoire - puis Next
Choisir le réseau et vlan - puis Next
Confirmer avec “Finish”
Démarrer la VM
Installation de Debian
Choisir l'installation graphique “Graphical install”
Choisir la langue - French - Français
Choisir le pays - Suisse
Choisir le clavier - Suisse romand
Après l'essai de trouver un DHCP, choisir de “Configurer vous-même le réseau”
Configurer l'adresse IP, la passerelle, le serveur de nom, le nom de la machine et le domaine
Définir le mot de passe “root”
Créer un compte avec le nom de l'utilisateur
Donner l'identifiant (adm_xx) et le mot de passe
Partitionner le disque “Assisté - utiliser un disque entier”, choisir le disque
Choisir le schéma (Tout dans une seule partition ou partition /home, /car et /tmp séparé)
Terminer le partitionnement, confirmer par “Oui”
Pas besoin d'autres supports d'installation → “Non”
Choisir le pays du miroir (Suisse) et le serveur
Pas de mandataire HTTP
Ne pas participer à l'étude statistique →“Non”
Pour une installation simple, décocher les cases “environnement de bureau Debian”, ”… GNOME“ et coder “serveur SSH” et laisser les “utilitaires usuels du système”
Installer le programme de démarrage GRUB → “Oui”
Choisir le /dev/sda proposé
Continuer pour redémarrer
Premier démarrage
Login en “root” depuis la console de PVE
Mise à jour de la liste des paquets: apt update
Mise à jour des paquets: apt upgrade
Installation de sudo: apt install sudo
Ajoute de l'utilisateur adm_xx dans le groupe sudo: usermod -aG sudo adm_xx
Docker
Installation selon https://docs.docker.com/engine/install/debian/
Désintaller les package en confliz: sudo apt remove $(dpkg –get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources «EOF
Types: deb
URIs: https://download.docker.com/linux/debian«
Suites: $(. /etc/os-release && echo “$VERSION_CODENAME”)
Components: stable
Architectures: $(dpkg –print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Vérification que docker fonctionne: sudo systemctl status docker
Démarrage de docker manuellement: sudo systemctl start docker
Pour tester que docker fonctionne avec un container: sudo docker run hello-world
Docker - commandes utiles
Télécharger les images: sudo docker compose pull
Démarrer les containers: sudo docker compose up -d
Afficher les logs: sudo docker compose logs -f
sudo docker compose ps
Authentik (container)
Installation selon https://docs.goauthentik.io/install-config/install/docker-compose/
Créer un dossier /opt/docker-compose/authentik: sudo mkdir -p /opt/docker-compose/authentik
Aller dans le dossier: cd /opt/docker-compose/authentik
Créer le fichier docker-compose.yml: sudo nano docker-compose.yml
docker-compose.yml
services:
postgresql:
env_file:
- .env
environment:
POSTGRES_DB: ${PG_DB:-authentik}
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
POSTGRES_USER: ${PG_USER:-authentik}
healthcheck:
interval: 30s
retries: 5
start_period: 20s
test:
- CMD-SHELL
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
timeout: 5s
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
volumes:
- database:/var/lib/postgresql/data
server:
command: server
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQLHOST: postgresql
AUTHENTIK_POSTGRESQLNAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQLPASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQLUSER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.5.3}
ports:
- ${COMPOSE_PORT_HTTP:-9000}:9000
- ${COMPOSE_PORT_HTTPS:-9443}:9443
restart: unless-stopped
shm_size: 512mb
volumes:
- ./data:/data
- ./custom-templates:/templates
worker:
command: worker
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQLHOST: postgresql
AUTHENTIK_POSTGRESQLNAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQLPASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQLUSER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.5.3}
restart: unless-stopped
shm_size: 512mb
user: root
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/data
- ./certs:/certs
- ./custom-templates:/templates
volumes:
database:
driver: local
.env
PG_PASS=<PASS>
AUTHENTIK_SECRET_KEY⇒KEY>
AUTHENTIK_ERROR_REPORTINGENABLED=true
#COMPOSE_PORT_HTTP=80
#COMPOSE_PORT_HTTPS=443
# SMTP server
AUTHENTIK_EMAILHOST=mail.informaniak.com
AUTHENTIK_EMAILPORT=587
# Optionally authenticate (don't add quotation marks to your password)
AUTHENTIK_EMAILUSERNAME=<EMAIL>
AUTHENTIK_EMAILPASSWORD=<PASSWORD>
# STARTTLS / explicit TLS, usually on port 587
AUTHENTIK_EMAILUSE_TLS=true
# Implicit TLS/SSL on the SMTP connection (`USE_SSL` is the variable name), usually on port 465
AUTHENTIK_EMAILUSE_SSL=false
AUTHENTIK_EMAILTIMEOUT=10
# Sender email address; verify that the domain is valid.
AUTHENTIK_EMAIL__FROM=<EMAIL>
Démarrer le container: sudo docker compose up -d
Celà met du temps à charger les container et initialiser la première fois.
Aller sur http:/ /<adresse_ip>:9000 et créer le compte administrateur akadmin avec une adresse e-mail et mot de passe.
Aller dans l'interface administrateur, Répertoire, Utilisateurs
Créer un utilisateur adm_xx, lui donner un mot de passe, puis l'insérer dans le groupe “authentik Admins”.
Tester le nouvel utilisateur.
Désactiver le compte akadmin.
Commandes utiles
Changer l'adresse IP
sudo nano /etc/network/interfaces
sudo nano nano /etc/hostname
sudo nano nano /etc/hosts
https://www.it-connect.fr/comment-configurer-une-adresse-ip-fixe-sur-debian-11/
Ajouter un utilîsateur
adduser <nom d'utilisateur>
Changer d'utilîsateur
su - <nom d'utilisateur>
