Obelica Docs
Backup

Privilegi backup

Studio permessi per il backup automatico Obelica

Ultimo aggiornamento: 2026-06-19.

Strumento

Il backup e' gestito dal tool Rust obelica-backup in:

/opt/obelica/infra/tools/obelica-backup

L'eseguibile compilato e' in:

/opt/obelica/infra/tools/obelica-backup/target/release/obelica-backup

Problema

I dati app Forgejo vivono in:

/opt/obelica/data/forgejo/app

Alcuni path importanti non sono leggibili direttamente da bona sul filesystem host:

/opt/obelica/data/forgejo/app/ssh       root:root 700
/opt/obelica/data/forgejo/postgres      uid 70:systemd-journal 700

Un tar diretto da host non puo' includere tutto senza root.

Modello privilegi attuale

bona e' nel gruppo docker.

Il socket Docker e':

/var/run/docker.sock root:docker 660

Accesso Docker e' root-equivalent su questo host. Per questo non e' stato aggiunto passwordless sudo solo per il backup.

Soluzione scelta

obelica-backup preferisce container root per i dati con permessi ristretti:

docker run --rm -v /opt/obelica/data/forgejo:/data:ro alpine:latest \
  tar czf - -C /data . > forgejo-app-data.tar.gz

Per i database:

docker run --rm -e PGPASSWORD=... postgres:18-alpine \
  sh -c 'pg_dump ... | gzip' > <app>.sql.gz

E per Forgejo:

docker exec forgejo-db pg_dump -U forgejo forgejo | gzip > forgejo.sql.gz

Cifratura

I file sensibili (dump DB e secret) vengono cifrati con ChaCha20Poly1305 in streaming, in modo da gestire anche file grandi senza caricarli tutti in RAM.

Vantaggi

  • Include /data/ssh e altri path root-only.
  • Non richiede sudo interattivo.
  • Non pubblica archivi parziali.
  • Output owner bona:bona.
  • File mode 600.
  • Cifratura prima del salvataggio.

Esclusioni

Esclusi path volatili e la passphrase di backup:

./gitea/log
./gitea/queues
./gitea/tmp
/opt/obelica/secrets/.backup-passphrase

Inclusi path sensibili persistenti:

./gitea/conf/app.ini
./gitea/jwt/private.pem
./ssh/*
./git/.ssh/*

Hardening futuro

  • backup user dedicato con permessi stretti;
  • offsite cifrato;
  • restore test periodici;
  • alert fallimento backup.

On this page