Non devono essere versionati:
.envdata/db.jsondata/secrets/generated/- certificati e chiavi private
- log applicativi o Apache
Il repository contiene .gitignore per ridurre il rischio di commit accidentali.
Le password sono salvate con:
crypto.scrypt- salt casuale
- hash persistito nel database JSON
La policy password viene validata in backend.
Le sessioni usano:
- cookie
HttpOnly - token casuale
- hash SHA-256 del token nel database
Il database contiene sessioni attive. Proteggi DB_PATH come file sensibile.
La 2FA e' opzionale per utente.
Quando viene abilitata o rigenerata:
- Il backend genera una nuova chiave TOTP.
- Il frontend mostra QR code e URI
otpauth://. - Il backend salva la chiave solo dopo verifica di un codice valido.
Le chiavi TOTP sono dati sensibili e sono nel database JSON.
Le credenziali OVH vengono scritte in SECRETS_DIR e protette con permessi 0600 quando il sistema operativo lo consente.
I certificati Let's Encrypt vivono normalmente in:
/etc/letsencrypt
In Docker questo percorso e' un volume persistente.
Raccomandazioni minime:
- Pubblica il pannello dietro HTTPS.
- Limita l'accesso al pannello con firewall o VPN.
- Usa password uniche e robuste.
- Abilita 2FA per gli amministratori.
- Fai backup cifrati di
data/e/etc/letsencrypt. - Non usare credenziali OVH condivise.
- Controlla periodicamente log e utenti attivi.
Su host Linux:
chmod 700 data data/secrets
chmod 600 data/db.jsonSe l'app deve scrivere in /etc/apache2, preferisci un utente dedicato e permessi mirati rispetto a esecuzione indiscriminata come root.
Prima di ogni push verifica:
git status --short
git diff --cached --name-onlyNon devono comparire:
- file sotto
data/ - file sotto
generated/ .env*.key*.pem*.p12