Ostalari bakarrean produktu osoa instalatzeko aukera da hau: LMSa, atzeko planoko lana, denbora errealeko eta lankidetzako edizio-zerbitzuak, baita profil baten bidez aktiba daitezkeen aukerako zerbitzu guztiak ere. Diseinua docs/architecture/23-ops.md ataleko 2. atalean dago.
Beste helburu batzuk: Vercel eta Cloudflare Workers aukerek web-maila baino ez dute exekutatzen. Bertsio-berritzeak upgrade.md gidan daude; babeskopiak eta leheneratze-proba, berriz, backup-restore.md gidan.
Behar duzuna
- Docker Engine 27 edo berriagoa, Compose 2.30 pluginarekin edo berriagoarekin.
- 4 CPU nukleo eta 8 GB memoria pila lehenetsirako; 8 nukleo eta 16 GB
--profile fullerabiltzeko (ClamAVek bakarrik 1,5 GB inguru hartzen ditu sinadurak gordetzeko). - Web-mailarako DNS izen bat eta eduki ez-fidagarrietarako beste bat. Ostalari desberdinak izan behar dute: SCORM paketeak eta igotako HTMLa eduki-jatorrian exekutatzen dira, LMSaren cookieak inoiz irakurri ezin ditzaten.
- Tokiko proba baterako,
lvh.meeta*.localhosthelbideek 127.0.0.1 helbidera ebazten dute; hori erabiltzen dudocker/.env.examplefitxategiak. Pilakoproxyzerbitzuak biak https bidez zerbitzatzen ditu ziurtagiri-autoritate lokal batekin, eta, beraz, ez da beste ezer instalatu behar (ikus “TLS”). - Ostalariko 80 eta 443 portuek libre egon behar dute (
QUIRE_PROXY_HTTP_PORTetaQUIRE_PROXY_HTTPS_PORTerabiliz alda daitezke).
Lehen exekuzioa
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 scriptak docker/.env sortzen du docker/.env.example fitxategitik, sekretu guztiak sortuta (datu-baseko pasahitzak, sinadura- eta gako nagusiak, edukiak abiarazteko gako-parea), baita docker/secrets/audit-signing-key.pem fitxategiko auditoretza-kontrol-puntuaren sinadura-gakoa ere. Composek worker-etan muntatzen du sekretu gisa. sh, awk eta openssl baino ez ditu behar, eta ez du lehendik dagoen docker/.env fitxategia gainidazten. Kopiatu bi fitxategiak ostalaritik kanpo: QUIRE_MASTER_KEY gabe, leheneratutako datu-base batek ezin ditu gordetako kredentzialak deszifratu. Fitxategia eskuz bete nahi baduzu, exekutatu cp docker/.env.example docker/.env; fitxategian sekretu bakoitza sortzeko argibideak daude.
Bi jatorriek https erabili behar dute: eduki-zerbitzuak ez du http arrunta onartzen produkzioan, eta biek ezin dute erregistratu daitekeen domeinu bera partekatu. proxy zerbitzuak TLS amaitzen du bietan (ikus “TLS”); init-env.sh scriptak http:// jatorririk ez du onartzen.
Pila ordena finko batean abiarazten da, eta urrats bakoitzak aurrekoa amaitu arte itxaroten du:
postgresosasuntsu jartzen da. Lehen abiaraztean, hasieratze-scriptak (docker/postgres/init/90-passwords.sh) lau rolen pasahitzak ezartzen ditu.migratezerbitzuak migrazio guztiak aplikatzen ditu, eta lan-ilara abiarazten du kontrol-datu-basean eta maizter bakoitzaren datu-base bereizian. Denak bat datozela egiaztatu ondoren amaitzen da (docs/ops/upgrade.md). Migrazioak abiarazte bakoitzean exekutatzen dira eta idempotenteak dira; beraz, bertsio-berritzeko irudi berria eta berrabiaraztea besterik ez da behar.initzerbitzuak (apps/web/src/first-run.ts) aplikazioaren datu-basea erregistratzen duQUIRE_DATABASE_IDaldagaian eta,QUIRE_SETUP_ADMIN_EMAILezarrita badago, lehen erakundea eta administratzailea sortzen ditu. Saioa hasteko helbidea eta sortutako pasahitza behin bakarrik inprimatzen diradocker compose logs initemaitzan.web,content,worker,scheduler,collabetacentrifugoabiarazten dira.proxyabiarazten dawebetacontentzerbitzuak osasuntsu daudenean.
Ireki https://demo. eta jarraian aplikazioaren domeinua (saioa hasteko helbide zehatza init erregistroan dago), eta hasi saioa. Tokiko instalazioan, fidatu lehenik proxyaren ziurtagiri-autoritateaz (ikus “TLS”). Aldatu sortutako pasahitza /account/security helbidean.
Beharrezko sekreturik gabe abiarazten den prozesu batek ez du abiatzea onartzen, eta falta den ezarpena adierazten du erregistroan. Ez da ezer erdi-konfiguratuta abiarazten.
Zerbitzuak eta profilak
| Zerbitzua | Profila | Eginkizuna |
|---|---|---|
| postgres | beti | Datu-basea (PostgreSQL 18 pgvector-ekin, docker/postgres.Dockerfile fitxategitik eraikia), lehen abiaraztetik artxibatzen den WALarekin |
| migrate, init | beti | Behin bakarrik: migrazioak, ondoren lehen abiaraztea |
| web | beti | LMSa, QUIRE_HTTP_PORT atakan (8080) |
| content | beti | Eduki ez-fidagarrien jatorria, QUIRE_CONTENT_PORT atakan (8081) |
| worker | beti | Atzeko planoko lanak: posta, txostenak, fitxategien prozesamendua, webhooks |
| scheduler | beti | Aldizkako lanak: exekuzioko 64 programazioak erregistratzen ditu eta worker-ari ematen dizkio; lider bakarra aldi bakoitzean |
| collab | beti | Lankidetzako edizio-websocketa, QUIRE_COLLAB_HTTP_PORT atakan (1234) |
| centrifugo | beti | Denbora errealeko hedapena, QUIRE_REALTIME_PORT atakan (8000) |
| proxy | beti | Caddy, TLS sarrerako atea 80 eta 443 portuetan (ikus “TLS”) |
| valkey | cache |
Cachea eta tasa-mugak |
| clamav | scan |
Igotako fitxategien malware-eskaneatzea |
| gotenberg | preview |
Office fitxategiak PDF aurrebista bihurtzea eta ziurtagiriak errendatzea |
| imgproxy | images |
Irudiei tamaina aldatzea eta irudiak bihurtzea |
| transcoder | video |
LGPL lizentziadun ffmpeg duen worker irudia, bideo-bertsioak sortzeko |
| seaweedfs | storage |
Ostalari honetako S3-rekin bateragarria den objektu-biltegiratzea |
| otelcol | observability |
OpenTelemetry biltzailea |
| mailpit | devmail |
Irteerako posta guztia harrapatzen du, Quire probatzeko |
| backup | backup |
Behin bakarrik: oinarrizko babeskopia; ikus backup-restore.md |
| backup-scheduler, backup-offsite | backup |
Oinarrizko babeskopia QUIRE_BACKUP_INTERVAL_HOURS tartean behin, eta zifratutako ostalariz kanpoko kopiak asteko egiaztapen-probarekin |
| h5p | h5p |
Zuk emandako H5P LTI 1.3 tresnaren irudia QUIRE_H5P_IMAGE aldagaian, QUIRE_H5P_PORT atakan (8090); ikus “H5P hornitzaile bat konektatzea” |
--profile full komandoak aukerako zerbitzu guztiak abiarazten ditu, backup eta h5p izan ezik. Abiarazi zerbitzu bat docker compose -f docker/compose.yaml --profile scan up -d erabiliz. Aukerako zerbitzurik gabe ere Quirek funtzionatzen du eta falta dena adierazten du: eskannerik ez badago, fitxategiak eskaneatu gabe gordetzen dira eta administratzaileari jakinarazten zaio; Gotenbergik ez badago, fitxategiak aurrebista gisa erakutsi ordez deskargatzeko eskaintzen dira; transkodetzailerik ez badago, bideoa jatorrizko fitxategi gisa erreproduzitzen da.
Hirugarrenen irudi guztiak eta haien lizentzia-betebeharrak docker/third-party-containers.yaml fitxategian zerrendatzen dira.
H5P hornitzaile bat konektatzea
Quirek ez du H5P exekuzio-ingurunerik edo alboko zerbitzurik barneratzen edo banatzen (ADR 0019). H5P erabiltzen baduzu, kontratatu zure ostatatutako harpidetza edo kudeatu Quiretik aparteko H5P instantzia auto-ostatua. Erregistratu hornitzaile hori LTI 1.3 kanpoko tresna gisa, eta gehitu haren edukia ikastaroetan tresna-jarduera gisa. Quirek kalifikazioak eta jardueraren/kalifikazioaren aurrerapena trukatzen ditu LTI Assignment and Grade Services (AGS) bidez. Hornitzaileak xAPI instrukzioak ere bidaltzen baditu, konfiguratu hori bereizita Quireren xAPI instrukzioen biltegirako; AGS bidezko kalifikazio/aurrerapen trukeak ez du xAPI instrukziorik bidaltzen. Moodle inportazioek H5P jarduerak LTI tresnaren konexioa behar dutela adierazten dute. Hornitzailearen ardura dira H5P exekuzio-ingurunea, edukiak sortzea, eduki-bankua eta saiakeren historia.
Zure auto-ostatutako instantzia ostalari honetan exekutatzeko, ezarri QUIRE_H5P_IMAGE haren irudi gisa eta abiarazi h5p profila. Composek QUIRE_H5P_PORT atakan argitaratzen du (8090), eta datuak h5p-data bolumenean gordetzen ditu; irudia eta hari dagozkion betebeharrak zure ardurapean daude.
Ezarpenak
Prozesu guztiek docker/.env fitxategia irakurtzen dute. Txantiloiak, docker/.env.example fitxategiak, ezarpen bakoitza eta haren lehenetsitako balioa zerrendatzen ditu. Taldeak:
Helbideak
| Ezarpena | Esanahia |
|---|---|
QUIRE_APP_ORIGIN |
LMSaren helbide publikoa, adibidez https://learn.example.com |
QUIRE_CONTENT_ORIGIN |
Eduki-jatorria, beste ostalari batean |
QUIRE_PLATFORM_DOMAINS |
Erakundeak dauden domeinuak, komaz bereizita |
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 |
Hemen compose. Ikus beste gidetan vercel eta cloudflare |
QUIRE_TRUSTED_PROXY_CIDRS |
X-Forwarded-For goiburua fidagarritzat jotzen den proxyen helbide-barrutiak |
Sekretuak
| Ezarpena | Esanahia |
|---|---|
QUIRE_SECRET_KEY |
Saioak eta tokenak sinatzen ditu. 64 karaktere hexadezimal |
QUIRE_MASTER_KEY |
Gordetako kredentzialak biltzen ditu, hala nola SSO eta webhook sekretuak. 32 byte, base64 formatuan. Web-mailak eta worker-ak balio bera behar dute. Biraketa: key-rotation.md |
QUIRE_MASTER_KEY_VERSION |
Gako nagusiaren bertsio-etiketa, ezarrita ez dagoenean v1. Handitu gakoa biratzean |
QUIRE_MASTER_KEY_RETIRED |
Lehenago zigilatutako datuak irakurtzeko behar diren aurreko gako nagusiak, v1=<base64> gisa. Kendu biraketa amaitu eta konpondu gabeko ezer geratzen ez denean |
QUIRE_COLLAB_SIGNING_KEY |
Webak eta collab-ek partekatzen dute edizio-tokenak sinatzeko |
QUIRE_BACKUP_SIGNING_KEY |
Ikastaroen babeskopiak sinatzen ditu (aukerakoa) |
Gorde QUIRE_MASTER_KEY ostalari honetatik aparte. Hura gabe leheneratutako datu-base batek ezin ditu gordetako kredentzialak deszifratu.
Datu-basea
| Ezarpena | Esanahia |
|---|---|
POSTGRES_PASSWORD |
Supererabiltzailearen pasahitza, edukiontziak eta babeskopiek erabiltzen dutena |
QUIRE_DB_APP_PASSWORD, QUIRE_DB_MIGRATOR_PASSWORD, QUIRE_DB_REPORT_PASSWORD, QUIRE_DB_AUDIT_PASSWORD |
Rol-pasahitzak, lehen abiaraztean ezartzen direnak |
DATABASE_URL |
Aplikazioaren rola. Errenkada-mailako segurtasuna haren kontsulta guztiei aplikatzen zaie |
DATABASE_MIGRATOR_URL, QUIRE_MIGRATION_URL |
Migratzailearen rola, migrate eta init zerbitzuek erabiltzeko |
QUIRE_SUPERUSER_URL |
Lehen abiaraztean bakarrik erabiltzen da |
QUIRE_REPORT_DATABASE_URL |
Txostenen irakurketa-soilik rola, txostenek eta txosten-sortzaileak erabiltzeko |
QUIRE_AUDIT_DATABASE_URL |
Auditoretza-rola, auditoretza-kontsolak eta SIEM esportazioak erabiltzeko |
QUIRE_DATABASE_ID |
Edozein UUID, instalazioaren bizi-ziklo osoan finko mantendua |
Rol-pasahitzak datu-baseko bolumena lehen aldiz sortzean soilik aplikatzen dira. Geroago aldatzeko, erabili ALTER ROLE eta eguneratu dagokion URLa.
QUIRE_REPORT_DATABASE_URL DATABASE_URL bidez konfiguratutako datu-base fisikorako erabiltzen da. Erregistratutako beste edozein datu-base fisikorako, ezarri haren quire_report konexio-URLa webaren eta worker-aren inguruneetan; ondoren, jarri aldagaiaren izena datu-base horren Txostenen ingurune-aldagaia eremuan, env:NAME formatuan. Erreferentziak aplikazio-konexioaren datu-base berera jo behar du, ahal dela haren irakurketa-erreplikara. Txostenen interfaze guztiek maizterrari jarraitzen diote, haren datu-baseko txosten-konexiora: txosten-sortzailea eta gordetako txostenak, programatutako bidalketak, txosten-esportazioak, analitikak, auditoretza-erregistroa, REST auditoretza-baliabideak eta laguntzailearen auditoretza-bilaketa. Inork ez du beste datu-base baten txosten-URLarik erabiltzen. Datu-base batek txosten-konexiorik ez duenean, ohiko txostenak datu-base horren aplikazio-konexio propioan exekutatzen dira; analitikak eta auditoretza-irakurketa guztiak, ordea, ukatu egiten dira eta horren berri ematen dute, aplikazio-rolak ezin baitu auditoretza-arrastoa irakurri.
Driver-ak
| Ezarpena | Bertsio honetako aukerak | Oharrak |
|---|---|---|
QUIRE_STORAGE_DRIVER |
local (lehenetsia), s3 edo azure |
local aukerak fitxategiak files bolumenean gordetzen ditu. s3 aukerak AWS S3, R2, GCS elkarreragingarritasuna eta S3-rekin bateragarriak diren beste biltegi batzuk hartzen ditu, zatika berrabiaraz daitezkeen igoerekin |
QUIRE_REALTIME_DRIVER |
inprocess (lehenetsia), sse, centrifugo edo durable_objects |
inprocess egokia da web-edukiontzi bakarrerako; erabili centrifugo edo sse bat baino gehiago badira |
QUIRE_CACHE_DRIVER |
memory (lehenetsia), postgres edo valkey |
memory prozesu bakoitzekoa da; erabili valkey edo postgres tasa-mugek edukiontzi guztietan balio dezaten |
QUIRE_VIDEO_DRIVER |
ffmpeg (lehenetsia) edo progressive_mp4 |
Edo ostatatutako hornitzaile bat: Cloudflare Stream, Mux edo Bunny, dagozkien gakoen bidez |
QUIRE_IMAGE_DRIVER |
noop (lehenetsia), imgproxy edo cloudflare |
noop aukerak irudi guztiak jatorrizko tamainan zerbitzatzen ditu. imgproxy aukerak images profila eta beheko ezarpenak behar ditu; cloudflare aukerak Cloudflare Images erabiltzen du |
QUIRE_MEETING_PROVIDER |
bbb, zoom, teams, meet, jitsi edo in_process |
Zuzeneko saioetarako plataformaren lehenetsitako hornitzailea. Ezarri gabe badago, zuzeneko saioek konfiguratuta ez daudela adierazten dute erakunde batek Integrations, Live session provider atalean bere kontua konektatu arte. Erakundearen kontuak balio hau ordezkatzen du beti. Hornitzaile bakoitzaren ezarpenak (BBB_URL eta BBB_SECRET, ZOOM_*, TEAMS_*, GOOGLE_MEET_* eta JITSI_* aldagaiak) hemen izendatutako hornitzailearentzat soilik irakurtzen dira |
QUIRE_MEETING_REGIONS |
eu, uk, us balioen komaz bereizitako zerrenda |
Plataformaren lehenetsitako hornitzaileak bilerak prozesatzen dituen eskualdeak. Ezarri gabe badago, ez da erakunde bati finkatutako eskualdearekin alderatzen, lehen bezala. Erakundearen kontuaren orriak haren eskualdeak adierazten ditu |
Bertsio honek barne hartzen ez duen driver-balio batek web-maila abiaraztea eragozten du, dagokion ezarpena adieraziz, lehenetsitako balioarekin isilean ordezkatu ordez.
Irudiak
Orrialdeek lau tamaina finkotako irudiak eskatzen dituzte /api/files/{id}/image/{size} bidez; horrek fitxategiaren sarbide-baimen berak egiaztatzen ditu, eta ondoren irudi-zerbitzura birbideratzen du. Erakunde bakoitzak orduko QUIRE_IMAGE_SPECS_PER_HOUR (lehenetsia 2000) irudi eta tamaina bikote berri eska ditzake; ordu horretan sortutako tamainak ez dira kontatzen. Erabili valkey edo postgres QUIRE_CACHE_DRIVER gisa web-edukiontzi bat baino gehiago baduzu, muga guztietan aplika dadin.
| Ezarpena | Driver-a | Oharrak |
|---|---|---|
IMGPROXY_URL |
imgproxy |
Nabigatzaileek imgproxyra iristeko duten helbidea, adibidez https://images.example.org. images profilak QUIRE_IMAGES_PORT atakan argitaratzen du (8082) |
IMGPROXY_KEY, IMGPROXY_SALT |
imgproxy |
Kate hexadezimalak, imgproxy abiarazteko erabiltzen diren balio berberak. Sortu bakoitza openssl rand -hex 32 erabiliz. Quirek haiekin sinatzen ditu irudi-helbide guztiak, imgproxyk Quirek eskatu ez dituen irudiak errenda ez ditzan |
QUIRE_IMAGE_SOURCE_ORIGIN |
imgproxy, biltegiratze lokala erabiliz |
imgproxyk jatorrizkoak nondik eskuratzen dituen. Composek http://web:3000 ezartzen du. s3 edo azure biltegiratzearekin imgproxyk bucketetik eskuratzen ditu, eta ez da ezarpen hau erabiltzen |
CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_IMAGES_TOKEN, CLOUDFLARE_IMAGES_ACCOUNT_HASH |
cloudflare |
Images edit baimena duen API tokena eta Images, Developer resources ataletik lortutako kontu-hash-a. Aktibatu flexible variants konturako |
CLOUDFLARE_IMAGES_SIGNING_KEY |
cloudflare |
Aukerakoa. Ezarrita badago, irudiak pribatuak dira eta helbide guztiak sinatu eta iraungi egiten dira. Ezarri gabe, irudiak publikoak dira QUIRE_SECRET_KEY aldagaitik eratorritako eta inork asmatu ezin dituen helbideetan |
Cloudflare Imagesek zerbitzatzen duen jatorrizko fitxategi bakoitzaren kopia propioa gordetzen du. Fitxategi bat ezabatzean, worker-ak kopia hori ezabatzen du jatorrizkoa baino lehen.
Ilara
Atzeko planoko lanek pg-boss erabiltzen dute Postgres datu-base berean; beraz, ez dago ilara-zerbitzurik exekutatu edo konfiguratu beharrik. Lanak abiarazi dituen aldaketaren transakzio berean ilaran jartzen dira; hortaz, kraskatze batek ezin ditu galdu edo bi aldiz bidali. QUIRE_QUEUE_DRIVER hemen pgboss da, lehenetsitako balioa; vercel eta cloudflare aukerek jakinarazpen- eta webhook-bidalketa arinak baino ez dituzte eramaten plataformako ilara propiora. Vercel eta Cloudflare gidetan ageri dira horiek eta web-mailek ilaran nola jartzen dituzten.
Posta elektronikoa
Ezarri hauetako bat:
QUIRE_EMAIL_PROVIDER_CONFIG: HTTP hornitzaile bat eta haren kredentzialak izendatzen dituen JSON objektua, hala nola{"provider":"postmark","token":"..."}. Postmark, Amazon SES, Mailgun, SendGrid eta Resend onartzen dira.QUIRE_SMTP_URL:smtp://user:password@host:587. Helburu honetan soilik; zerbitzaririk gabeko helburuek SMTP blokeatzen dute.
QUIRE_MAIL_FROM da bidaltzailearen helbidea. Quire probatzeko, abiarazi devmail profila, ezarri QUIRE_SMTP_URL=smtp://mailpit:1025 eta irakurri posta http://localhost:8025 helbidean.
Aukerako zerbitzuak
| Ezarpena | Profilarekin |
|---|---|
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 edo QUIRE_MEILISEARCH_URL |
Kanpoko bilaketa; bestela, Postgresen testu-bilaketa osoa |
QUIRE_BREACH_CHECK_PROVIDER=off, QUIRE_BREACH_CHECK_URL |
Pasahitz-filtrazioaren egiaztapena. Lehenespenez aktibatuta dago api.pwnedpasswords.com zerbitzuaren aurka (hash-aren bost karaktereko aurrizkia baino ez da bidaltzen); off aukerak desaktibatzen du, eta URLak zuk ostatatutako range API batera bideratzen du |
Behagarritasuna
OTEL_EXPORTER_OTLP_ENDPOINT aldagaiak prozesu guztiek aztarnak eta metrikak bidaltzen dituzten biltzailea izendatzen du; observability profilarekin http://otelcol:4318 da, eta docker/otel-collector.yaml da zure backend-erako esportatzailea gehitzeko fitxategia. Web-mailak, worker-ak, scheduler-ak, content-ek eta collab prozesuek OTLP/HTTP bidez esportatzen dituzte tarteak (web-eskaerak, maizterraren datu-baseko transakzioak, worker-en lanak eta irteerako deiak) ezarrita dagoenean, eta minuturo metrikak helbide berera (OTEL_METRICS_EXPORTER=none ezarriz gero desaktibatzen dira). OTEL_TRACES_SAMPLER_ARG aldagaiak gordeko diren aztarnen proportzioa ezartzen du. Erregistroak irteera estandarrera bidaltzen dira LOG_LEVEL mailan, eta Composek biratu egiten ditu. Aztarnek ez dute datu pertsonalik eramaten.
Eskualdeko irteera (EBko datu-egoitza)
QUIRE_REGION=eu aldagaiak adierazten du pilak Europar Batasuneko erakundeak zerbitzatzen dituela. Orduan, worker-ak EBko eskualdean finkatuta dagoen erakunde baten alde egindako irteerako eskaera guztiak baimen-zerrenda baten arabera mugatzen ditu (21-compliance.md ataleko 8.1 puntua). Baimen-zerrendak eskualderako konfiguratutako zerbitzuek deklaratutako ostalariak biltzen ditu (biltegiratze-amaiera, posta-hornitzailea, ostatatutako bideo-hornitzailea, erakundearen berezko biltegiratze-helburuak, AI hornitzaileak eta posta-kontua), salbuespen aktibo baten pean dagoen edozein zerbitzuren ostalariak, eta QUIRE_EGRESS_ALLOW_HOSTS aldagaian zerrendatutako ostalariak. Beste edozein ostalari publikora egindako eskaera ukatu egiten da bidali aurretik; ukapena erakundearen auditoretza-erregistroan idazten da privacy/egress_refused gisa, eta Betetzea, Datu-egoitza atalean zerrendatzen da.
| Ezarpena | Balioak | Eragina |
|---|---|---|
QUIRE_EGRESS_ALLOW_HOSTS |
Ostalari-izenen komaz bereizitako zerrenda, edo *.example.org azpidomeinu guztiak adierazteko |
EBko erakunde batek atzi ditzakeen ostalari gehigarriak. Webhook, xAPI eta SIEM helbideak, blog-jarioak eta Amazon SES ostalariak hemen jarri behar dira, erakundeak berak aukeratzen dituelako eta zerbitzuek ez dituztelako deklaratzen. Loopback, helbide pribatuak eta web edo clamav bezalako etiketa bakarreko izenak zure sarekoak dira, eta ez dira inoiz egiaztatzen |
Erresuma Batuko eta AEBetako erakundeek ez dute ostalari-zerrendaren mugarik; zerbitzuen eskualde-egiaztapenei eusten diete. Ezarri zerrenda worker-ean; administrazio-orriak web-mailan irakurtzen du baimen-zerrenda erakusteko, beraz jarri docker/.env fitxategian, zerbitzu guztiek irakurtzen baitute.
Aplikazio-egiaztapenak errore argia eta auditoretza-sarrera sortzen ditu, baina ez da bermea: kodea oker egon daiteke. Bermea sarea da. Composek ez du hori automatikoki betearazten. Eskualdeko pila baterako, jarri worker eta web zerbitzuak internal: true sare batean, eta utzi irteerarako bide bakar gisa egress proxy bat (adibidez, Squid edo tinyproxy edukiontzi bat), QUIRE_EGRESS_ALLOW_HOSTS zerrendako ostalari berak eta konfiguratutako zerbitzuen ostalariak onartzen dituena; ezarri HTTPS_PROXY zerbitzu horientzat. Egoitza-orriak aplikazioak baimentzen dituen ostalari zehatzak zerrendatzen ditu, zerrendarekin alderatu ahal izateko.
Osasuna
| Amaiera-puntua | Esanahia |
|---|---|
/healthz |
Bizirik dago: prozesuak erantzuten du. Composeko osasun-egiaztapenek hau erabiltzen dute |
/readyz |
Prest dago: mendekotasunak eskura daude eta aukerako zerbitzu bakoitza konfiguratuta dagoen ala ez adierazi da. Seinalatu hemen zure karga-orekatzailea |
docker compose -f docker/compose.yaml ps komandoak zerbitzu bakoitzaren osasun-egoera erakusten du.
TLS
proxy zerbitzua (Caddy, Apache-2.0, docker/caddy/Caddyfile) pila lehenetsiaren barruan dago. 80 eta 443 portuetan erantzuten du eta honela bideratzen du:
| Ostalaria edo bidea | Nora bideratzen da |
|---|---|
QUIRE_PROXY_CONTENT_HOST |
content |
QUIRE_PROXY_APP_HOST, maizterren azpidomeinu guztiak eta domeinu pertsonalizatuak |
web |
/_collab/ ostalari horietan |
collab (websocketa, QUIRE_COLLAB_URL) |
/_realtime/connection/ ostalari horietan |
centrifugo-ren bezero-websocketa; zerbitzariaren APIa ez da inoiz kanpora erakusten |
/_images/ ostalari horietan |
imgproxy, images profilarekin (IMGPROXY_URL) |
init-env.sh scriptak QUIRE_PROXY_APP_HOST, QUIRE_PROXY_CONTENT_HOST, QUIRE_PROXY_HTTPS_PORT, QUIRE_COLLAB_URL eta IMGPROXY_URL aldagaiak bi jatorrietatik eratorriko ditu, elkarrengandik aldendu ez daitezen. Aldatu elkarrekin jatorri bat eskuz aldatzen baduzu.
Ziurtagirien konfigurazioa QUIRE_PROXY_TLS aldagaiaren araberakoa da:
-
internal(lehenetsia): Caddyren ziurtagiri-autoritate propioa,localhost,*.localhostetalvh.medomeinuetarako. Fidatu behin haren erro-ziurtagiriaz, eta nabigatu:docker compose -f docker/compose.yaml cp \ proxy:/data/caddy/pki/authorities/local/root.crt ./quire-local-ca.crtGehitu
quire-local-ca.crtsistemaren edo nabigatzailearen fidagarritasun-biltegian.curlkomandoarekin, eman fitxategia--cacertaukeraren bidez. -
Posta-helbide bat: ostalari-izen errealetarako ACME ziurtagiri automatikoak (Let’s Encrypt, ondoren ZeroSSL). DNSak bi jatorrietarako eta maizterren ostalari guztietarako hona bideratu behar du; 80 eta 443 portuek Internetetik irisgarri egon behar dute.
Maizterren ostalarientzako ziurtagiriak eskaeraren arabera igortzen dira lehen bisitan soilik, eta webak egiaztatzen duenean izena instalazio honi dagokiola (/tls-allowed, Compose sarean galdetuta). Ez da wildcard ziurtagiririk edo DNS hornitzailearen pluginik behar, eta izen bat ostalari honetara bideratzen duen ezezagun batek ezin du ziurtagiri-eskaerarik eragin. Ziurtagiriak eta autoritate lokala caddy-data bolumenean gordetzen dira; egin horien babeskopia gainerakoekin batera internal erabiltzen baduzu.
Webak X-Forwarded-For goiburua proxyarengandik soilik hartzen du fidagarritzat: proxyak helbide finkoa du (QUIRE_PROXY_ADDRESS, lehenetsia 172.29.64.10) sare finko batean (QUIRE_COMPOSE_SUBNET), eta QUIRE_TRUSTED_PROXY_CIDRS aldagaiak helbide hori izendatzen du. Azpisarea ostalariko sare batekin bat badator, aldatu biak eta exekutatu docker compose down up egin aurretik.
Zure alderantzizko proxyaren atzean
Horren ordez lehendik darabilzun karga-orekatzailea edo proxy-a erabiltzeko, utzi proxy zerbitzua abiarazi gabe (docker compose up -d --scale proxy=0) eta amaitu TLS web (8080), content (8081), collab (1234, websocketa) eta centrifugo (8000, websocketa) zerbitzuen aurrean. Ezarri helbide publikoak QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN eta QUIRE_COLLAB_URL (wss://) aldagaien bidez, eta proxyaren helbide-barrutia QUIRE_TRUSTED_PROXY_CIDRS aldagaian.
Arazoak konpontzea
initzerbitzua “QUIRE_DATABASE_ID is not a UUID” mezuarekin amaitzen da: ezarri UUIDauuidgenerabiliz.webzerbitzua berrabiarazi egiten da “did not start on compose” mezuarekin: erregistroak bete ezin dituen ezarpen guztiak eta horien ordez zer erabili zerrendatzen ditu..envfitxategian rol-pasahitza aldatzeak lehen abiaraztearen ondoren ez du eraginik: hasieratze-scripta behin bakarrik exekutatzen da. ErabiliALTER ROLE.- Igoerek eskaneatze-errorea ematen dute
CLAMAV_URLezarrita dagoela: ClamAVek sinadurak deskargatzen ditu lehen abiaraztean, eta horrek minutu batzuk behar ditu.