Dette er hele produktet på én vert: LMS-et, bakgrunnsarbeidet dens, sanntids- og samredigeringstjenestene, og alle valgfrie tjenester bak en profil. Utformingen er docs/architecture/23-ops.md seksjon 2.
Andre mål: Vercel og Cloudflare Workers kjører kun webnivået. Oppgraderinger er i upgrade.md, og sikkerhetskopier og gjenopprettingsøvelsen i backup-restore.md.
Hva du trenger
- Docker Engine 27 eller nyere med Compose-programtillegget 2.30 eller nyere.
- 4 CPU-kjerner og 8 GB minne for standardstabelen; 8 kjerner og 16 GB med
--profile full(ClamAV alene holder omtrent 1,5 GB signaturer). - Et DNS-navn for webnivået og et andre for ikke-betrodd innhold. De må være ulike verter: SCORM-pakker og opplastet HTML kjører på innholdsopprinnelsen slik at de aldri kan lese LMS-ets informasjonskapsler.
- For en lokal test peker
lvh.meog*.localhosttil 127.0.0.1, som er detdocker/.env.examplebruker. Stabelens egenproxy-tjeneste tjener begge over https med en lokal sertifikatutsteder, så ingenting annet installeres (se «TLS»). - Port 80 og 443 ledige på verten (
QUIRE_PROXY_HTTP_PORTogQUIRE_PROXY_HTTPS_PORTflytter dem).
Første kjøring
QUIRE_APP_ORIGIN=https://learn.example.org \
QUIRE_CONTENT_ORIGIN=https://content.example-content.org \
QUIRE_SETUP_ADMIN_EMAIL=you@example.org \
docker/scripts/init-env.sh
docker compose -f docker/compose.yaml up -d --build
docker compose -f docker/compose.yaml logs initdocker/scripts/init-env.sh skriver docker/.env fra docker/.env.example med alle hemmeligheter generert (databasepassord, signerings- og hovednøklene, innholdsstartnøkkelparet) og revisjonssjekkpunktets signeringsnøkkel i docker/secrets/audit-signing-key.pem, som Compose monterer inn i arbeiderne som en hemmelighet. Den trenger bare sh, awk og openssl, og den nekter å overskrive en eksisterende docker/.env. Kopier begge filer av verten: uten QUIRE_MASTER_KEY kan ikke en gjenopprettet database dekryptere sine lagrede legitimasjoner. For å fylle ut filen for hånd i stedet, cp docker/.env.example docker/.env; filen sier hvordan hver hemmelighet genereres.
Begge opprinnelser må være https: innholdstjenesten nekter ren http i produksjon, og de må ikke dele et registrerbart domene. proxy-tjenesten terminerer TLS for begge (se «TLS»); init-env.sh nekter en http://-opprinnelse.
Stabelen starter i en fast rekkefølge, og hvert steg venter på det før det:
postgresblir sunn. På aller første start setter init-skriptet dens (docker/postgres/init/90-passwords.sh) de fire rollepassordene.migratebruker alle migreringer og starter opp jobbkøen i kontrolldatabasen og i alle dedikerte tenantdatabaser, sjekker at alle er enige, og avslutter deretter (docs/ops/upgrade.md). Migreringer kjøres på hver start og er idempotente, så en oppgradering er et nytt bilde og en omstart.init(apps/web/src/first-run.ts) registrerer applikasjonsdatabasen underQUIRE_DATABASE_IDog, nårQUIRE_SETUP_ADMIN_EMAILer satt, oppretter den første organisasjonen og administratoren dens. Påloggingsadressen og et generert passord skrives ut én gang, idocker compose logs init.web,content,worker,scheduler,collabogcentrifugostarter.proxystarter nårwebogcontenter sunne.
Åpne https://demo. etterfulgt av applikasjonsdomenet ditt (init-loggen skriver ut den eksakte påloggingsadressen), og logg på. På en lokal installasjon, stol på proxyens sertifikatutsteder først (se «TLS»). Bytt det genererte passordet på /account/security.
En prosess startet uten en påkrevd hemmelighet nekter å starte og navngir den manglende innstillingen i loggen sin. Ingenting starter halvkonfigurert.
Tjenester og profiler
| Tjeneste | Profil | Hva den gjør |
|---|---|---|
| postgres | alltid | Databasen (PostgreSQL 18 med pgvector, bygget fra docker/postgres.Dockerfile), med WAL arkivert fra første oppstart |
| migrate, init | alltid | Engangs: migreringer, deretter første kjøring |
| web | alltid | LMS-et, på QUIRE_HTTP_PORT (8080) |
| content | alltid | Opprinnelsen for ikke-betrodd innhold, på QUIRE_CONTENT_PORT (8081) |
| worker | alltid | Bakgrunnsjobber: e-post, rapporter, filbehandling, webhooks |
| scheduler | alltid | Gjentakende jobber: registrerer de 64 kjøretidsplanene og gir dem til arbeideren; én leder om gangen |
| collab | alltid | Samredigeringswebsocket, på QUIRE_COLLAB_HTTP_PORT (1234) |
| centrifugo | alltid | Sanntidsutvifting, på QUIRE_REALTIME_PORT (8000) |
| proxy | alltid | Caddy, TLS-inngangen på port 80 og 443 (se “TLS”) |
| valkey | cache |
Mellomlager og hastighetsgrenser |
| clamav | scan |
Skadeligvareskanning av opplastinger |
| gotenberg | preview |
Office-til-PDF-forhåndsvisninger, vitnemålrendring |
| imgproxy | images |
Skalerte og konverterte bilder |
| transcoder | video |
Arbeiderbildet med en LGPL-kun ffmpeg, for videoversjoner |
| seaweedfs | storage |
S3-kompatibel objektlagring på denne verten |
| otelcol | observability |
En OpenTelemetry-samler |
| mailpit | devmail |
Fanger all utgående e-post, for å prøve ut Quire |
| backup | backup |
Engangsbasesikkerhetskopi; se backup-restore.md |
| backup-scheduler, backup-offsite | backup |
En basesikkerhetskopi hver QUIRE_BACKUP_INTERVAL_HOURS, og krypterte kopier utenfor verten med en ukentlig verifiseringsøvelse |
| h5p | h5p |
H5P LTI 1.3-verktøybildet du leverer i QUIRE_H5P_IMAGE, på QUIRE_H5P_PORT (8090); se “Connecting an H5P provider” |
--profile full starter alle valgfrie tjenester unntatt backup og h5p. Start en med docker compose -f docker/compose.yaml --profile scan up -d. Uten en valgfri tjeneste virker Quire fortsatt og sier hva som mangler: ingen skanner betyr at opplastinger lagres uskannet og administratoren får beskjed; ingen Gotenberg betyr at filer tilbyr nedlasting i stedet for forhåndsvisning; ingen transkoder betyr at video spilles som originalfilen.
Alle tredjepartsbilder og lisensforpliktelsene deres listes i docker/third-party-containers.yaml.
Koble til en H5P-leverandør
Quire bygger ikke inn eller leverer en H5P-kjøretid eller sidevogn (ADR 0019). Hvis du bruker H5P, skaff ditt eget driftede abonnement eller drift din egen selvdrevne H5P-instans separat fra Quire. Registrer den leverandøren som et LTI 1.3 eksternt verktøy og legg innholdet dens til kurs som verktøyaktiviteter. Quire utveksler karakterer og aktivitets-/vurderingsfremdrift gjennom LTI Assignment and Grade Services (AGS). Hvis leverandøren også sender xAPI-erklæringer, konfigurer det separat for Quires xAPI-erklæringslager; AGS-karakter-/fremdriftsutveksling sender ikke xAPI-erklæringer. Moodle-importer rapporterer H5P-aktiviteter som at de trenger en LTI-verktøytilkobling. Leverandøren forblir ansvarlig for sin H5P-kjøretid, redigering, innholdsbank og forsøkshistorikk.
For å kjøre din egen selvdrevne instans på denne verten, sett QUIRE_H5P_IMAGE til bildet dens og start h5p-profilen. Compose publiserer den på QUIRE_H5P_PORT (8090) og beholder dataene dens i h5p-data-volumet; bildet, og forpliktelsene som følger med det, forblir dine.
Innstillinger
Hver prosess leser docker/.env. Malen, docker/.env.example, viser hver innstilling med standarden dens. Gruppene:
Adresser
| Innstilling | Betydning |
|---|---|
QUIRE_APP_ORIGIN |
LMS-ets offentlige adresse, som https://learn.example.com |
QUIRE_CONTENT_ORIGIN |
Innholdsopprinnelsen, en annen vert |
QUIRE_PLATFORM_DOMAINS |
Domener organisasjoner bor under, kommaseparert |
QUIRE_MARKETING_ORIGIN |
Optional. The marketing site, default https://quirelms.com. The only origin the waitlist form (POST /api/waitlist, POST /waitlist) accepts and redirects to. Comma separated; a www. variant is allowed only if listed |
QUIRE_DEPLOY_TARGET |
compose her. Se de andre veiledningene for vercel og cloudflare |
QUIRE_TRUSTED_PROXY_CIDRS |
Proxyer hvis X-Forwarded-For stoles på |
Hemmeligheter
| Innstilling | Betydning |
|---|---|
QUIRE_SECRET_KEY |
Signerer økter og tokens. 64 heksadesimale tegn |
QUIRE_MASTER_KEY |
Pakker inn lagrede legitimasjoner som SSO- og webhook-hemmeligheter. 32 bytes, base64. Webnivået og arbeideren trenger samme verdi. Rotering: key-rotation.md |
QUIRE_MASTER_KEY_VERSION |
Hovednøkkelens versjonsmerkelapp, v1 når usatt. Hev den når du roterer |
QUIRE_MASTER_KEY_RETIRED |
Tidligere hovednøkler fortsatt trengt for å lese det de forseglet, som v1=<base64>. Fjern etter at en rotering fullføres uten noe uløst |
QUIRE_COLLAB_SIGNING_KEY |
Delt av web og collab for å signere redigeringstokens |
QUIRE_BACKUP_SIGNING_KEY |
Signerer kurssikkerhetskopier (valgfri) |
Behold en kopi av QUIRE_MASTER_KEY et annet sted enn denne verten. En database gjenopprettet uten den kan ikke dekryptere legitimasjonen den holder.
Database
| Innstilling | Betydning |
|---|---|
POSTGRES_PASSWORD |
Superbrukeren, brukt av containeren og sikkerhetskopier |
QUIRE_DB_APP_PASSWORD, QUIRE_DB_MIGRATOR_PASSWORD, QUIRE_DB_REPORT_PASSWORD, QUIRE_DB_AUDIT_PASSWORD |
Rollepassord, satt på første start |
DATABASE_URL |
Applikasjonsrollen. Sikkerhet på radnivå gjelder alle spørringer den gjør |
DATABASE_MIGRATOR_URL, QUIRE_MIGRATION_URL |
Migratorrollen, for migrate og init |
QUIRE_SUPERUSER_URL |
Brukes bare av første kjøring |
QUIRE_REPORT_DATABASE_URL |
Den skrivebeskyttede rapportrollen, for rapporter og rapportbyggeren |
QUIRE_AUDIT_DATABASE_URL |
Revisjonsrollen, for revisjonskonsollen og SIEM-eksport |
QUIRE_DATABASE_ID |
En UUID, fast for installasjonens levetid |
Rollepassord brukes bare når databasevolumet først opprettes. For å endre et senere, bruk ALTER ROLE og oppdater deretter den samsvarende URL-en.
QUIRE_REPORT_DATABASE_URL brukes for den fysiske databasen konfigurert av DATABASE_URL. For enhver annen registrert fysisk database, sett dens egen quire_report-tilkoblings-URL i web- og arbeidermiljøene, og legg deretter variabelnavnet i den databasens Rapporteringsmiljøvariabel-felt som env:NAME. Referansen må peke til samme database som app-tilkoblingen dens, ideelt lesereplikaen dens. Alle rapportflater følger tenanten til sin egen databases rapporttilkobling: rapportbyggeren og lagrede rapporter, planlagte leveringer, rapporteksporter, analyse, revisjonsloggen, REST-revisjonsressursene og assistentens revisjonssøk. Ingen av dem låner noen gang en annen databases rapport-URL. Når en database ikke har noen rapporttilkobling, kjører ordinære rapporter på den databasens egen applikasjonstilkobling, mens analyse og alle revisjonslesinger nekter og sier fra, fordi applikasjonsrollen ikke kan lese revisjonssporet.
Drivere
| Innstilling | Denne utgivelsen | Merknader |
|---|---|---|
QUIRE_STORAGE_DRIVER |
local (standard), s3 eller azure |
local beholder filer i files-volumet. s3 dekker AWS S3, R2, GCS-samvirke og andre S3-kompatible lagre, med gjenopptakbare flerdeltsopplastinger |
QUIRE_REALTIME_DRIVER |
inprocess (standard), sse, centrifugo eller durable_objects |
inprocess er riktig for én webcontainer; bruk centrifugo eller sse når det er flere |
QUIRE_CACHE_DRIVER |
memory (standard), postgres eller valkey |
memory er per prosess; bruk valkey eller postgres slik at hastighetsgrenser holder på tvers av containere |
QUIRE_VIDEO_DRIVER |
ffmpeg (standard) eller progressive_mp4 |
Eller en driftet leverandør: Cloudflare Stream, Mux eller Bunny, etter nøklene deres |
QUIRE_IMAGE_DRIVER |
noop (standard), imgproxy eller cloudflare |
noop tjener alle bilder i originalstørrelse. imgproxy trenger images-profilen og innstillingene nedenfor; cloudflare bruker Cloudflare Images |
QUIRE_MEETING_PROVIDER |
bbb, zoom, teams, meet, jitsi eller in_process |
Plattformstandarden for direktesendinger. Usatt sier direktesendinger at de ikke er konfigurert, til en organisasjon kobler til sin egen konto under Integrasjoner, leverandør for direktesendinger. En organisasjons egen konto vinner alltid over denne verdien. Hver leverandørs egne innstillinger (BBB_URL og BBB_SECRET, ZOOM_*-, TEAMS_*-, GOOGLE_MEET_*- og JITSI_*-variablene) leses bare for leverandøren navngitt her |
QUIRE_MEETING_REGIONS |
En kommaliste med eu, uk, us |
Hvor plattformstandardleverandøren behandler møter. Usatt sjekkes den ikke mot en organisasjon festet til en region, som før. En organisasjons egen konto oppgir regionene sine på siden sin |
En driververdi denne utgivelsen ikke inkluderer avvises når webnivået starter, med innstillingen navngitt, i stedet for stilltiende å erstattes av standarden.
Bilder
Sider ber om bilder i fire faste størrelser gjennom /api/files/{id}/image/{size}, som sjekker samme tilgang som filen selv og deretter omdirigerer til bildetjenesten. Hver organisasjon kan be om QUIRE_IMAGE_SPECS_PER_HOUR (standard 2000) nye bilde- og størrelsespar i timen; størrelser allerede produsert den timen teller ikke. Bruk valkey eller postgres for QUIRE_CACHE_DRIVER med mer enn én webcontainer, slik at grensen holder på tvers av dem.
| Innstilling | Driver | Merknader |
|---|---|---|
IMGPROXY_URL |
imgproxy |
Adressen nettlesere når imgproxy på, for eksempel https://images.example.org. images-profilen publiserer den på QUIRE_IMAGES_PORT (8082) |
IMGPROXY_KEY, IMGPROXY_SALT |
imgproxy |
Heksadesimale strenger, samme verdier imgproxy startes med. Generer hver med openssl rand -hex 32. Quire signerer alle bildeadresser med dem, slik at imgproxy rendrer ingenting Quire ikke ba om |
QUIRE_IMAGE_SOURCE_ORIGIN |
imgproxy med lokal lagring |
Hvor imgproxy henter originaler fra. Compose setter http://web:3000. Med s3- eller azure-lagring henter imgproxy fra bøtten og denne brukes ikke |
CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_IMAGES_TOKEN, CLOUDFLARE_IMAGES_ACCOUNT_HASH |
cloudflare |
Et API-token med Images-redigeringstillatelse, og kontohashen fra Images, utviklerressurser. Slå på fleksible varianter for kontoen |
CLOUDFLARE_IMAGES_SIGNING_KEY |
cloudflare |
Valgfri. Når satt er bilder private og alle adresser signeres og utløper. Uten den er bilder offentlige på adresser utledet fra QUIRE_SECRET_KEY som ingen kan gjette |
Cloudflare Images beholder sin egen kopi av hver original den tjener. Når en fil slettes, sletter arbeideren den kopien før originalen.
Kø
Bakgrunnsjobber bruker pg-boss i samme Postgres-database, så det finnes ingen køtjeneste å kjøre og ingenting å konfigurere. Jobber køes i samme transaksjon som endringen som forårsaket dem, slik at en krasj verken kan miste en eller sende en to ganger. QUIRE_QUEUE_DRIVER er pgboss her, standarden dens; vercel og cloudflare flytter bare de lette varslings- og webhook-leveringene til plattformens egen kø, og Vercel- og Cloudflare-veiledningene beskriver dem og hvordan webnivåene deres køer.
E-post
Sett én av:
QUIRE_EMAIL_PROVIDER_CONFIG: et JSON-objekt som navngir en HTTP-leverandør og legitimasjonen dens, som{"provider":"postmark","token":"..."}. Postmark, Amazon SES, Mailgun, SendGrid og Resend støttes.QUIRE_SMTP_URL:smtp://user:password@host:587. Kun dette målet; de tjenerløse målene blokkerer SMTP.
QUIRE_MAIL_FROM er avsenderen. For å prøve ut Quire, start devmail-profilen, sett QUIRE_SMTP_URL=smtp://mailpit:1025, og les e-post på http://localhost:8025.
Valgfrie tjenester
| Innstilling | Med profil |
|---|---|
CLAMAV_URL=tcp://clamav:3310 |
scan |
GOTENBERG_URL=http://gotenberg:3000 |
preview |
IMGPROXY_KEY, IMGPROXY_SALT |
images |
VALKEY_URL=redis://valkey:6379 |
cache |
QUIRE_OPENSEARCH_URL eller QUIRE_MEILISEARCH_URL |
Eksternt søk; Postgres fulltekst ellers |
QUIRE_BREACH_CHECK_PROVIDER=off, QUIRE_BREACH_CHECK_URL |
Sjekk av passordlekkasje. På som standard mot api.pwnedpasswords.com (bare et femtegns hashprefiks sendes); off slår den av, og URL-en peker på et område-API du drifter |
Observerbarhet
OTEL_EXPORTER_OTLP_ENDPOINT navngir samleren alle prosesser sender spor og metrikker til; med observability-profilen er den http://otelcol:4318, og docker/otel-collector.yaml er der du legger til eksportøren for backend-en din. Webnivå-, arbeider-, planlegger-, innholds- og samredigeringsprosessene eksporterer spann over OTLP/HTTP (webforespørsler, tenantdatabasetransaksjoner, arbeiderjobber og utgående kall) når den er satt, og metrikker til samme endepunkt hvert minutt (OTEL_METRICS_EXPORTER=none slår dem av). OTEL_TRACES_SAMPLER_ARG setter andelen spor som beholdes. Logger går til standardutdata på LOG_LEVEL, og Compose roterer dem. Spor bærer aldri personopplysninger.
Regional utgående trafikk (EUs databosted)
QUIRE_REGION=eu sier at stabelen betjener EU-organisasjoner. Arbeideren holder da alle utgående forespørsler gjort for en organisasjon festet til EU til en tillatelsesliste (21-compliance.md seksjon 8.1). Tillatelseslisten er vertene de konfigurerte tjenestene erklærer for regionen (lagringsendepunktet, e-postleverandøren, en driftet videoleverandør, organisasjonens egne lagringsmål, AI-leverandører og e-postkonto), vertene til enhver tjeneste under et aktivt unntak, og vertene du viser i QUIRE_EGRESS_ALLOW_HOSTS. En forespørsel til enhver annen offentlig vert nektes før den sendes, nektelsen skrives til organisasjonens revisjonsspor som privacy/egress_refused, og den listes under Samsvar, databosted.
| Innstilling | Verdier | Effekt |
|---|---|---|
QUIRE_EGRESS_ALLOW_HOSTS |
En kommaliste med vertsnavn, eller *.example.org for alle subdomener |
Ekstra verter en EU-organisasjon kan nå. Webhook-, xAPI- og SIEM-endepunkter, bloggfeeder og Amazon SES-verter hører hjemme her, fordi de er en organisasjons eget valg og ingen tjeneste erklærer dem. Tilbakekobling, private adresser og enkeltmerkelappnavn som web eller clamav er ditt eget nettverk og sjekkes aldri |
Storbritannia- og USA-organisasjoner holdes ikke til en vertsliste; de beholder tjenesteregionsjekkene. Sett listen på arbeideren; adminsiden leser den på webnivået for å vise tillatelseslisten, så legg den i docker/.env, som alle tjenester leser.
Applikasjonssjekken gir en tydelig feil og en revisjonsoppføring, og den er ikke garantien: kode kan ta feil. Garantien er nettverket. Compose håndhever det ikke for deg. For en regional stabel, legg worker- og web-tjenestene på et internal: true-nettverk hvis eneste rute ut er en utgående proxy (for eksempel en Squid- eller tinyproxy-container) som tillater de samme vertene som QUIRE_EGRESS_ALLOW_HOSTS pluss vertene til dine konfigurerte tjenester, og sett HTTPS_PROXY for disse tjenestene. Bostedssiden viser de eksakte vertene applikasjonen tillater, slik at de to listene kan sammenlignes.
Helse
| Endepunkt | Betydning |
|---|---|
/healthz |
Livlighet: prosessen svarer. Compose-helsesjekker bruker dette |
/readyz |
Beredskap: avhengigheter nåbare, og hver valgfri tjeneste rapportert som konfigurert eller ikke. Pek lastbalansereren din hit |
docker compose -f docker/compose.yaml ps viser hver tjenestes helse.
TLS
proxy-tjenesten (Caddy, Apache-2.0, docker/caddy/Caddyfile) er en del av standardstabelen. Den svarer på port 80 og 443 og ruter:
| Vert eller sti | Går til |
|---|---|
QUIRE_PROXY_CONTENT_HOST |
content |
QUIRE_PROXY_APP_HOST, alle tenant-subdomener og egne domener |
web |
/_collab/ på disse vertene |
collab (websocket, QUIRE_COLLAB_URL) |
/_realtime/connection/ på disse vertene |
centrifugos klientwebsocket; tjener-API-et dens eksponeres aldri |
/_images/ på disse vertene |
imgproxy, med images-profilen (IMGPROXY_URL) |
init-env.sh utleder QUIRE_PROXY_APP_HOST, QUIRE_PROXY_CONTENT_HOST, QUIRE_PROXY_HTTPS_PORT, QUIRE_COLLAB_URL og IMGPROXY_URL fra de to opprinnelsene, slik at de ikke kan drive fra hverandre. Rediger dem sammen hvis du endrer en opprinnelse for hånd.
Sertifikater følger QUIRE_PROXY_TLS:
-
internal(standarden): Caddys egen sertifikatutsteder, forlocalhost,*.localhostoglvh.me. Stol på roten dens én gang, og bla deretter:docker compose -f docker/compose.yaml cp \ proxy:/data/caddy/pki/authorities/local/root.crt ./quire-local-ca.crtLegg
quire-local-ca.crttil systemets eller nettleserens tillitslager.curltar den med--cacert. -
En e-postadresse: automatiske ACME-sertifikater (Let’s Encrypt, deretter ZeroSSL) for virkelige vertsnavn. DNS for begge opprinnelser og alle tenantverter må peke hit, og port 80 og 443 må være nåbare fra internett.
Tenantverter utstedes ved behov, ved første besøk, og bare når web bekrefter at navnet tilhører denne installasjonen (/tls-allowed, spurt på Compose-nettverket). Intet jokertegnsertifikat eller DNS-leverandørprogramtillegg trengs, og en fremmed som peker et navn mot verten kan ikke få den til å be om sertifikater. Sertifikater og den lokale utstederen ligger i caddy-data-volumet; sikkerhetskopier det med resten hvis du bruker internal.
Web stoler på X-Forwarded-For kun fra proxyen: proxyen har en fast adresse (QUIRE_PROXY_ADDRESS, standard 172.29.64.10) på et fast subnett (QUIRE_COMPOSE_SUBNET), og QUIRE_TRUSTED_PROXY_CIDRS navngir den adressen. Hvis subnettet kolliderer med et nettverk på verten, endre begge og kjør docker compose down før up.
Bak din egen omvendte proxy
For å bruke en lastbalanserer eller proxy du allerede drifter i stedet, utelat proxy (docker compose up -d --scale proxy=0) og terminer TLS foran web (8080), content (8081), collab (1234, websocket) og centrifugo (8000, websocket). Sett de offentlige adressene i QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN og QUIRE_COLLAB_URL (wss://), og proxyens adresserekke i QUIRE_TRUSTED_PROXY_CIDRS.
Feilsøking
initavslutter med «QUIRE_DATABASE_ID is not a UUID»: sett den meduuidgen.webstarter på nytt med «did not start on compose»: loggen viser hver innstilling den ikke kan innfri og hva den skal bruke i stedet.- Endring av et rollepassord i
.envetter første start gjør ingenting: init-skriptet kjører én gang. BrukALTER ROLE. - Opplastinger feiler med en skannefeil mens
CLAMAV_URLer satt: ClamAV laster ned signaturene sine på første start, noe som tar noen minutter.