π Runbooks
Procedure operative standard per la gestione dell'homelab.
Aggiungere un nuovo Container LXC
- In Proxmox Web UI β Create CT
- Scegli template Debian 12/13
- Assegna IP seguendo la convenzione:
10.0.0.(ID-100)per ID < 200,10.0.0.IDper ID β₯ 200 - Dopo l'avvio, aggiorna il sistema:
apt update && apt upgrade -y
- Se il CT necessita accesso ai media, aggiungi il bind mount:
pct set <CTID> -mp0 /mnt/media,mp=/data/media
- Aggiorna la documentazione in containers.md e services.md
Sistemare i permessi media
Se Sonarr/Radarr/Jellyfin non riescono ad accedere ai file:
# Sull'host Proxmox
chown -R 100999:100999 /mnt/media
chmod -R 755 /mnt/media
find /mnt/media -type f -exec chmod 644 {} \;
Oppure triggera il timer automatico:
systemctl start fix-media-perms.service
Bind mount non funzionante dopo riavvio
Se i CT non vedono /data/media:
# Verifica che mergerfs sia montato
df -h /mnt/media
# Se non montato, rimonta manualmente
mkdir -p /mnt/media
mergerfs /mnt/media-hdd1:/mnt/media-hdd2:/mnt/media-hdd3 /mnt/media -o defaults,allow_other,use_ino,category.create=mfs
# Riavvia i CT
pct reboot 202
pct reboot 203
Espandere il disco di un CT
# Sull'host Proxmox
pct stop <CTID>
lvresize -L <nuova_dimensione>G /dev/pve/vm-<CTID>-disk-0
pct start <CTID>
# Dentro il CT
resize2fs /dev/mapper/pve-vm--<CTID>--disk--0
Importare manualmente episodi/film
Quando il nome del file non Γ¨ standard:
- Carica i file su
/mnt/media/serie/o/mnt/media/film/via SFTP - In Sonarr/Radarr β Wanted β Manual Import
- Seleziona la cartella e mappa ogni file alla serie/film/episodio corretto
- Scegli Import Mode: Move files
- Dopo l'import, vai sulla serie β seleziona tutti gli episodi β Rinomina file
Servizio non si avvia
# Controlla lo stato
pct exec <CTID> -- systemctl status <servizio>
# Controlla i log
pct exec <CTID> -- journalctl -u <servizio> -n 50
# Riavvia il servizio
pct exec <CTID> -- systemctl restart <servizio>
Disco quasi pieno
# Controlla spazio disponibile
df -h /mnt/media
df -h /
# Trova cosa occupa piΓΉ spazio
du -sh /mnt/media/* | sort -rh
# Pulisci cache apt nei CT
pct exec <CTID> -- apt clean
Tunnel Cloudflare non funziona
# Trova il CT con cloudflared
pct exec <CTID> -- systemctl status cloudflared
# Riavvia il tunnel
pct exec <CTID> -- systemctl restart cloudflared
# Controlla i log
pct exec <CTID> -- journalctl -u cloudflared -n 30
Restore CT da backup vzdump locale
- Individuare il backup:
ls -la /var/lib/vz/dump/ | grep <CTID>
- (Consigliato) Backup dello stato attuale prima del restore:
vzdump <CTID> --storage local --compress zstd --mode snapshot
- Stop, restore, start:
pct stop <CTID>
pct restore <CTID> /var/lib/vz/dump/<file>.tar.zst --storage local-lvm --force
pct start <CTID>
- Verifica:
pct status <CTID>
pct exec <CTID> -- df -h
cat /etc/pve/lxc/<CTID>.conf | grep mp