Déploiement serveur Proxmox / NAT — Notes d’exploitation
Contexte validé
Cette archive a été déployée sur une VM Ubuntu dédiée dans Proxmox.
Architecture utilisée :
Internet
↓
IP publique Proxmox
↓ NAT / port forwarding
VM Ubuntu privée 192.168.100.10
↓
Docker Compose DataLab0
VM unique ou plusieurs VM ?
Pour cette archive, une seule VM suffit.
Les services applicatifs sont séparés en containers Docker :
reverse-proxy
workspace-web
viewer-web
api
worker
scheduler
postgres
redis
minio
Ce ne sont pas des VM séparées.
Une séparation multi-VM deviendra utile plus tard pour une production plus exigeante :
- PostgreSQL dédié ou managé ;
- Redis dédié ;
- stockage S3/MinIO séparé ;
- workers sur VM séparées ;
- monitoring/backups séparés ;
- Kubernetes éventuel.
Réseau Proxmox validé
Bridge public existant :
vmbr0 -> interface publique Proxmox
Bridge privé créé :
vmbr1 -> 192.168.100.1/24
Exemple /etc/network/interfaces côté Proxmox :
auto vmbr1
iface vmbr1 inet static
address 192.168.100.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
Activer le bridge sans redémarrer tout le réseau :
ifup vmbr1
NAT Proxmox
Activer l’IP forwarding :
sysctl -w net.ipv4.ip_forward=1
Le rendre persistant :
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
Règle NAT de sortie pour les VM privées :
iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
Configuration réseau Ubuntu VM
Exemple Netplan pour la VM :
network:
version: 2
ethernets:
enp6s18:
dhcp4: false
enp6s19:
addresses:
- 192.168.100.10/24
routes:
- to: default
via: 192.168.100.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
Appliquer :
sudo chmod 600 /etc/netplan/01-netcfg.yaml
sudo netplan apply
Tests :
ping 192.168.100.1
ping 8.8.8.8
ping google.com
SSH vers la VM privée
Port forwarding Proxmox utilisé :
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 2222 -j DNAT --to-destination 192.168.100.10:22
iptables -t nat -A POSTROUTING -p tcp -d 192.168.100.10 --dport 22 -j MASQUERADE
Connexion depuis le PC :
ssh -p 2222 admin@IP_PUBLIQUE_PROXMOX
Exposition HTTP de DataLab0
Docker expose le reverse proxy sur le port 8080 de la VM.
Port forwarding Proxmox :
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.100.10:8080
iptables -t nat -A POSTROUTING -p tcp -d 192.168.100.10 --dport 8080 -j MASQUERADE
Accès depuis navigateur :
http://IP_PUBLIQUE_PROXMOX:8080/
Routes utiles :
/ -> accueil DataLab0
/workspace/ -> interface
/doc.html -> documentation
/viewer/ -> viewer placeholder
/api/health -> API healthcheck
Rendre les règles iptables persistantes
Installer :
apt install -y iptables-persistent
Sauvegarder :
netfilter-persistent save
DNS Proxmox
Si apt update ne résout pas les domaines :
nano /etc/resolv.conf
Ajouter :
nameserver 1.1.1.1
nameserver 8.8.8.8
Repository Proxmox Enterprise
Sans abonnement Proxmox, désactiver le dépôt enterprise :
nano /etc/apt/sources.list.d/pve-enterprise.list
Commenter :
# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise
Puis :
apt update
Déploiement d’une nouvelle archive sur la VM
Depuis le PC Windows :
scp -P 2222 .\saas_bi_docker_ready_v1_1.zip admin@IP_PUBLIQUE_PROXMOX:~/projects/
Dans la VM :
cd ~/projects
mkdir -p saas_bi_v1_1
unzip saas_bi_docker_ready_v1_1.zip -d saas_bi_v1_1
cd saas_bi_v1_1
docker compose up -d --build
Si l’ancienne stack tourne depuis ~/projects, l’arrêter d’abord depuis son dossier :
cd ~/projects
docker compose down
Points de vigilance
- Les règles iptables Proxmox doivent être persistées.
- Les mots de passe Docker Compose actuels sont des valeurs de développement.
- PostgreSQL, Redis et MinIO sont dans la même VM pour ce socle initial.
- Avant production réelle, prévoir HTTPS, sauvegardes, firewall, monitoring et rotation des secrets.