homelab

Services auto-hébergés sur Proxmox : infrastructure applicative VLAN 20

Déploiement de 9 services auto-hébergés en LXC Debian 12 sur Proxmox : wiki, tâches, n8n, LLM local Ollama, médias et finance personnelle.

Les adresses IP et noms de domaine de production ont été remplacés par des libellés génériques par mesure de sécurité.

Contexte

En parallèle de l’infrastructure réseau et de la supervision, j’ai déployé une couche applicative complète sur Proxmox VE (PVE-01) dans le VLAN 20 SERVERS (172.16.20.0/24). L’objectif : disposer de services auto-hébergés couvrant documentation, gestion de projet, automatisation, IA locale et médias — sans dépendance à des fournisseurs cloud tiers.

Inventaire des services déployés

ServiceCTIDVLANPort appliUsage
Docmost (wiki)200VLAN 203000Documentation collaborative
Vikunja201VLAN 203456Gestion de tâches / Kanban
Dashy202VLAN 203000Dashboard homelab centralisé
Baikal204VLAN 2080Calendrier + contacts (CalDAV/CardDAV)
n8n205VLAN 205678Automatisation de workflows
Ollama206VLAN 2011434LLM local (modèles : Llama, Mistral)
Firefly III207VLAN 2080Gestion des finances personnelles
ActualBudget208VLAN 20Budget personnel alternatif
VM media-01501VLAN 208096 / 2283Jellyfin (médias) + Immich (photos)
Interface Proxmox VE — liste des LXC et VM actifs sur PVE-02, disk/memory/CPU usage
Proxmox VE — vue Datacenter PVE-02 : 12 LXC actifs (101–112), 1 VM pfSense (400) et 1 VM DC-01 (502). Uptime 28 jours, tags community-script, firewall, network, backup.

Méthodologie de déploiement LXC

Chaque service suit un processus standardisé en 4 étapes :

1. Création du LXC Proxmox

pct create <CTID> local:vztmpl/debian-12-standard_12.X_amd64.tar.zst \
  --hostname lxc-<service>-01 \
  --cores 2 --memory 512 --swap 256 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,tag=20,ip=172.16.20.X/24,gw=172.16.20.1 \
  --nameserver <IP-ADGUARD> \
  --searchdomain homelab.lan \
  --unprivileged 1 --onboot 1
pct start <CTID>

Le tag VLAN tag=20 place automatiquement le LXC dans le VLAN 20 SERVERS. Le résolveur DNS est AdGuard Home (VLAN 10 MGMT).

2. Mise à jour système + installation du service Chaque LXC reçoit un minimum de paquets (aucune dépendance inutile). Pour les services nécessitant Docker (ex. Ollama, Vaultwarden), un LXC unprivileged avec nesting=1 suffit sans compromettre l’isolation Proxmox.

3. Exposition via Nginx Proxy Manager NPM (VLAN 10 MGMT) reçoit le trafic HTTPS entrant via un port-forward pfSense (NAT) et le route vers le service interne selon le FQDN :

4. Inventaire Zabbix + monitoring Chaque LXC est ajouté dans Zabbix via l’agent2 ou un template auto-registration pour la supervision de la disponibilité.

Cas concret — n8n (automatisation)

n8n (CTID 205, VLAN 20, exposé sur n8n.[mon-domaine.fr]) sert notamment à :

GitHub webhook → n8n (VLAN 20) → Telegram / Zabbix API

Cas concret — Ollama (LLM local)

Ollama (CTID 206, VLAN 20) est déployé sur PVE-01 (Dell R720, 386 Go RAM). Il permet d’héberger des modèles de langage en local sans envoyer de données à des fournisseurs tiers :

ollama pull llama3.2      # téléchargement du modèle
ollama run llama3.2       # inférence locale

Les modèles testés : Llama 3.2, Mistral 7B, CodeGemma pour l’assistance au code. L’accès est limité au réseau interne (pas d’exposition publique).

Architecture réseau des services VLAN 20

Internet (client distant via Tailscale)


NPM (VLAN 10 MGMT)   ← wildcard SSL *.[mon-domaine.fr]
       │ HTTP interne (isolation VLAN)

Services VLAN 20 (172.16.20.0/24)


AdGuard Home (VLAN 10) ← split-horizon DNS

pfSense WAN → Internet
Dashboard Grafana Proxmox — Resource allocation summary : tous les LXC running, CPU 0.32%, RAM 41%
Grafana — Resource allocation Proxmox : tous les LXC supervisés en temps réel (CPU, mémoire, uptime). Ici PVE-02 — 13.2 GiB utilisés sur 31.2 GiB, 0.32% CPU global.

Points clés