Carnet DevOps staging
Cette page montre, en direct, ce que la plateforme du VPS fait pour une application. Chaque bloc correspond à une notion ; en bas, la commande pour la vérifier vous-même sur le serveur.
État en direct
Version déployée
- Commit
- 7545b3f4a564
- Conteneur
- 0948df53b5f5
- APP_ENV
- staging
- PHP / Laravel
- 8.4.26 / 13.34.0
HTTPS et proxy
- Hôte
- skills-devops-staging.visibilitycam.com
- HTTPS
- oui
- Votre IP
- 216.73.217.165
Base de données
connectée pgsql
Visites enregistrées : 33
Ce compteur survit aux déploiements : les données sont dans un volume.
Cache (Redis)
opérationnel redis
Worker (file d'attente)
aucun job traité
Scheduler
actif
dernier passage il y a 56 s
Ce qu'il faut retenir (et comment le vérifier)
1. Un sous-domaine sans rien créer dans le DNS
La zone DNS (chez Contabo) contient *.visibilitycam.com → IP du VPS. Tout nom à un niveau arrive donc sur le serveur. Cette app n'a eu besoin que d'un nom libre, déclaré dans son .env (APP_PUBLIC_HOST).
dig +short skills-devops-staging.visibilitycam.com # → l'IP du VPS /app/vps-platform/bin/vps-hosts.sh --free autre-nom.visibilitycam.com
2. nginx-proxy envoie la visite au bon conteneur
Le conteneur app déclare VIRTUAL_HOST : nginx-proxy le voit et route ce nom vers lui. Aucun port ouvert sur le serveur.
docker inspect skills-devops-prod-app-1 --format '{{range .Config.Env}}{{println .}}{{end}}' | grep VIRTUAL_HOST
3. HTTPS automatique (Let's Encrypt)
acme-companion lit LETSENCRYPT_HOST et obtient le certificat en 1 à 2 minutes, puis le renouvelle seul.
docker logs nginx-proxy-acme 2>&1 | grep skills-devops-staging.visibilitycam.com | tail -5
4. Staging automatique, production par promotion de la même image
deploy.sh construit une image par commit. Le staging la reçoit automatiquement ; la production reçoit exactement la même, quand vous le décidez. Le commit affiché ci-dessus doit être identique en staging et en prod après une promotion.
cd /app/skills-devops/staging && /app/vps-platform/bin/deploy.sh watch cd /app/skills-devops/prod && /app/vps-platform/bin/deploy.sh promote /app/vps-platform/bin/deploy.sh status
5. Migrations avant la bascule, retour arrière automatique
Si une migration échoue, rien n'est basculé. Si la nouvelle version ne répond pas sur /up, l'ancienne revient seule. Retour arrière manuel :
cd /app/skills-devops/prod && /app/vps-platform/bin/deploy.sh rollback prod tail -20 /var/lib/vps-platform/skills-devops/deploy.log
6. Sauvegardes chiffrées
Une sauvegarde est prise avant chaque mise en production, et chaque nuit. Le compteur de visites ci-dessus est dedans.
docker run --rm -v skills-devops-prod_backups:/b busybox ls -lh /b
7. Un processus par conteneur, relancé par Docker
app (web), worker (file d'attente), scheduler (tâches planifiées), db, redis : si l'un s'arrête, Docker le relance. Essayez avec le worker, puis renvoyez un job :
docker restart skills-devops-prod-worker-1 docker ps --filter label=com.docker.compose.project=skills-devops-prod
8. Journaux centralisés
Les conteneurs portent le label observability.enable=true : leurs journaux arrivent dans Grafana (app=skills-devops), sans rien configurer d'autre.
docker logs skills-devops-prod-app-1 --tail 20