Inloggegevens & Rotatie
De installer genereert elk geheim dat je installatie nodig heeft, zodat er niets met een standaardwachtwoord wordt verzonden. Deze pagina geeft aan wat er is gegenereerd, waar elke waarde zich bevindt en hoe je deze kunt wijzigen zonder de installatie te breken.
Wat de installer heeft gegenereerd
| Geheim | Gegenereerd als | Opgeslagen in | Beschermt |
|---|---|---|---|
| Admin wachtwoord | 16-teken willekeurige string | .conzent-credentials (modus 600) en bcrypt-gehasht in de database | Dashboard inloggen |
DB_PASSWORD | 24-teken willekeurige string | .env, twee keer: DB_PASSWORD= en binnen DATABASE_URL= | MariaDB toegang |
SCANNER_API_KEY | 32-teken willekeurige string | .env | App-naar-scanner authenticatie |
APP_SECRET | 64-teken hex string | .env | Gereseveerd — geen codepad leest het vandaag |
Bekijk de opgeslagen admin-inloggegevens op elk moment met bash scripts/install.sh --config.
Eerste stap: .conzent-credentials bevat je admin-wachtwoord in platte tekst. Het bestaat zodat de installer het je opnieuw kan tonen als je het gemist hebt. Zodra het wachtwoord in een wachtwoordmanager staat, verwijder je het bestand met rm .conzent-credentials. Niets is afhankelijk van dit bestand.
Het admin-wachtwoord roteren
Als je kunt inloggen, wijzig het in het dashboard onder Account → Profiel.
Als je niet kunt inloggen, reset het vanaf de host. Dit was vroeger een doodlopende weg: bin/oci setup weigert te draaien zodra er een account bestaat, en de "wachtwoord vergeten" e-mail heeft een werkende SMTP-server nodig, die zelf-gehoste installaties vaak niet hebben.
# Genereer een nieuw wachtwoord en print het
docker compose exec app php bin/oci user:password --email=you@example.com
# Of stel een specifiek wachtwoord in
docker compose exec app php bin/oci user:password --email=you@example.com --password='your-new-password'
De opdracht bcrypt-hasht en slaat het nieuwe wachtwoord op, logt elke bestaande sessie uit voor die gebruiker, en wist elke blokkade van mislukte inlogpogingen. Het werkt voor elke gebruiker, niet alleen voor admins — handig wanneer een klant het zijn vergeten is en je geen mailserver hebt.
Om de e-mailstroom in plaats daarvan te laten werken, configureer SMTP in .env (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_ADDRESS), herstart en test met docker compose exec app php bin/oci test:email --to=you@example.com. Met MAIL_HOST leeg, logt Conzent "E-mail niet verzonden: geen SMTP-server geconfigureerd" en gaat verder — resetlinks worden nooit afgeleverd.
Het database-wachtwoord roteren
Vier plaatsen moeten overeenkomen: MariaDB zelf, DB_PASSWORD, DATABASE_URL, en de draaiende containers.
# 1. Kies een nieuw wachtwoord
NEW_PASS=$(openssl rand -hex 16)
# 2. Wijzig het binnen MariaDB
docker compose exec -T mariadb mariadb -uroot -p"$DB_ROOT_PASSWORD" \
-e "ALTER USER 'oci'@'%' IDENTIFIED BY '$NEW_PASS'; FLUSH PRIVILEGES;"
# 3. Werk BEIDE plaatsen in .env bij
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. Herstart de services die verbindingen vasthouden
docker compose up -d --force-recreate app worker scheduler beacon-worker
# 5. Bevestig
docker compose exec app php bin/oci health
Als health een databasefout meldt, zijn de twee .env waarden niet gelijk. DATABASE_URL is wat de applicatie daadwerkelijk gebruikt; DB_PASSWORD is wat MariaDB is geïnitieerd met. Beide moeten de nieuwe waarde bevatten.
DB_ROOT_PASSWORD is standaard ingesteld op root. De MariaDB-container publiceert geen hostpoort in de zelf-gehoste stack, dus deze is alleen bereikbaar vanuit het Compose-netwerk — maar stel een echte waarde in voordat je een eigen hostpoortmapping toevoegt.
Het scanner API-sleutel roteren
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
Registratie is gekoppeld aan URL en idempotent, dus opnieuw uitvoeren werkt de bestaande record bij in plaats van een duplicaat toe te voegen. Als je extra scanners uitvoert, roteer de sleutel op elke en registreer elke URL opnieuw.
API-sleutels en site-sleutels
Twee inloggegevens die de installer niet genereert:
- API-sleutels — aangemaakt per gebruiker voor programmatic toegang. Intrekken en opnieuw uitgeven vanuit het dashboard.
- Site-sleutels — de
data-keywaarde in elke embed-snippet. Dit is een openbare identificatie, geen geheim: het verschijnt in de pagina-bron van elke site die de banner gebruikt. Het kan niet worden geroteerd zonder die site's embed bij te werken.
Omgaan met .env
.env is het meest gevoelige bestand in de installatie. Het is gitignored en aangemaakt met modus 600 — als je het hebt gekopieerd, herstel dat dan met chmod 600 .env. Het is opgenomen in back-uparchieven, wat de reden is dat deze ook zijn geschreven met modus 600 en ergens privé moeten worden bewaard.
De volledige referentie bevindt zich bij de code: docs/credentials.md op GitHub.