Page:
Exploitation
No results
1
Exploitation
pepper edited this page 2026-06-27 03:07:54 +00:00
Table of contents
⚡ Exploitation au quotidien
Commandes de base
# État de la stack
sudo docker compose ps
# Logs en temps réel
sudo docker compose logs -f
sudo docker compose logs -f <service> # un service
sudo docker compose logs -f swag authentik-server # plusieurs
# Redémarrer un service
sudo docker compose restart <service>
# Recréer après modif du compose
sudo docker compose up -d <service>
# Arrêter / démarrer la stack complète
sudo docker compose down -v
sudo docker compose up -d
Mettre à jour un service
Services opt-in Watchtower (automatique)
Watchtower gère : swag, wireguard, qbittorrent, node-exporter.
Ces services sont mis à jour automatiquement lors de la prochaine vérification.
Services épinglés (mise à jour manuelle)
# Vérifier la dernière image disponible
sudo docker compose pull <service>
# Recréer avec la nouvelle image
sudo docker compose up -d <service>
# Nettoyer l'ancienne image
sudo docker image prune -f
Services épinglés (version fixée) :
| Service | Image épinglée | Raison |
|---|---|---|
postgresql |
postgres:18-alpine |
Migration de données requise |
nextcloud |
nextcloud:34 |
Mises à jour majeures risquées |
authentik-server |
goauthentik/server:2026.x.x |
Migrations DB Authentik |
Mise à jour Nextcloud
# 1. Sauvegarder
sudo ./backup.sh
# 2. Changer la version dans .env ou docker-compose.yml
# NEXTCLOUD_VERSION=35 (par exemple)
# 3. Puller et recréer
sudo docker compose pull nextcloud nextcloud-cron
sudo docker compose up -d nextcloud nextcloud-cron
# 4. Lancer la mise à jour OCC (si version majeure)
sudo docker exec -u www-data nextcloud php occ upgrade
Ajouter un nouveau service
- Ajouter le service dans
docker-compose.ymlavec les bons réseaux - Créer la config nginx dans
./swag/conf/nginx/<service>.conf(ou copier un.sample) - Si le service a besoin d'un secret : créer
secrets/<nom>.txt+ déclarer dans compose - Si OIDC : créer l'application dans Authentik
sudo docker compose up -d <nouveau_service>sudo docker compose restart swag(pour charger la config nginx)- Commiter et pousser :
git add … && git commit … && ./git-push.sh
Gestion des certificats
Let's Encrypt est géré automatiquement par SWAG (DNS challenge Cloudflare).
# Voir les certificats
sudo docker exec swag ls /config/etc/letsencrypt/live/
# Forcer le renouvellement
sudo docker exec swag certbot renew --force-renewal
# Logs du renouvellement automatique
sudo docker compose logs swag | grep -i certbot
Versionnement git
Le dépôt est sur forgejo.molok.fr/pepper/docker-infra.
Le push passe par le réseau Docker interne (hairpin NAT) :
# Vérifier l'état
git status
git log --oneline -10
# Commiter et pousser
git add docker-compose.yml .env ...
git commit -m "Description du changement"
./git-push.sh
Le token Forgejo est dans
secrets/forgejo_git_token.txt. Ne jamais commiter ce fichier (secrets/est dans.gitignore).
Inspecter un conteneur
# Entrer dans un conteneur
sudo docker exec -it <service> sh
# Voir les variables d'environnement d'un conteneur
sudo docker exec <service> env | sort
# Voir les montages (volumes)
sudo docker inspect <service> | python3 -c "
import sys, json
c = json.load(sys.stdin)[0]
for m in c['Mounts']:
print(m['Source'], '->', m['Destination'])
"
# Utilisation des ressources en temps réel
sudo docker stats
Diagnostic réseau
# Tester la connectivité entre deux conteneurs
sudo docker exec swag curl -s http://forgejo:3000/api/healthz
sudo docker exec swag curl -s http://authentik-server:9000/-/health/ready/
# Voir les DNS internes
sudo docker exec swag cat /etc/resolv.conf
sudo docker exec swag nslookup postgresql