Legitimationsoplysninger og rotation
Installationsprogrammet genererer enhver hemmelighed, din installation har brug for, så intet leveres med en standardadgangskode. Denne side viser, hvad det genererede, hvor hver værdi er gemt, og hvordan du ændrer den uden at ødelægge installationen.
Hvad installationsprogrammet genererede
| Hemmelighed | Genereret som | Gemt i | Beskytter |
|---|---|---|---|
| Adminadgangskode | 16-tegns tilfældig streng | .conzent-credentials (mode 600) og bcrypt-hashet i databasen | Dashboard-login |
DB_PASSWORD | 24-tegns tilfældig streng | .env, to steder: DB_PASSWORD= og inde i DATABASE_URL= | MariaDB-adgang |
SCANNER_API_KEY | 32-tegns tilfældig streng | .env | App-til-scanner-godkendelse |
APP_SECRET | 64-tegns hex-streng | .env | Reserveret – ingen kodesti læser den i dag |
Se de gemte adminoplysninger til enhver tid med bash scripts/install.sh --config.
Det første du skal gøre: .conzent-credentials indeholder din adminadgangskode i klartekst. Den findes, så installationsprogrammet kan vise den igen, hvis du gik glip af den. Når adgangskoden er i en adgangskodeadministrator, skal du slette filen med rm .conzent-credentials. Intet afhænger af den.
Rotation af adminadgangskoden
Hvis du kan logge ind, skal du ændre den i dashboardet under Konto → Profil.
Hvis du ikke kan logge ind, skal du nulstille den fra værten. Dette plejede at være en blindgyde: bin/oci setup nægter at køre, når en konto allerede eksisterer, og e-mailen om "glemt adgangskode" kræver en fungerende SMTP-server, som selvhostede installationer ofte ikke har.
# Generate a new password and print it
docker compose exec app php bin/oci user:password --email=you@example.com
# Or set a specific one
docker compose exec app php bin/oci user:password --email=you@example.com --password='your-new-password'
Kommandoen bcrypt-hasher og gemmer den nye adgangskode, logger alle eksisterende sessioner ud for den pågældende bruger og fjerner enhver låsning fra mislykkede loginforsøg. Den fungerer for enhver bruger, ikke kun administratorer – nyttig når en klient glemmer sin adgangskode, og du ikke har en mailserver.
For at få e-mail-flowet til at fungere i stedet skal du konfigurere SMTP i .env (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_ADDRESS), genstarte og teste med docker compose exec app php bin/oci test:email --to=you@example.com. Med MAIL_HOST tom logger Conzent "Email not sent: no SMTP server configured" og fortsætter – nulstillingslinks leveres aldrig.
Rotation af databaseadgangskoden
Fire steder skal være enige: MariaDB selv, DB_PASSWORD, DATABASE_URL og de kørende containere.
# 1. Pick a new password
NEW_PASS=$(openssl rand -hex 16)
# 2. Change it inside MariaDB
docker compose exec -T mariadb mariadb -uroot -p"$DB_ROOT_PASSWORD" \
-e "ALTER USER 'oci'@'%' IDENTIFIED BY '$NEW_PASS'; FLUSH PRIVILEGES;"
# 3. Update BOTH places 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. Restart the services holding connections
docker compose up -d --force-recreate app worker scheduler beacon-worker
# 5. Confirm
docker compose exec app php bin/oci health
Hvis health rapporterer en databasefejl, er de to .env-værdier ikke enige. DATABASE_URL er det, applikationen faktisk bruger; DB_PASSWORD er det, MariaDB initialiseres med. Begge skal indeholde den nye værdi.
DB_ROOT_PASSWORD er som standard root. MariaDB-containeren publicerer ingen værtport i den selvhostede stak, så den er kun tilgængelig fra Compose-netværket – men angiv en reel værdi, før du tilføjer en egen værtportmapping.
Rotation af scanner-API-nøglen
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 baseret på URL og er idempotent, så gentagen kørsel opdaterer den eksisterende post i stedet for at tilføje en dublet. Hvis du kører yderligere scannere, skal du rotere nøglen på hver og genregistrere hver URL.
API-nøgler og webstedsnøgler
To legitimationsoplysninger, som installationsprogrammet ikke genererer:
- API-nøgler – oprettes pr. bruger til programmatisk adgang. Tilbagekald og genudsted fra dashboardet.
- Webstedsnøgler –
data-key-værdien i hvert indlejringsudsnit. Dette er en offentlig identifikator, ikke en hemmelighed: den vises i sidekildekoden for hvert websted, der bruger banneret. Den kan ikke roteres uden at opdatere det pågældende websteds indlejring.
Håndtering af .env
.env er den mest følsomme fil i installationen. Den er gitignoreret og oprettet med mode 600 – hvis du har kopieret den rundt, skal du gendanne det med chmod 600 .env. Den er inkluderet i sikkerhedskopieringsarkiver, og det er derfor, disse også skrives med mode 600 og hører hjemme et privat sted.
Den fulde reference findes med koden: docs/credentials.md på GitHub.