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 (10.0.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

Service CTID VLAN Port appli Usage
Docmost (wiki) 200 VLAN 20 3000 Documentation collaborative
Vikunja 201 VLAN 20 3456 Gestion de tâches / Kanban
Dashy 202 VLAN 20 3000 Dashboard homelab centralisé
Baikal 204 VLAN 20 80 Calendrier + contacts (CalDAV/CardDAV)
n8n 205 VLAN 20 5678 Automatisation de workflows
Ollama 206 VLAN 20 11434 LLM local (modèles : Llama, Mistral)
Finance personnelle (self-hosted) 207–208 VLAN 20 — Suivi budgétaire
VM media-01 501 VLAN 20 8096 / 2283 Jellyfin (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=10.0.20.X/24,gw=10.0.20.1 \
  --nameserver <IP-ADGUARD> \
  --searchdomain lab.example \
  --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 (10.0.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