Credenziali & Rotazione
L'installer genera ogni segreto di cui la tua installazione ha bisogno, quindi nulla viene fornito con una password predefinita. Questa pagina elenca ciò che è stato generato, dove si trova ciascun valore e come cambiarlo senza compromettere l'installazione.
Cosa ha generato l'installer
| Segreto | Generato come | Memorizzato in | Protegge |
|---|---|---|---|
| Password admin | Stringa casuale di 16 caratteri | .conzent-credentials (modalità 600) e hash bcrypt nel database | Accesso al dashboard |
DB_PASSWORD | Stringa casuale di 24 caratteri | .env, due volte: DB_PASSWORD= e all'interno di DATABASE_URL= | Accesso a MariaDB |
SCANNER_API_KEY | Stringa casuale di 32 caratteri | .env | Autenticazione app-scanner |
APP_SECRET | Stringa esadecimale di 64 caratteri | .env | Riservato — nessun percorso di codice lo legge oggi |
Visualizza le credenziali admin salvate in qualsiasi momento con bash scripts/install.sh --config.
Prima cosa da fare: .conzent-credentials contiene la tua password admin in chiaro. Esiste affinché l'installer possa mostrartela di nuovo se te la sei persa. Una volta che la password è in un gestore di password, elimina il file con rm .conzent-credentials. Nulla dipende da esso.
Rotazione della password admin
Se puoi accedere, cambiala nel dashboard sotto Account → Profilo.
Se non puoi accedere, reimpostala dal host. Questo era un vicolo cieco: bin/oci setup rifiuta di essere eseguito una volta che esiste un account, e l'email "password dimenticata" ha bisogno di un server SMTP funzionante, che le installazioni auto-ospitate spesso non hanno.
# Genera una nuova password e stampala
docker compose exec app php bin/oci user:password --email=you@example.com
# Oppure impostane una specifica
docker compose exec app php bin/oci user:password --email=you@example.com --password='your-new-password'
Il comando esegue l'hashing bcrypt e memorizza la nuova password, disconnette ogni sessione esistente per quell'utente e cancella qualsiasi blocco da tentativi di accesso falliti. Funziona per qualsiasi utente, non solo per gli admin — utile quando un cliente dimentica la propria e non hai un server di posta.
Per far funzionare invece il flusso email, configura SMTP in .env (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_ADDRESS), riavvia e testa con docker compose exec app php bin/oci test:email --to=you@example.com. Con MAIL_HOST vuoto, Conzent registra "Email non inviata: nessun server SMTP configurato" e prosegue — i link di reimpostazione non vengono mai consegnati.
Rotazione della password del database
Quattro luoghi devono concordare: MariaDB stesso, DB_PASSWORD, DATABASE_URL e i container in esecuzione.
# 1. Scegli una nuova password
NEW_PASS=$(openssl rand -hex 16)
# 2. Cambiala all'interno di MariaDB
docker compose exec -T mariadb mariadb -uroot -p"$DB_ROOT_PASSWORD" \
-e "ALTER USER 'oci'@'%' IDENTIFIED BY '$NEW_PASS'; FLUSH PRIVILEGES;"
# 3. Aggiorna ENTRAMBI i luoghi in .env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$NEW_PASS|" .env
sed -i "s|^DATABASE_URL=.*|DATABASE_URL=mysql://oci:$NEW_PASS@mariadb:3306/oci?charset=utf8mb4|" .env
# 4. Riavvia i servizi che mantengono le connessioni
docker compose up -d --force-recreate app worker scheduler beacon-worker
# 5. Conferma
docker compose exec app php bin/oci health
Se health riporta un errore del database, i due valori .env non concordano. DATABASE_URL è ciò che l'applicazione utilizza effettivamente; DB_PASSWORD è ciò con cui MariaDB è inizializzato. Entrambi devono contenere il nuovo valore.
DB_ROOT_PASSWORD è impostato su root per impostazione predefinita. Il container di MariaDB non pubblica alcuna porta host nello stack auto-ospitato, quindi è raggiungibile solo dall'interno della rete Compose — ma imposta un valore reale prima di aggiungere qualsiasi mappatura di porta host di tua scelta.
Rotazione della chiave API dello scanner
sed -i "s|^SCANNER_API_KEY=.*|SCANNER_API_KEY=$(openssl rand -hex 16)|" .env
docker compose up -d --force-recreate scanner app worker scheduler
docker compose exec app php bin/oci scanner:register
docker compose exec app php bin/oci scanner:health
La registrazione è chiave per URL e idempotente, quindi rieseguire aggiorna il record esistente piuttosto che aggiungere un duplicato. Se esegui scanner aggiuntivi, ruota la chiave su ciascuno e ri-registrati per ciascun URL.
Chiavi API e chiavi del sito
Due credenziali che l'installer non genera:
- Chiavi API — create per utente per accesso programmatico. Revoca e riemetti dal dashboard.
- Chiavi del sito — il valore
data-keyin ciascun frammento di incorporamento. Questo è un identificatore pubblico, non un segreto: appare nel codice sorgente di ogni sito che utilizza il banner. Non può essere ruotato senza aggiornare l'incorporamento di quel sito.
Gestione di .env
.env è il file più sensibile nell'installazione. È gitignored e creato in modalità 600 — se lo hai copiato in giro, ripristinalo con chmod 600 .env. È incluso negli archivi di backup, motivo per cui anche questi sono scritti in modalità 600 e appartengono a un luogo privato.
Il riferimento completo vive con il codice: docs/credentials.md su GitHub.