Déploiement Jenkins
Résumé du déploiement Jenkins
Architecture globale
Service : Jenkins LTS
Conteneurisation : Podman
Reverse Proxy : Nginx
Domaine : jenkins.sanjy.fr
Certificat SSL : Let's Encrypt (avec renouvellement automatique via Certbot)
Couche conteneur (Podman)
podman run -d \
--name jenkins \
-p 127.0.0.1:8080:8080 \ # Interface web Jenkins (localhost uniquement)
-p 127.0.0.1:50000:50000 \ # Port agents Jenkins (localhost uniquement)
-v jenkins_home:/var/jenkins_home \ # Persistance des données
docker.io/jenkins/jenkins:lts
Points clés :
- Exposition locale uniquement (
127.0.0.1) →sécuritépaspardedéfautbinding direct sur l'IP publique - Volume nommé
jenkins_homepour la persistance - Ports 8080 (UI) et 50000 (agents) disponibles en local
Couche reverse proxy (Nginx)
Flux HTTP (port 80)
- Redirection automatique : HTTP → HTTPS (301 permanent)
- Compatible IPv4 et IPv6
Flux HTTPS (port 443)
- SSL/TLS : TLSv1.2 et TLSv1.3 avec chiffrements forts
- Certificat :
/etc/letsencrypt/live/sanjy.fr/(wildcard ou multi-domaine) - HSTS : Force HTTPS pendant 1 an
Configuration proxy
| Fonctionnalité | Configuration |
|---|---|
| Proxy pass | http://localhost:8080 |
| Headers | Host, X-Real-IP, X-Forwarded-For/Proto |
| WebSocket | Upgrade + Connection headers (pour logs temps réel) |
| Buffering | Désactivé (meilleure réactivité) |
| Timeouts | 90s (connect/send/read) |
Flux de requêtes
Internet → nginx:443 (HTTPS) → localhost:8080 (HTTP) → Container Jenkins
Sécurité :
- Jenkins accessible depuis Internet via jenkins.sanjy.fr
- Le conteneur n'
estécoutejamaisque sur localhost (pas exposé directement surInternetl'IP publique) - Nginx gère la terminaison SSL/TLS et les headers de sécurité
IsolationCommunicationréseaulocalevianonlocalhostchiffrée entre Nginx et Jenkins (acceptable car localhost)
Points notables
✅ Support WebSocket : Logs Jenkins en temps réel
✅ HTTP/2 : Performance optimisée
✅ HSTS : Protection contre downgrade SSL
✅ Buffering désactivé : Streaming des gros fichiers/logs
✅ Certificat managé : Renouvellement automatique Certbot