🐧 Commandes Linux

serveur GEEKOM · aide-mémoire ← Outils

Les commandes courantes d'administration du serveur, reprises de INFRASTRUCTURE.md. Cliquez sur ⧉ pour copier une commande. Remplacez <service> / <conteneur> par le nom voulu.

🩺 Diagnostic rapide

Conteneurs actifs (≈17 attendus)
docker ps
Services systemd en échec
systemctl --failed
État de la sauvegarde
cat ~/HomeAssistant/backup-health.json
État général du serveur
cat ~/HomeAssistant/server-health.json
Espace disque / mémoire / charge
df -h / ; free -h ; uptime

💾 Système & mises à jour

Mettre à jour le système
sudo apt update && sudo apt upgrade -y
Nettoyer les paquets orphelins
sudo apt autoremove -y
Santé du SSD (firmware buggé — à surveiller)
sudo nvme smart-log /dev/nvme0 | grep -iE 'unsafe|media|percent_used'
Redémarrer la machine
sudo reboot

🐳 Docker (stack ~/docker-compose)

Conteneurs en boucle de crash
docker ps --filter status=restarting
Logs en direct d'un service
cd ~/docker-compose && docker compose logs -f <service>
Redémarrer un service
cd ~/docker-compose && docker compose restart <service>
Mettre à jour la stack
cd ~/docker-compose && docker compose pull && docker compose up -d
Entrer dans un conteneur
docker exec -it <conteneur> bash

🧱 Caddy (reverse proxy)

Recharger la config (sans coupure)
sudo systemctl reload caddy
État du service
sudo systemctl status caddy
Logs en direct
sudo journalctl -u caddy -f
Vérifier le renouvellement des certificats
sudo journalctl -u caddy | grep -i 'renew\|cert' | tail -20

🛡️ Pi-hole & DNS

Redémarrer Pi-hole
cd ~/docker-compose && docker compose restart pihole
Test résolution (doit répondre)
dig @192.168.1.89 google.com
Test domaine bloqué (doit être 0.0.0.0)
dig @192.168.1.89 doubleclick.net
Debug requêtes clients tailnet
docker exec pihole grep '172.19.0.1' /var/log/pihole/pihole.log

🔐 Réseau & VPN

État Tailscale
tailscale status
État tunnel Mullvad
sudo systemctl status wg-quick@mullvad
Kill switch (couper Mullvad)
sudo systemctl stop wg-quick@mullvad
Trafic normal → enp3s0 (Free)
ip route get 8.8.8.8
Trafic marqué → mullvad
ip route get 8.8.8.8 mark 0x1000
Relancer Stubby (si CPU 80%)
sudo systemctl restart stubby

🗄️ Sauvegarde NAS (Borg)

Réveiller + monter le NAS
sudo /usr/local/bin/wake-and-mount-nas.sh
NAS monté ?
mount | grep backup
Journal de sauvegarde
sudo tail -50 /var/log/backup.log
Erreur Borg ?
docker logs nextcloud-aio-borgbackup
Lister les archives Borg
borg list /mnt/backup/borg/borg/

☁️ Nextcloud (occ)

État de l'installation
docker exec -u www-data nextcloud-aio-nextcloud php occ status
Re-scanner tous les fichiers
docker exec -u www-data nextcloud-aio-nextcloud php occ files:scan --all
Ajouter les index manquants (DB)
docker exec -u www-data nextcloud-aio-nextcloud php occ db:add-missing-indices
Mode maintenance ON
docker exec -u www-data nextcloud-aio-nextcloud php occ maintenance:mode --on

🏠 Zigbee2MQTT / Home Assistant

Logs Zigbee2MQTT en direct
docker logs -f zigbee2mqtt
Redémarrer Zigbee2MQTT
cd ~/docker-compose && docker compose restart zigbee2mqtt
Dongle Zigbee détecté ?
ls -la /dev/serial/by-id/
Logs Home Assistant en direct
docker logs -f homeassistant

🪟 tmux (sessions Claude Code)

Lister les sessions
tmux ls
Rejoindre une session
tmux attach -t maintenance
Nouvelle session dans un dossier
tmux new -s web -c ~/web
Renommer une session
tmux rename-session -t <ancien> <nouveau>
Fermer une session
tmux kill-session -t <nom>
Se détacher (laisse tourner en fond)
Ctrl-b puis d
Fenêtre suivante / précédente
Ctrl-b puis n / p
Diviser le volet (split) puis naviguer
Ctrl-b " (haut/bas) · % (gauche/droite) · flèches

🔧 Git (dépôt infra, depuis ~/)

État du dépôt
git status
Récupérer les changements
git pull
Committer
git add -A && git commit -m "message"
Pousser
git push