Infrastructure SecourIT - Proxmox VE
Architecture d'infrastructure hébergée sur serveur OVH KS-2, migration vers Proxmox VE avec conteneurs LXC.
Serveur physique
- Modèle : OVH KS-2
- CPU : 4 cœurs
- RAM : 32 Go
- Stockage : 4x 1.8 TB SATA (HGST HUS724020AL)
- OS : Proxmox VE (sur sda)
- RAID : md0 (RAID5) sur sdb+sdc+sdd,
/srv/media (3.6 To, ext4)
Réseau
| Interface |
IP |
Description |
| vmbr0 |
51.195.5.147/24 |
Bridge principal (WAN) |
| localnet |
10.10.10.0/24 |
SDN local pour LXC |
- NAT/Masquerade : vmbr0 vers localnet
- DNAT : ports 80, 443, 81, 3001, 3005 vers 10.10.10.2
- SSH : Clé SSH uniquement (pas de mot de passe)
- Firewall : fail2ban
Carte des conteneurs
| LXC |
Hostname |
IP |
Description |
Domaine |
| 100 |
nginx-proxy |
10.10.10.2 |
Nginx Proxy Manager + sites statiques |
secourit.fr, wolfsoulbikers.fr, ajd.secourit.fr |
| 101 |
postgres |
10.10.10.10 |
PostgreSQL 17 |
- |
| 102 |
mariadb |
10.10.10.11 |
MariaDB (dynasqy + csv) |
- |
| 103 |
dyna-prod |
10.10.10.20 |
Club DynaSQY (Docker) |
dyna.secourit.fr |
| 104 |
gestion-prod |
10.10.10.21 |
SecourIT Gestion (Next.js) |
gestion.secourit.fr |
| 105 |
jellyfin |
10.10.10.22 |
Jellyfin Media Server (Docker) |
tv.secourit.fr |
| 106 |
csv-prod |
10.10.10.23 |
CSV Vie Locale (Docker) |
csv.secourit.fr |
| 107 |
web-prod |
10.10.10.24 |
Wycz + Portugais (Docker) |
wycz.fr, portugal.secourit.fr |
| 108 |
gitea |
10.10.10.25 |
Gitea Git Server (Docker) |
git.secourit.fr |
| 110 |
preprod |
10.10.10.30 |
Preprod Dyna + Gestion (Docker) |
dyna-preprod.secourit.fr, gestion-preprod.secourit.fr |
Bases de données
MariaDB (LXC 102, 10.10.10.11)
| Base |
Utilisateur |
Description |
| dynasqy |
dynausr / [ProtonPass] |
Données DynaSQY (membres, événements, logs) |
| csv |
csvusr / [ProtonPass] |
Données CSV (articles, événements, annonces) |
| dynasqy_preprod |
dynausr |
Données DynaSQY preprod |
| csv_preprod |
csvusr |
Données CSV preprod |
PostgreSQL (LXC 101, 10.10.10.10)
| Base |
Utilisateur |
Description |
| gestion_secourit |
gestion_user / [ProtonPass] |
Données Gestion prod |
| gestion_secourit_preprod |
gestion_user |
Données Gestion preprod |
SSL / Certificats
Tous les certificats Let' Encrypt sont gérés via Nginx Proxy Manager (API) :
| Domaine |
Proxy Host ID |
Cert ID |
Destination |
| dyna.secourit.fr |
1 |
1 |
10.10.10.20:3001 |
| gestion.secourit.fr |
2 |
2 |
10.10.10.21:3005 |
| secourit.fr |
3 |
3 |
172.18.0.4:80 |
| wolfsoulbikers.fr |
4 |
4 |
172.18.0.5:80 |
| ajd.secourit.fr |
5 |
5 |
172.18.0.6:80 |
| tv.secourit.fr |
6 |
6 |
10.10.10.22:8096 |
| csv.secourit.fr |
9 |
9 |
10.10.10.23:3003 |
| wycz.fr + www |
10 |
10 |
10.10.10.24:3004 |
| portugal.secourit.fr |
11 |
11 |
10.10.10.24:3007 |
| git.secourit.fr |
12 |
12 |
10.10.10.25:3000 |
| dyna-preprod.secourit.fr |
15 |
13 |
10.10.10.30:3101 |
| gestion-preprod.secourit.fr |
16 |
14 |
10.10.10.30:3105 |
Sauvegardes
Sauvegarde interne (Proxmox)
- Script :
/usr/local/bin/proxmox-backup.sh
- Fréquence : Chaque dimanche à 3h00 (cron)
- Destination : kDrive via rclone (remote
kdrive, user pierre@secourit.fr)
- Rétention : 3 dernières sauvegardes (les plus anciennes supprimées)
- Contenu : Dump MariaDB + PostgreSQL, sites nginx, données dyna, app gestion, Gitea, configs Proxmox
- Log :
/var/log/proxmox-backup.log
Backups clients WordPress (vsftpd)
Le serveur OVH fait also office de serveur FTP de backup pour les sites WordPress clients. Les clients configurent UpdraftPlus (version gratuite) sur leur WordPress pour envoyer les sauvegardes en FTP vers le serveur OVH.
| Client |
Site |
Hébergeur |
User FTP |
Dossier serveur |
Description |
| event-solutions.fr |
event-solutions.fr |
o2switch |
ftp-event |
/srv/backups/event-solutions/uploads/ |
Site pas créé par moi, contrat de maintenance uniquement. Mise à jour + backup sur le serveur OVH |
| bonelliphotographie.fr |
bonelliphotographie.fr |
Infomaniak |
ftp-bonelli |
/srv/backups/bonelli/uploads/ |
Site créé par moi (SecourIT), hébergé chez Infomaniak |
Configuration vsftpd
- Service : vsftpd sur Proxmox host (pas dans un LXC)
- Port : 21 (FTP non-encrypté)
- Config :
/etc/vsftpd.conf
- Userlist :
/etc/vsftpd.userlist (userlist_deny=NO → seuls les users listés peuvent se connecter)
- Chroot : Chaque user est chrooté dans son propre dossier
- PAM :
/usr/sbin/nologin ajouté dans /etc/shells pour autoriser les comptes système
- Passif : Ports 40000-40100
Mot de passe
ftp-event : [ProtonPass]
ftp-bonelli : [ProtonPass]
UpdraftPlus (côté WordPress)
Configuration à renseigner dans WordPress > UpdraftPlus > Réglages > Stockage distant > FTP :
| Paramètre |
event-solutions.fr |
bonelliphotographie.fr |
| Type |
FTP (non-encrypté) |
FTP (non-encrypté) |
| Serveur |
51.195.5.147 |
51.195.5.147 |
| Port |
21 |
21 |
| Utilisateur |
ftp-event |
ftp-bonelli |
| Mot de passe |
[ProtonPass] |
[ProtonPass] |
| Chemin |
/ |
/ |
Nginx Proxy Manager
DNS
Géré sur Infomaniak. Tous les enregistrements A pointent vers 51.195.5.147.
Fichiers importants
/usr/local/bin/proxmox-backup.sh : Script de sauvegarde
/root/.config/rclone/rclone.conf : Config rclone kDrive
/var/log/proxmox-backup.log : Log des sauvegardes
/etc/vsftpd.conf : Config serveur FTP backups clients
/etc/vsftpd.userlist : Users FTP autorisés
/srv/backups/ : Dossiers de backup clients