Sa a se pwodwi konplè a sou yon sèl host: LMS la, travay an aryè-plan li yo, sèvis reyalite-a-kounye a ak koreksyon an kolaborasyon, ansanm ak tout sèvis opsyonèl ki dèyè yon pwofil. Konsepsyon an nan docs/architecture/23-ops.md, seksyon 2.
Lòt sib: Vercel ak Cloudflare Workers kouri web tier la sèlman. Enfòmasyon sou mizajou nan upgrade.md, epi sou backup ak egzèsis restorasyon nan backup-restore.md.
Sa ou bezwen
- Docker Engine 27 oswa pi resan, avèk Compose plugin 2.30 oswa pi resan.
- 4 nwayo CPU ak 8 GB memwa pou stack default la; 8 nwayo ak 16 GB avèk
--profile full(ClamAV poukont li kenbe apeprè 1.5 GB siyati). - Yon non DNS pou web tier la ak yon lòt pou kontni ki pa fyab. Yo dwe sou host diferan: pakè SCORM ak HTML telechaje yo kouri nan content origin lan, konsa yo pa kapab li cookies LMS la.
- Pou yon tès lokal,
lvh.meak*.localhostmennen nan 127.0.0.1, menm jandocker/.env.examplekonfigire l. Sèvisproxystack la sèvi toude sou https ak pwòp otorite sètifika lokal li; konsa, pa bezwen enstale lòt bagay (gade “TLS”). - Pò 80 ak 443 yo dwe lib sou host la (
QUIRE_PROXY_HTTP_PORTakQUIRE_PROXY_HTTPS_PORTkapab deplase yo).
Premye demaraj
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 ekri docker/.env apati docker/.env.example; li jenere tout sekrè yo (modpas bazdone, kle siyati ak kle prensipal, pè kle lansman kontni) ansanm ak kle siyati pwen verifikasyon odit la nan docker/secrets/audit-signing-key.pem. Compose monte dènye a nan worker yo kòm sekrè. Script la bezwen sèlman sh, awk ak openssl; li refize ranplase yon docker/.env ki deja egziste. Kopye toude fichye yo deyò host sa a: san QUIRE_MASTER_KEY, yon bazdone retabli pa kapab dechifre kalifikatif li estoke. Pou ranpli fichye a alamen pito, kouri cp docker/.env.example docker/.env; fichye a esplike fason pou jenere chak sekrè.
Toude origin yo dwe https: sèvis kontni an refize http senp nan pwodiksyon, epi yo pa dwe pataje yon domèn registrab. Sèvis proxy a fini TLS pou toude (gade “TLS”); init-env.sh refize yon origin http://.
Stack la kòmanse nan yon lòd fiks, epi chak etap tann etap anvan an:
postgresvin an sante. Nan premye demaraj la sèlman, init script li a (docker/postgres/init/90-passwords.sh) mete modpas kat wòl yo.migrateaplike chak migration epi inisyalize ke travay yo nan bazdone kontwòl la ansanm ak chak bazdone tenant dedye; li verifye yo tout dakò, apre sa li sòti (docs/ops/upgrade.md). Migration yo kouri nan chak demaraj epi yo idempotent; donk, yon mizajou mande yon nouvo image epi yon rekòmansman.init(apps/web/src/first-run.ts) anrejistre bazdone aplikasyon an anbaQUIRE_DATABASE_ID; lèQUIRE_SETUP_ADMIN_EMAILfikse, li kreye premye òganizasyon an ak administratè li. Yo montre adrès koneksyon ak modpas jenere a yon sèl fwa nandocker compose logs init.web,content,worker,scheduler,collabakcentrifugokòmanse.proxykòmanse lèwebakcontentvin an sante.
Louvri https://demo. ansanm ak domèn aplikasyon w lan (log init bay adrès koneksyon egzak la), epi konekte. Sou enstalasyon lokal, fè òdinatè w oswa navigatè w fè konfyans otorite sètifika proxy a anvan (gade “TLS”). Chanje modpas jenere a nan /account/security.
Yon pwosesis ki kòmanse san sekrè obligatwa a refize demare epi bay non paramèt ki manke a nan log li. Anyen pa kòmanse avèk konfigirasyon enkonplè.
Sèvis ak pwofil
| Sèvis | Pwofil | Sa li fè |
|---|---|---|
| postgres | toujou | Bazdone a (PostgreSQL 18 ak pgvector, konstwi apati docker/postgres.Dockerfile), WAL achive depi premye demaraj |
| migrate, init | toujou | Yon sèl ekzekisyon: migration, apre sa premye demaraj |
| web | toujou | LMS la, sou QUIRE_HTTP_PORT (8080) |
| content | toujou | Content origin ki pa fyab, sou QUIRE_CONTENT_PORT (8081) |
| worker | toujou | Travay an aryè-plan: imèl, rapò, tretman fichye, webhook |
| scheduler | toujou | Travay peryodik: anrejistre 64 runtime schedule epi remèt yo bay worker; yon sèl lidè alafwa |
| collab | toujou | Websocket koreksyon an kolaborasyon, sou QUIRE_COLLAB_HTTP_PORT (1234) |
| centrifugo | toujou | Distribisyon reyalite-a-kounye a, sou QUIRE_REALTIME_PORT (8000) |
| proxy | toujou | Caddy, antre TLS la sou pò 80 ak 443 (gade “TLS”) |
| valkey | cache |
Kach ak limit demann |
| clamav | scan |
Analiz malveyan nan fichye telechaje |
| gotenberg | preview |
Aperçu Office an PDF, rann sètifika |
| imgproxy | images |
Redimansyon ak konvèsyon imaj |
| transcoder | video |
Image worker ki gen ffmpeg LGPL sèlman, pou rann vèsyon videyo |
| seaweedfs | storage |
Depo objè konpatib S3 sou host sa a |
| otelcol | observability |
Collector OpenTelemetry |
| mailpit | devmail |
Ranmase tout imèl k ap soti, pou eseye Quire |
| backup | backup |
Sovgad baz ki kouri yon sèl fwa; gade backup-restore.md |
| backup-scheduler, backup-offsite | backup |
Sovgad baz chak QUIRE_BACKUP_INTERVAL_HOURS, epi kopi chiffres deyò host avèk egzèsis verifikasyon chak semèn |
| h5p | h5p |
Image zouti H5P LTI 1.3 ou bay la nan QUIRE_H5P_IMAGE, sou QUIRE_H5P_PORT (8090); gade “Konekte ak yon founisè H5P” |
--profile full kòmanse tout sèvis opsyonèl sof backup ak h5p. Pou kòmanse youn, kouri docker compose -f docker/compose.yaml --profile scan up -d. Quire toujou mache san sèvis opsyonèl epi li di sa ki manke: san analiz, yo estoke upload yo san tès epi yo avèti administratè a; san Gotenberg, yo ofri fichye yo pou telechajman olye aperçu; san transcoder, videyo a jwe kòm fichye orijinal la.
Yo bay lis chak image twazyèm pati ak obligasyon lisans li nan docker/third-party-containers.yaml.
Konekte ak yon founisè H5P
Quire pa entegre ni distribye yon runtime oswa sidecar H5P (ADR 0019). Si w sèvi ak H5P, pran pwòp abònman akomode w oswa opere yon enstans H5P oto-akomode apa ak Quire. Anrejistre founisè sa a kòm zouti ekstèn LTI 1.3 epi ajoute kontni li nan kou kòm aktivite zouti. Quire echanje nòt ak pwogrè aktivite/koreksyon atravè LTI Assignment and Grade Services (AGS). Si founisè a voye xAPI statement tou, konfigire sa separeman pou statement store xAPI Quire a; echanj nòt/pwogrè AGS pa voye xAPI statement. Enpòtasyon Moodle rapòte aktivite H5P kòm aktivite ki bezwen koneksyon zouti LTI. Founisè a rete responsab runtime H5P li, zouti kreyasyon, bank kontni ak istwa tantativ.
Pou kouri pwòp enstans oto-akomode pa w sou host sa a, mete QUIRE_H5P_IMAGE sou image li a epi kòmanse pwofil h5p la. Compose pibliye li sou QUIRE_H5P_PORT (8090) epi konsève done li nan volume h5p-data; image la ak tout obligasyon ki mache avè l rete pou ou.
Paramèt
Chak pwosesis li docker/.env. Modèl la, docker/.env.example, bay lis chak paramèt ak valè default li. Men gwoup yo:
Adrès
| Paramèt | Siyifikasyon |
|---|---|
QUIRE_APP_ORIGIN |
Adrès piblik LMS la, tankou https://learn.example.com |
QUIRE_CONTENT_ORIGIN |
Content origin lan, sou yon lòt host |
QUIRE_PLATFORM_DOMAINS |
Domèn òganizasyon yo anba, separe ak vigil |
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 isit la. Gade lòt gid yo pou vercel ak cloudflare |
QUIRE_TRUSTED_PROXY_CIDRS |
Proxy yo fè konfyans sou X-Forwarded-For yo voye a |
Sekrè
| Paramèt | Siyifikasyon |
|---|---|
QUIRE_SECRET_KEY |
Siyen sesyon ak token. 64 karaktè hexadesimal |
QUIRE_MASTER_KEY |
Vlope kalifikatif estoke tankou sekrè SSO ak webhook. 32 bytes, base64. Web tier ak worker dwe gen menm valè a. Wotasyon: key-rotation.md |
QUIRE_MASTER_KEY_VERSION |
Etikèt vèsyon kle prensipal la; v1 si pa gen valè. Ogmante li lè w chanje kle a |
QUIRE_MASTER_KEY_RETIRED |
Ansyen kle prensipal ki toujou nesesè pou li sa yo te sele avèk li, sou fòm v1=<base64>. Retire li lè wotasyon an fini san anyen poko rezoud |
QUIRE_COLLAB_SIGNING_KEY |
Web ak collab pataje li pou siyen token koreksyon |
QUIRE_BACKUP_SIGNING_KEY |
Siyen backup kou yo (opsyonèl) |
Kenbe yon kopi QUIRE_MASTER_KEY yon lòt kote pase sou host sa a. Yon bazdone retabli san li pa ka dechifre kalifikatif li genyen yo.
Bazdone
| Paramèt | Siyifikasyon |
|---|---|
POSTGRES_PASSWORD |
Modpas superuser; container ak sovgad yo itilize li |
QUIRE_DB_APP_PASSWORD, QUIRE_DB_MIGRATOR_PASSWORD, QUIRE_DB_REPORT_PASSWORD, QUIRE_DB_AUDIT_PASSWORD |
Modpas wòl yo, yo mete nan premye demaraj |
DATABASE_URL |
Wòl aplikasyon an. Sekirite nivo liy aplike nan chak demann li fè |
DATABASE_MIGRATOR_URL, QUIRE_MIGRATION_URL |
Wòl migrator a, pou migrate ak init |
QUIRE_SUPERUSER_URL |
Yo sèvi avè l sèlman nan premye demaraj |
QUIRE_REPORT_DATABASE_URL |
Wòl lekti-sèlman pou rapò ak zouti kreyasyon rapò a |
QUIRE_AUDIT_DATABASE_URL |
Wòl odit la, pou konsòl odit ak ekspòtasyon SIEM |
QUIRE_DATABASE_ID |
Nenpòt UUID, li pa chanje pandan tout dire enstalasyon an |
Yo aplike modpas wòl yo sèlman premye fwa yo kreye volume bazdone a. Pou chanje youn apre sa, sèvi ak ALTER ROLE epi mete URL ki koresponn lan ajou.
Yo sèvi ak QUIRE_REPORT_DATABASE_URL pou bazdone fizik DATABASE_URL konfigire a. Pou nenpòt lòt bazdone fizik ki anrejistre, mete pwòp URL koneksyon quire_report pa li nan anviwònman web ak worker yo, epi mete non varyab la nan chan Reporting environment variable bazdone sa a kòm env:NAME. Referans lan dwe montre menm bazdone ak koneksyon app li a, de preferans yon kopi lekti. Chak ekran rapò swiv tenant la pou rive nan koneksyon rapò pwòp bazdone pa li: zouti kreyasyon ak rapò sove yo, livrezon pwograme, ekspòtasyon rapò, analytics, jounal odit, resous odit REST ak rechèch odit asistan an. Okenn ladan yo pa janm prete URL rapò yon lòt bazdone. Lè yon bazdone pa gen koneksyon rapò, rapò òdinè yo sèvi ak pwòp koneksyon aplikasyon bazdone sa a; analytics ak tout lekti odit yo refize epi di rezon an, paske wòl aplikasyon an pa kapab li rejis odit la.
Driver
| Paramèt | Nan vèsyon sa a | Nòt |
|---|---|---|
QUIRE_STORAGE_DRIVER |
local (default), s3 oswa azure |
local konsève fichye yo nan volume files. s3 kouvri AWS S3, R2, entèoperabilite GCS ak lòt depo konpatib S3, avèk upload multipart ki reprann apre entèripsyon |
QUIRE_REALTIME_DRIVER |
inprocess (default), sse, centrifugo oswa durable_objects |
inprocess apwopriye pou yon web container; sèvi ak centrifugo oswa sse lè gen plizyè |
QUIRE_CACHE_DRIVER |
memory (default), postgres oswa valkey |
memory separe pou chak pwosesis; sèvi ak valkey oswa postgres pou limit demann yo mache atravè plizyè container |
QUIRE_VIDEO_DRIVER |
ffmpeg (default) oswa progressive_mp4 |
Oswa founisè akomode: Cloudflare Stream, Mux oswa Bunny, ak kle pa yo |
QUIRE_IMAGE_DRIVER |
noop (default), imgproxy oswa cloudflare |
noop sèvi chak imaj nan gwosè orijinal li. imgproxy bezwen pwofil images la ak paramèt ki pi ba yo; cloudflare sèvi ak Cloudflare Images |
QUIRE_MEETING_PROVIDER |
bbb, zoom, teams, meet, jitsi oswa in_process |
Founisè default platfòm la pou sesyon an dirèk. Si pa fikse, sesyon yo parèt pa konfigire jiskaske yon òganizasyon konekte pwòp kont li anba Integrations, Live session provider. Kont òganizasyon an toujou pase anvan valè sa a. Yo li paramèt chak founisè (BBB_URL ak BBB_SECRET, varyab ZOOM_*, TEAMS_*, GOOGLE_MEET_* ak JITSI_*) sèlman pou founisè yo nonmen isit la |
QUIRE_MEETING_REGIONS |
Lis eu, uk, us separe ak vigil |
Rejyon kote founisè default platfòm la trete reyinyon yo. Si pa fikse, tankou anvan, yo pa konpare li ak rejyon yon òganizasyon fikse. Kont pa òganizasyon an bay rejyon li yo sou pwòp paj li |
Lè web tier la kòmanse, li refize yon valè driver vèsyon sa a pa genyen epi li nonmen paramèt la, olye li ranplase li an silans ak default la.
Imaj
Paj yo mande imaj nan kat gwosè fiks atravè /api/files/{id}/image/{size}. Endpoint sa a verifye menm dwa aksè ak fichye a, epi li redirije sou sèvis imaj la. Chak òganizasyon kapab mande jiska QUIRE_IMAGE_SPECS_PER_HOUR (default 2000) nouvo pè imaj-ak-gwosè pa èdtan; gwosè ki te deja pwodui nan menm èdtan an pa konte. Lè gen plis pase yon web container, sèvi ak valkey oswa postgres pou QUIRE_CACHE_DRIVER pou limit la aplike sou tout yo.
| Paramèt | Driver | Nòt |
|---|---|---|
IMGPROXY_URL |
imgproxy |
Adrès browser yo itilize pou rive nan imgproxy, pa egzanp https://images.example.org. Pwofil images la pibliye li sou QUIRE_IMAGES_PORT (8082) |
IMGPROXY_KEY, IMGPROXY_SALT |
imgproxy |
Chèn hexadesimal, menm valè yo sèvi lè yo demare imgproxy. Jenere yo chak avèk openssl rand -hex 32. Quire siyen chak adrès imaj ak valè sa yo, konsa imgproxy pa rann imaj Quire pa t mande |
QUIRE_IMAGE_SOURCE_ORIGIN |
imgproxy ak depo lokal |
Kote imgproxy pran imaj orijinal yo. Compose mete http://web:3000. Avèk depo s3 oswa azure, imgproxy pran yo nan bucket la epi li pa itilize paramèt sa a |
CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_IMAGES_TOKEN, CLOUDFLARE_IMAGES_ACCOUNT_HASH |
cloudflare |
Token API ki gen dwa modifye Images, ak account hash ki nan Images, Developer resources. Aktive flexible variants pou kont lan |
CLOUDFLARE_IMAGES_SIGNING_KEY |
cloudflare |
Opsyonèl. Lè li fikse, imaj yo prive epi chak adrès siyen epi ekspire. San li, imaj yo piblik nan adrès ki derive apati QUIRE_SECRET_KEY epi pèsonn pa ka devine yo |
Cloudflare Images kenbe pwòp kopi chak imaj orijinal li sèvi. Lè yo efase yon fichye, worker la efase kopi sa a anvan orijinal la.
Ke travay
Travay an aryè-plan yo sèvi ak pg-boss nan menm bazdone Postgres la, donk pa gen sèvis ke pou kouri ni anyen pou konfigire. Yo mete travay nan ke nan menm transaction ak chanjman ki te kreye yo, konsa yon aksidan pa pèdi ni voye menm travay la de fwa. Isit la QUIRE_QUEUE_DRIVER default la se pgboss; vercel ak cloudflare voye sèlman livrezon notifikasyon lejè ak webhook nan ke platfòm yo. Gid Vercel ak Cloudflare yo dekri yo ak fason web tier pa yo mete travay nan ke.
Imèl
Mete youn nan paramèt sa yo:
QUIRE_EMAIL_PROVIDER_CONFIG: yon objè JSON ki nonmen yon founisè HTTP ak kalifikatif li, tankou{"provider":"postmark","token":"..."}. Postmark, Amazon SES, Mailgun, SendGrid ak Resend disponib.QUIRE_SMTP_URL:smtp://user:password@host:587. Se sib sa a sèlman ki pèmèt li; sib serverless yo bloke SMTP.
Moun k ap voye a se QUIRE_MAIL_FROM. Pou eseye Quire, kòmanse pwofil devmail la, mete QUIRE_SMTP_URL=smtp://mailpit:1025 epi li imèl yo nan http://localhost:8025.
Sèvis opsyonèl
| Paramèt | Avèk pwofil |
|---|---|
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 oswa QUIRE_MEILISEARCH_URL |
Rechèch ekstèn; sinon rechèch tèks konplè Postgres |
QUIRE_BREACH_CHECK_PROVIDER=off, QUIRE_BREACH_CHECK_URL |
Verifikasyon modpas ki te deja konpwomèt. Aktive pa default sou api.pwnedpasswords.com (yo voye sèlman senk premye karaktè yon hash); off dezaktive li, epi URL la ka montre sou yon range API ou òganize |
Obsèvabilite
OTEL_EXPORTER_OTLP_ENDPOINT bay non collector chak pwosesis voye tras ak mezi yo. Avèk pwofil observability, li se http://otelcol:4318; ajoute exporter backend pa w la nan docker/otel-collector.yaml. Lè paramèt la fikse, pwosesis web tier, worker, scheduler, content ak collab voye span sou OTLP/HTTP (demann web, transaction bazdone tenant, travay worker ak apèl sortan) ak mezi sou menm endpoint chak minit (OTEL_METRICS_EXPORTER=none fèmen mezi yo). OTEL_TRACES_SAMPLER_ARG fikse pwopòsyon tras yo konsève. Log yo ale sou standard output nan nivo LOG_LEVEL, epi Compose vire yo. Tras pa pote done pèsonèl.
Trafik sortan rejyonal (rezidans done EU)
QUIRE_REGION=eu di stack la sèvi òganizasyon nan Inyon Ewopeyen. Worker la kenbe chak demann sortan yon òganizasyon ki fikse nan EU nan limit yon allowlist (21-compliance.md seksyon 8.1). Allowlist la se host sèvis konfigire yo deklare pou rejyon an (endpoint depo a, founisè imèl la, founisè videyo akomode a, sib depo òganizasyon an, founisè IA ak kont imèl), host sèvis ki anba derogasyon aktyèl yo ak host ou mete nan QUIRE_EGRESS_ALLOW_HOSTS. Yo refize yon demann pou nenpòt lòt host piblik anvan li soti; yo ekri refi a nan tras odit òganizasyon an kòm privacy/egress_refused epi li parèt anba Compliance, Data residency.
| Paramèt | Valè | Efè |
|---|---|---|
QUIRE_EGRESS_ALLOW_HOSTS |
Lis hostname separe ak vigil, oswa *.example.org pou tout sou-domèn |
Host anplis yon òganizasyon EU kapab kontakte. Endpoint webhook, xAPI ak SIEM, flux blog ak host Amazon SES dwe la paske òganizasyon an chwazi yo, okenn sèvis pa deklare yo. Bouk lokal, adrès prive ak non ki gen yon sèl etikèt tankou web oswa clamav se rezo pa w; yo pa janm verifye |
Yo pa kenbe òganizasyon UK ak US nan yon lis host; yo kontinye sibi verifikasyon rejyon sèvis yo. Mete lis la sou worker la; paj admin nan web tier la li li pou montre allowlist la. Se poutèt sa mete li nan docker/.env, ki tout sèvis li.
Verifikasyon aplikasyon an bay yon erè klè ak antre odit, men se pa garanti a: kòd kapab gen erè. Rezo a bay garanti a; Compose pa aplike li pou ou. Pou yon stack rejyonal, mete sèvis worker ak web sou yon rezo internal: true kote sèl chemen pou soti pase nan yon proxy trafik sortan (pa egzanp container Squid oswa tinyproxy) ki pèmèt menm host ak QUIRE_EGRESS_ALLOW_HOSTS ansanm ak host sèvis konfigire yo. Mete HTTPS_PROXY pou sèvis sa yo. Paj rezidans lan bay host egzak aplikasyon an pèmèt, konsa ou kapab konpare de lis yo.
Sante
| Endpoint | Siyifikasyon |
|---|---|
/healthz |
Viv: pwosesis la reponn. Health check Compose yo sèvi ak sa |
/readyz |
Pare: depandans yo aksesib epi chak sèvis opsyonèl rapòte si li konfigire oswa non. Montre load balancer ou endpoint sa a |
docker compose -f docker/compose.yaml ps montre sante chak sèvis.
TLS
Sèvis proxy a (Caddy, Apache-2.0, docker/caddy/Caddyfile) se yon pati nan stack default la. Li reponn sou pò 80 ak 443 epi dirije trafik:
| Host oswa chemen | Ale nan |
|---|---|
QUIRE_PROXY_CONTENT_HOST |
content |
QUIRE_PROXY_APP_HOST, chak sou-domèn tenant ak domèn pèsonalize |
web |
/_collab/ sou host sa yo |
collab (websocket, QUIRE_COLLAB_URL) |
/_realtime/connection/ sou host sa yo |
websocket client centrifugo a; API sèvè a pa janm ekspoze |
/_images/ sou host sa yo |
imgproxy, avèk pwofil images la (IMGPROXY_URL) |
init-env.sh derive QUIRE_PROXY_APP_HOST, QUIRE_PROXY_CONTENT_HOST, QUIRE_PROXY_HTTPS_PORT, QUIRE_COLLAB_URL ak IMGPROXY_URL apati de origin yo, konsa yo rete ann amoni. Si w chanje yon origin alamen, chanje paramèt sa yo ansanm avè l.
Sètifika yo suiv paramèt QUIRE_PROXY_TLS la:
-
internal(default la): pwòp otorite sètifika Caddy poulocalhost,*.localhostaklvh.me. Fè sistèm oswa navigatè a fè root li konfyans yon sèl fwa, apre sa jwenn li:docker compose -f docker/compose.yaml cp \ proxy:/data/caddy/pki/authorities/local/root.crt ./quire-local-ca.crtAjoute
quire-local-ca.crtnan magazen konfyans sistèm oswa navigatè a. Poucurl, bay li ak--cacert. -
Yon adrès imèl: sètifika ACME otomatik (Let’s Encrypt, apre sa ZeroSSL) pou hostname reyèl. DNS de origin yo ak chak host tenant dwe mennen isit la, epi entènèt la dwe kapab rive nan pò 80 ak 443.
Yo bay tenant host sètifika sou demann, nan premye vizit la, epi sèlman lè web konfime non an pou enstalasyon sa a (/tls-allowed, yo mande sa sou rezo Compose la). Pa bezwen sètifika wildcard oswa plugin founisè DNS; yon etranje pa kapab fè host la mande yon sètifika lè li voye yon non nan host sa a. Sètifika ak otorite lokal yo nan volume caddy-data; si w sèvi ak internal, mete li nan sovgad ak rès la.
Web fè konfyans X-Forwarded-For ki soti nan proxy sèlman: adrès proxy a fiks (QUIRE_PROXY_ADDRESS, default 172.29.64.10) sou yon sous-rezo fiks (QUIRE_COMPOSE_SUBNET), epi QUIRE_TRUSTED_PROXY_CIDRS bay adrès sa a. Si sous-rezo a antre an konfli ak yon rezo host la, chanje yo toude epi kouri docker compose down anvan up.
Dèyè pwòp reverse proxy pa w
Pou pito sèvi ak load balancer oswa proxy w ap kouri deja, pa kòmanse proxy a (docker compose up -d --scale proxy=0), epi fini TLS devan web (8080), content (8081), collab (1234, websocket) ak centrifugo (8000, websocket). Mete adrès piblik yo nan QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN ak QUIRE_COLLAB_URL (wss://), epi seri adrès proxy a nan QUIRE_TRUSTED_PROXY_CIDRS.
Rezoud pwoblèm
initsòti ak “QUIRE_DATABASE_ID is not a UUID”: mete li avèkuuidgen.webrekòmanse ak “did not start on compose”: log la bay chak paramèt li pa ka respekte ak sa pou itilize pito.- Chanje modpas wòl nan
.envapre premye demaraj pa fè anyen: init script la kouri yon sèl fwa. Sèvi akALTER ROLE. - Upload echwe ak erè analiz lè
CLAMAV_URLfikse: nan premye demaraj, ClamAV telechaje siyati li yo, sa pran kèk minit.