Files
infra/infrastructure.md
T

6.0 KiB

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