Legitimasjon & Rotasjon
Installasjonsprogrammet genererer hver hemmelighet installasjonen din trenger, så ingenting leveres med et standardpassord. Denne siden lister opp hva som ble generert, hvor hver verdi er lagret, og hvordan man endrer den uten å bryte installasjonen.
Hva installasjonsprogrammet genererte
| Hemmelighet | Generert som | Lagring | Beskyttelse |
|---|---|---|---|
| Admin-passord | 16-tegn tilfeldig streng | .conzent-credentials (modus 600) og bcrypt-hashet i databasen | Dashboard-pålogging |
DB_PASSWORD | 24-tegn tilfeldig streng | .env, to ganger: DB_PASSWORD= og inne DATABASE_URL= | MariaDB-tilgang |
SCANNER_API_KEY | 32-tegn tilfeldig streng | .env | App-til-scanner autentisering |
APP_SECRET | 64-tegn hex streng | .env | Reservert — ingen kodebane leser den i dag |
Se de lagrede admin-legitimasjonene når som helst med bash scripts/install.sh --config.
Første ting å gjøre: .conzent-credentials holder admin-passordet ditt i klartekst. Det eksisterer slik at installasjonsprogrammet kan vise det til deg igjen hvis du gikk glipp av det. Når passordet er i en passordbehandler, slett filen med rm .conzent-credentials. Ingenting avhenger av det.
Rotere admin-passordet
Hvis du kan logge inn, endre det i dashbordet under Konto → Profil.
Hvis du ikke kan logge inn, tilbakestill det fra verten. Dette pleide å være en blindvei: bin/oci setup nekter å kjøre når en konto eksisterer, og e-posten for "glemt passord" trenger en fungerende SMTP-server, som selvhostede installasjoner ofte ikke har.
# Generer et nytt passord og skriv det ut
docker compose exec app php bin/oci user:password --email=you@example.com
# Eller sett et spesifikt
docker compose exec app php bin/oci user:password --email=you@example.com --password='your-new-password'
Kommandolinjen bcrypt-hasher og lagrer det nye passordet, logger ut hver eksisterende økt for den brukeren, og fjerner eventuelle låsinger fra mislykkede påloggingsforsøk. Det fungerer for enhver bruker, ikke bare administratorer — nyttig når en klient glemmer sitt og du ikke har noen e-postserver.
For å få e-postflyten til å fungere i stedet, konfigurer SMTP i .env (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_ADDRESS), start på nytt, og test med docker compose exec app php bin/oci test:email --to=you@example.com. Med MAIL_HOST tomt, logger Conzent "E-post ikke sendt: ingen SMTP-server konfigurert" og går videre — tilbakestillingslenker blir aldri levert.
Rotere databasepassordet
Fire steder må være enige: MariaDB selv, DB_PASSWORD, DATABASE_URL, og de kjørende containerne.
# 1. Velg et nytt passord
NEW_PASS=$(openssl rand -hex 16)
# 2. Endre det inne i MariaDB
docker compose exec -T mariadb mariadb -uroot -p"$DB_ROOT_PASSWORD" \
-e "ALTER USER 'oci'@'%' IDENTIFIED BY '$NEW_PASS'; FLUSH PRIVILEGES;"
# 3. Oppdater BEGGE steder i .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. Start tjenestene som holder forbindelser
docker compose up -d --force-recreate app worker scheduler beacon-worker
# 5. Bekreft
docker compose exec app php bin/oci health
Hvis health rapporterer en databasefeil, er de to .env-verdiene uenige. DATABASE_URL er hva applikasjonen faktisk bruker; DB_PASSWORD er hva MariaDB er initialisert med. Begge må ha den nye verdien.
DB_ROOT_PASSWORD har standardverdi root. MariaDB-containeren publiserer ingen vertsport i den selvhostede stakken, så den er kun tilgjengelig fra innsiden av Compose-nettverket — men sett en reell verdi før du legger til noen vertsportmapping av din egen.
Rotere scanner API-nøkkelen
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
Registreringen er nøkkelt til URL og idempotent, så å kjøre den på nytt oppdaterer den eksisterende posten i stedet for å legge til en duplikat. Hvis du kjører flere scannere, roter nøkkelen på hver og registrer hver URL på nytt.
API-nøkler og nettstednøkler
To legitimasjoner som installasjonsprogrammet ikke genererer:
- API-nøkler — opprettet per bruker for programmatisk tilgang. Tilbakestill og utsted på nytt fra dashbordet.
- Nettstednøkler — verdien av
data-keyi hver innebygd snutt. Dette er en offentlig identifikator, ikke en hemmelighet: den vises i kildekoden til hver side som bruker banneret. Den kan ikke roteres uten å oppdatere den sidens innebygging.
Håndtering av .env
.env er den mest sensitive filen i installasjonen. Den er gitignored og opprettet med modus 600 — hvis du har kopiert den rundt, gjenopprett det med chmod 600 .env. Den er inkludert i sikkerhetskopier, som er grunnen til at de også er skrevet med modus 600 og tilhører et privat sted.
Den fullstendige referansen finnes med koden: docs/credentials.md på GitHub.