=== FLOTTA AUTONOMA - CONFIGURAZIONI === Aggiornato: 2026-04-23 === NETWORK === VPS IP Pubblico: 168.119.114.146 VPS IP Tunnel: 10.0.0.1 Nave IP LAN: 192.168.1.51 Nave IP Tunnel: 10.0.0.2 Dominio: privcloud.dev Tunnel: WireGuard (interface wg0, porta 51820) === PERCORSI CRITICI NAVE === Hub Dati (SSD 1TB): /mnt/ssd Cassaforte Dati (HDD 5TB): /mnt/backup-hdd Adrian Ops Hub: /mnt/ssd/adrian/ Docker Configs: /mnt/ssd/config/ Docker Data / User Data: /mnt/ssd/data/ Restic Repository: /mnt/backup-hdd/flotta-backup Restic Password File: /mnt/ssd/adrian/gemello-nave/secrets/restic_password === STRUTTURA SSD (/mnt/ssd) === /mnt/ssd/ ├── albert/ (Bot Telegram Albert — stack Adrian) ├── config/ (Docker configs: jellyfin, navidrome, guacamole, portainer, webdav) ├── data/ (Dati utente: media 257GB, obsidian-vault, Dropbox mirror, ecc.) └── adrian/ (Adrian Ops Hub — ingloba ex-Steve) ├── vault/ (credenziali, config, manifesto — .gitignore) ├── scripts/ (outlook_sync, monitor, slave-mailbox/ — infra condivisa Nave+Ufficio) ├── gemello-nave/ │ ├── logbook/ (report giornalieri) │ ├── flotta-diagnostics/ (sentinel.py, spostato qui l'11/09/2026) │ ├── config-backups/ (snapshot configs locale + avamposto, spostato qui l'11/09/2026) │ ├── logs/ (backup_completo.log, pcloud_mirror.log, wg_monitor.log — spostati qui l'11/09/2026) │ ├── secrets/ (restic_password, spostato qui l'11/09/2026 — usato solo da script ormai qui dentro) │ ├── backup_completo.sh, pcloud_backup.sh, wg_monitor.sh, guacamole_watchdog.sh (spostati qui l'11/09/2026, Nave-esclusivi) │ └── monitor-consumo-istanze/ (spostato qui l'11/09/2026) └── CLAUDE.md === BACKUP — sezione consolidata e verificata 2026-07-29 (unica fonte, non ripetere altrove) === Tre meccanismi indipendenti, nessuno sostituisce gli altri: 1. **Restic** (cron 03:00, `gemello-nave/backup_completo.sh`) — backup completo `/mnt/ssd` su `/mnt/backup-hdd/flotta-backup`. Retention: 7 daily, 4 weekly, 12 monthly. Password: vedi `credentials.md`. Password file su disco: `gemello-nave/secrets/restic_password`. Check integrità automatico la domenica. 2. **pCloud mirror** (cron 01:15, `gemello-nave/pcloud_backup.sh`) — rclone mirror di `/mnt/ssd` su pCloud (remote `pcloud_backup`), copia offsite indipendente da Restic. 3. **Avamposto snapshot** (cron 02:45, `gemello-nave/config-backups/backup_avamposto.py`) — tar.gz configurazioni VPS (Caddy, WireGuard, SSH) in `gemello-nave/config-backups/avamposto_snapshots/`. **Disattivato**: config snapshot locale (`gemello-nave/config-backups/snapshot_configs.py`, era alle 02:30) — disabilitato 2026-07-15, ridondante con Restic. **Sentinel check**: domenica 06:00, `gemello-nave/flotta-diagnostics/sentinel.py` — verifica salute generale, non è un backup a sé. === CRON JOBS (utente mauro) — percorsi reali verificati 2026-08-01, aggiornati 11/09/2026 per lo spostamento di logbook/flotta-diagnostics dentro gemello-nave/ (crontab -l, non riverificato riga per riga oltre questo) === 01:15 - pCloud Full Mirror (/mnt/ssd/data/Dropbox/adrian/gemello-nave/pcloud_backup.sh) 02:45 - Avamposto Snapshot (/mnt/ssd/data/Dropbox/adrian/gemello-nave/config-backups/backup_avamposto.py) 03:00 - Backup Completo Restic(/mnt/ssd/data/Dropbox/adrian/gemello-nave/backup_completo.sh) 05:45 - Collect Logs (/mnt/ssd/data/Dropbox/adrian/gemello-nave/logbook/collect_logs.py) 06:00 dom - Sentinel Check (/mnt/ssd/data/Dropbox/adrian/gemello-nave/flotta-diagnostics/sentinel.py) ogni 5 min - WG Monitor (/mnt/ssd/data/Dropbox/adrian/gemello-nave/wg_monitor.sh) — nota 11/09 sera: era "ogni ora" nel refresh precedente della stessa giornata, frequenza cambiata nel frattempo per motivo non investigato, vedi RECOVERY.md ogni 5 min - Guacd keepalive (cd /mnt/ssd/config/guacamole && docker compose up -d guacd) Disattivati (righe presenti ma commentate, lasciate come nota storica): - snapshot_configs.py (02:30) — disabilitato 2026-07-15, ridondante con Restic Rimosso (11/09/2026): riga commentata `maintenance_check.py` (09:00, paused dal 15/07) — lo script (dipendeva da Elon/vault, agenti smantellati) e il crontab morto sono stati eliminati, non solo lasciati commentati. === CRON JOBS (root) === # Nessuno — Restic spostato a mauro crontab (usa sudo) === SUDO NOPASSWD === Nave: /etc/sudoers.d/mauro-nopasswd (mauro ALL=(ALL) NOPASSWD: ALL) Avamposto: /etc/sudoers.d/mauro-nopasswd (mauro ALL=(ALL) NOPASSWD: ALL) === MAPPING PROGETTI HETZNER (chiarito 23/08/2026, da fattura reale) === Avamposto e VelionMC sono due progetti separati sulla stessa fattura Hetzner: - Progetto "flotta-autonoma" (CX22) = Avamposto — 4,49 server + 0,90 backup + 0,50 IPv4 = 5,89€ netti/mese (7,19€ IVA inclusa) - Progetto "VelionMC" (CX23) = server Minecraft Francesco — 3,99 + 0,80 backup + 0,50 IPv4 = 5,29€ netti/mese Totale fattura: 11,18€ netti (13,64€ IVA inclusa) — nell'archivio l'Avamposto non è mai chiamato col nome del progetto Hetzner, tenere presente per collegare i due se si guarda la fattura. === VELIONMC — SERVER MINECRAFT FRANCESCO === Nome: VelionMC Provider: Hetzner Cloud Piano: CX23 (2 vCPU, 4GB RAM, 40GB disco) Location: Falkenstein (FSN1) IP Pubblico: 167.233.98.108 OS: Ubuntu 24.04 LTS Utente SSH: root Chiave SSH: /home/mauro/.ssh/id_ed25519 (stessa della Nave) Backup: Hetzner automatico (20% costo) Scopo: Server Minecraft Paper per Francesco e amici (~5 giocatori) Gestione: Francesco (figlio) — Adrian supporto infrastruttura Creato: 2026-04-23 Porta MC: 25565 (da aprire su ufw) Note: ufw e Java/Paper da configurare === CADDY REVERSE PROXY (su VPS) === Config: /opt/caddy/Caddyfile Gestisce routing per *.privcloud.dev → 10.0.0.2 (Nave via tunnel) === FIREWALL VPS (ufw) === Porte aperte: 22/tcp, 80/tcp, 443/tcp, 51820/udp fail2ban: attivo ufw: attivo (riattivato 2026-03-04)