Egendefinert domene & HTTPS
En fersk installasjon svarer på http://localhost. Denne guiden flytter den til ditt eget domene over HTTPS — for eksempel https://consent.example.com.
Gjør dette før du legger til nettsteder. Hvert samtykkeskript Conzent genererer har ditt domene innebygd. Å endre domenet senere fungerer, men du må regenerere skriptene (trinn 5) og oppdatere innebyggingssnutten på hver nettside som allerede bruker dem (trinn 6).
1. Pek DNS til serveren din
Opprett en A-post for vertsnavnet du ønsker, som peker til serverens offentlige IP:
consent.example.com. A 203.0.113.10
Bekreft at det løser seg med dig +short consent.example.com før du fortsetter. En underdomene av et domene du allerede eier — consent., cmp., privacy. — er det vanlige valget.
2. Sett APP_URL
APP_URL er den eneste sannhetskilden for hver absolutt URL Conzent produserer: samtykkeskript-endepunkter, innebyggingssnutten vist i dashbordet, lenker for tilbakestilling av passord og OAuth-tilbakekall.
Rediger .env i installasjonskatalogen din:
APP_URL=https://consent.example.com
Bruk den nøyaktige offentlige URL-en, med skjemaet og uten skråstrek på slutten. Hvis du terminerer TLS — og det bør du — betyr det https://, selv om containeren selv fortsatt snakker vanlig HTTP internt. Å sette https:// bytter også "huske meg"-informasjonskapselen til Secure, slik at den aldri sendes over vanlig HTTP.
Nyinstallasjoner kan gjøre trinn 1 og 2 i ett skudd:
curl -sSL https://getconzent.com/install | sh -s -- --domain consent.example.com
3. Terminer TLS
Den innebygde nginx-containeren serverer vanlig HTTP på ${APP_PORT:-80}. Den skaffer eller serverer ikke sertifikater.
Alternativ A — Caddy foran. Caddy henter og fornyer Let's Encrypt-sertifikater automatisk. Frigjør port 80 ved å sette APP_PORT=8080 i .env, og opprett deretter docker-compose.override.yml:
services:
caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./docker/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
depends_on:
- nginx
restart: unless-stopped
volumes:
caddy-data:
caddy-config:
Med docker/caddy/Caddyfile:
consent.example.com {
reverse_proxy nginx:80
}
Kjør docker compose up -d. Caddy utsteder sertifikatet ved første forespørsel.
Alternativ B — en eksisterende nginx eller Apache. Sett APP_PORT=8080 i .env, og proxy til det:
server {
listen 443 ssl http2;
server_name consent.example.com;
ssl_certificate /etc/letsencrypt/live/consent.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/consent.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
X-Forwarded-For er viktig utover ryddighet: Conzent registrerer besøkende IP på hver samtykkelogginngang og bruker den til geo-targeting. Uten headeren blir hvert samtykke tilskrevet din proxy.
Alternativ C — Cloudflare. Proxy posten og sett SSL/TLS-modus til Full. Hold opprinnelig TLS aktiv; "Fleksibel" lar hoppet mellom Cloudflare og serveren din være ukryptert. Sett CLOUDFLARE_ZONE_ID og CLOUDFLARE_API_TOKEN i .env for å få Conzent til å tømme kantcache automatisk når skriptene endres.
Legg endringer i stakken i docker-compose.override.yml, aldri i docker-compose.yml — oppdateringer tilbakestiller sporede filer, og overstyringsfilen forblir urørt.
4. Start på nytt og bekreft
docker compose up -d
docker compose exec app php bin/oci health
Last inn https://consent.example.com. Du bør få innloggingssiden over et gyldig sertifikat.
5. Regenerer samtykkeskriptene
Dette er trinnet som er lett å gå glipp av og gir de merkeligste symptomene hvis du gjør det.
Hvert nettsideskript ligger på public/sites_data/{site_key}/script.js og inneholder absolutte URL-er bygget fra APP_URL ved genereringstidspunktet — API-endepunktet det sender samtykke til, CSS-en det henter, logo-stiene. Å endre APP_URL skriver ikke om skriptene som allerede eksisterer. Inntil du regenererer, fortsetter bannere på kundenes nettsteder å kalle den gamle verten: samtykke registreres mot feil opprinnelse, eller mislykkes helt når den gamle adressen slutter å svare.
docker compose exec app php bin/oci scripts:regenerate
6. Oppdater innebyggingssnutten på nettstedene dine
Snutten vist i dashbordet peker nå til det nye domenet:
<script async src="https://consent.example.com/c/consent.js" data-key="YOUR_SITE_KEY"></script>
Hvis du flytter en live installasjon, hold det gamle vertsnavnet oppløst og proxy til det nye inntil du har byttet hver innebygging. Lasteren er inngangspunktet for hele banneret — en ødelagt src betyr ingen samtykkebanner i det hele tatt.
7. Bekreft ende til ende
curl -sSI https://consent.example.com/c/consent.js | head -1
curl -s https://consent.example.com/sites_data/YOUR_SITE_KEY/version.json
Last deretter inn en side som innebygger banneret, aksepter samtykke, og bekreft at oppføringen vises under Samtykkelogg. Den enkle rundreisen tester DNS, TLS, lasteren, det genererte skriptet, og API-stien sammen.
Feilsøking
| Symptom | Årsak |
|---|---|
| Banneren vises ikke | Innebyggingen peker fortsatt til det gamle domenet, eller skriptene ble aldri regenerert |
| Samtykkelogger stoppet etter flyttingen | Det genererte skriptet sender til den gamle API-stien — kjør scripts:regenerate |
| Hver samtykkelog vises med samme IP | Proxyen videresender ikke X-Forwarded-For |
Tilbakestillings-e-poster lenker til localhost | APP_URL ikke oppdatert, eller containere ikke startet på nytt etter redigering av .env |
| Blandede innholdsvarsler | APP_URL er http:// mens nettstedet serveres over HTTPS |
| Sertifikat utstedes aldri | Port 80 holdes fortsatt av en annen tjeneste |
| Compose-redigeringer forsvant | En oppdatering tilbakestilte sporede filer — flytt dem til docker-compose.override.yml |
Den fullstendige referansen finnes med koden: docs/custom-domain.md på GitHub.