Annexe A
Aide-mémoire des commandes
Les commandes d'exploitation les plus utiles, regroupées par tâche.
Concerne :Équipe technique
Sauf mention contraire, les commandes se lancent sur le serveur, dans /opt/read/code.
État et journaux#
cat /opt/read/code/VERSION # commit déployé
docker compose ps -a # état des conteneurs
docker compose logs --tail 100 app # journal de l'application
docker compose logs --tail 100 caddy # certificats, relais
docker compose logs migrations # dernières migrations
tail -f /opt/read/deploiement.log # déploiement en coursDémarrer, arrêter, appliquer un réglage#
docker compose up -d # démarrer ou appliquer un changement de .env
docker compose restart app # redémarrer l'application seule
docker compose stop # arrêter (les données sont conservées)Danger
Jamais docker compose down -v : l'option -v supprime les volumes, donc toutes les données.
Déploiement (depuis le poste)#
deploy/deployer.sh <alias-ssh>
SSH=/c/Windows/System32/OpenSSH/ssh.exe deploy/deployer.sh <alias-ssh> # sous Windows (Git Bash)Retour à la version précédente (sur le serveur) :
cd /opt/read && rm -rf code && mv code.ancien code && cd code && docker compose up -d --buildSauvegarde et restauration#
sudo /opt/read/code/deploy/sauvegarde.sh # sauvegarde immédiate
systemctl list-timers read-sauvegarde.timer # prochaine sauvegarde
sudo journalctl -u read-sauvegarde.service -n 20 # dernier compte rendu
sudo ls /var/backups/read # sauvegardes locales
sudo /opt/read/code/deploy/restaurer.sh /var/backups/read/<horodatage> --essai # essai, sans effet
sudo /opt/read/code/deploy/restaurer.sh /var/backups/read/<horodatage> --confirmer # REMPLACE les données
docker run --rm --env-file <(grep ^RCLONE_ /opt/read/.env) rclone/rclone:1.75.1 lsd chiffre: # copies distantesBase de données#
docker compose exec db psql -U read -d read # console SQL (compte propriétaire)
docker compose exec db psql -U read -d read -c "SELECT count(*) FROM organisations"Attention
La console SQL donne tous les droits, y compris sur le journal d'audit. Ne modifiez jamais les données par SQL : toute écriture doit passer par la plateforme pour être contrôlée et tracée.
Fichiers et e-mails locaux#
docker run --rm -v read-plateforme_app-logs:/logs:ro alpine:3.24 ls -l /logs # journaux quotidiens
docker run --rm -v read-plateforme_app-donnees:/d:ro alpine:3.24 ls -lt /d/boite-envoi # e-mails non envoyés (sans SMTP)Système et place disque#
df -h / && sudo du -sh /var/backups/read # place disque
docker system df # place utilisée par Docker
docker image prune -f # images inutilisées
timedatectl # horloge synchronisée
sudo ufw status # pare-feuDémonstration seulement#
/opt/read/code/deploy/reinitialiser-demo.sh --confirmer # remise à zéro (refusée hors démo)