Inloggegevens & Rotatie

Elk geheim dat een zelf-gehoste Conzent OCI-installatie genereert, waar het is opgeslagen en hoe het te roteren — inclusief het herstellen van een verloren admin-wachtwoord zonder e-mail.

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-key waarde 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.

Terug naar Documentatie