- 6 docs racine (README, HANDOVER, ARCHITECTURE, DECISIONS, INSTALL, OPERATIONS) - 9 docs thématiques dans docs/ - 10 templates docker-compose dans configs/ - 7 scripts Python/Shell d'import Furious vers Zitadel - 2 matrices RBAC Etat infra au 5 juin 2026 : - 88 users Furious importes dans Zitadel - 8 roles RBAC crees et attribues - Intranet filtre les cartes selon role (Approche A) - 7 outils SSO operationnels
4.7 KiB
01 — DNS et prérequis
Tout ce qu'il faut côté DNS et serveur avant de commencer.
🌐 Records DNS à configurer
Chez votre registrar (Scaleway, OVH, Gandi, etc.), ajouter les records suivants.
⚠️ Tous les records sont des A (pas de CNAME) pointant vers l'IP publique du serveur.
| Sous-domaine | Type | Valeur | Usage |
|---|---|---|---|
@ (racine) |
A | <IP> |
Site vitrine (optionnel) |
sso |
A | <IP> |
Zitadel — Identity Provider |
intranet |
A | <IP> |
Page d'accueil RBAC |
git |
A | <IP> |
Gitea |
n8n |
A | <IP> |
n8n workflows |
portainer |
A | <IP> |
Portainer Docker |
code |
A | <IP> |
Code Server (VS Code web) |
status |
A | <IP> |
Uptime Kuma |
traefik |
A | <IP> |
Dashboard Traefik (admin) |
app |
A | <IP> |
whoami debug (optionnel) |
TTL recommandé : 300 (5 min)
Pour pouvoir corriger rapidement en cas d'erreur.
Vérification après ajout
# Sur ton PC
for sub in sso intranet git n8n portainer code status traefik; do
echo -n "$sub.seizeconsulting.com : "
dig +short $sub.seizeconsulting.com
done
→ Toutes les lignes doivent afficher l'IP du serveur.
⚠️ La propagation DNS peut prendre 1-24h. Tester depuis plusieurs réseaux (4G, autre wifi) si pas immédiat.
🖥️ Spécifications serveur recommandées
Minimum (88 users actifs Seize)
- CPU : 4 vCPU
- RAM : 8 Go
- Disque : 80 Go SSD
- Bande passante : 100 Mbps
Recommandé (pour confort + croissance)
- CPU : 8 vCPU
- RAM : 16 Go
- Disque : 160 Go SSD
- Bande passante : 1 Gbps
Provider testé : Scaleway
- Type d'instance :
PRO2-S(4 vCPU, 16 Go RAM) - Région :
fr-par-1 - OS : Debian 13 (Trixie)
🔒 Firewall (recommandé)
Configuration via ufw
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP (Traefik redirect)'
sudo ufw allow 443/tcp comment 'HTTPS'
sudo ufw enable
Vérification
sudo ufw status verbose
→ Doit montrer ports 22, 80, 443 autorisés.
⚠️ Ne PAS oublier d'autoriser le port 22 avant d'activer ufw, sinon tu te bloques hors du serveur.
🔑 Hardening SSH
Désactiver le login root
Éditer /etc/ssh/sshd_config :
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Restart : sudo systemctl restart sshd
⚠️ Avoir un user non-root configuré AVANT de désactiver root.
Changer le port SSH (optionnel)
Si beaucoup de scans bots :
Port 2222 # Au lieu de 22
Ne pas oublier d'ouvrir le nouveau port dans ufw avant le restart sshd.
🐳 Prérequis Docker
Installer Docker
curl -fsSL https://get.docker.com | sudo sh
Ajouter user au groupe docker
sudo usermod -aG docker $USER
exit # Se déconnecter
# Se reconnecter
Vérifier l'install
docker --version
docker compose version
docker ps
Tous doivent fonctionner sans sudo.
🌐 Réseaux Docker à créer
docker network create web
docker network create backend
- web : réseau pour les services exposés publiquement (via Traefik)
- backend : réseau pour les services internes (Postgres, Redis si utilisé)
⏰ NTP / Synchronisation horaire
⚠️ Critique pour les certificats TLS et les tokens JWT.
sudo apt install -y systemd-timesyncd
sudo systemctl enable --now systemd-timesyncd
timedatectl status
→ "System clock synchronized: yes" doit apparaître.
📊 Monitoring serveur de base
Installer htop, iotop
sudo apt install -y htop iotop ncdu
Espace disque alert
Optionnel : alert si > 80% d'espace utilisé :
cat > ~/disk-alert.sh << 'EOF'
#!/bin/bash
USAGE=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ $USAGE -gt 80 ]; then
echo "⚠️ Espace disque > 80% : $USAGE%" | mail -s "Alert disk Seize" admin@seizeconsulting.com
fi
EOF
chmod +x ~/disk-alert.sh
# Crontab tous les jours à 8h
(crontab -l ; echo "0 8 * * * /home/admin/disk-alert.sh") | crontab -
⚠️ Nécessite un client mail configuré (mailutils, ssmtp, etc.).
✅ Checklist avant de passer aux étapes suivantes
- DNS configurés et propagés
- Serveur accessible en SSH avec user non-root
- Firewall actif (22, 80, 443 ouverts)
- SSH hardening fait (pas de root, pas de password auth)
- Docker + Docker Compose installés et fonctionnels
- Réseaux Docker
webetbackendcréés - Horloge synchronisée (NTP)
- htop / outils de base installés
- Espace disque > 50 Go libre
→ Tout coché ? Passer à 02-traefik-setup.md.