Obelica Docs
Audit

Audit iniziale 2026-06-17

Primo audit operativo del droplet e fix applicati

Scope

Giro operativo del server /opt/obelica con creazione documentazione e miglioramento script. Non sono stati salvati valori secret.

Comandi principali

  • docker ps;
  • docker network ls;
  • docker compose ls;
  • docker version;
  • ss -tulpen;
  • systemctl is-active docker ssh fail2ban ufw;
  • script status, health, doctor, security, backup;
  • lettura compose e documentazione sotto /opt/obelica.

Stato positivo

  • Docker attivo.
  • Stack Compose rilevati e running.
  • test.obelica.com risolve al droplet.
  • HTTPS pubblico su test.obelica.com.
  • Traefik pubblica 80/443.
  • Traefik dashboard solo 127.0.0.1:8080.
  • Forgejo solo 127.0.0.1:3333.
  • Obelica Docs solo 127.0.0.1:3334.
  • forgejo-db healthy.
  • Postgres Forgejo risponde a select 1.
  • Permessi principali secret e acme.json corretti secondo audit precedente.

Fix applicati agli script

Riscritti:

  • backup-configs.sh;
  • check-dns.sh;
  • check-security.sh;
  • doctor.sh;
  • health.sh;
  • status.sh.

Aggiunto:

/opt/obelica/infra/scripts/lib/common.sh

Cambiamenti:

  • sudo -n per controlli privilegiati;
  • stato UNKNOWN per permessi mancanti;
  • exit code coerenti;
  • caricamento config dai file reali;
  • separazione config/secret;
  • manifest secret redatti;
  • backup Forgejo DB parametrizzato;
  • backup app-data Forgejo anti-archivi parziali.

Backup privilege study

Findings:

  • bona e' nel gruppo docker;
  • Docker access e' root-equivalent;
  • sudo -n true richiede password;
  • /opt/obelica/data/forgejo/app/ssh e' root-owned;
  • il container Forgejo puo' leggere /data/ssh.

Implementato:

  • backup app-data via docker exec forgejo tar ... -C /data .;
  • archivio temporaneo validato con tar -tzf;
  • pubblicazione solo dopo validazione;
  • fallback host solo se container non disponibile.

Verifica:

/opt/obelica/backups/dumps/manual-2026-06-17_02-30-12

Prodotti:

forgejo.sql.gz
forgejo-app-data.tar.gz

Problemi ancora aperti

  • Cloud Firewall DigitalOcean da verificare esternamente.
  • Retention backup non ancora automatica.
  • Backup offsite non configurato.
  • Restore test non eseguito.
  • Monitoring e alert non configurati.
  • CI/CD da Forgejo non ancora presente.

Decisione

Non aggiungere passwordless sudo ampio ora.

Trattare Docker group come canale operativo privilegiato e rivalutare systemd timer root-owned o backup user dedicato quando si automatizzano backup schedulati.

On this page