Wannan shi ne cikakken samfurin a uwar garke ɗaya: tsarin LMS, ayyukan baya,
hidimomin ainihin-lokaci da gyaran haɗin gwiwa, da kowane hidima na zaɓi a bayan
profile. Tsarin yana cikin sashen 2 na docs/architecture/23-ops.md.
Sauran manufa: Vercel da Cloudflare Workers suna gudanar da sashen yanar gizo kawai. Ana bayani kan sabuntawa a upgrade.md, kuma ajiyar bayanai da atisayen maido a backup-restore.md.
Abin da ake buƙata
- Docker Engine 27 ko sama, tare da Compose plugin 2.30 ko sama.
- Cores 4 na CPU da ƙwaƙwalwar 8 GB ga tsarin tsoho; cores 8 da ƙwaƙwalwar
16 GB tare da
--profile full(ClamAV shi kaɗai yana riƙe kusan 1.5 GB na sa hannun cuta). - Sunan DNS ga sashen yanar gizo da wani na biyu ga abun ciki marar amana. Dole su zama hosts daban: kunshin SCORM da HTML da aka loda suna gudana daga asalin abun ciki domin kada su taɓa karanta kukis na LMS.
- Don gwajin gida,
lvh.meda*.localhostsuna warwarewa zuwa 127.0.0.1, kamar yaddadocker/.env.exampleke amfani da shi. Hidimarproxyta tsarin tana samar da HTTPS ga duka tare da cibiyar takardar shaida ta gida, saboda haka babu abin girkawa dabam (duba “TLS”). - Tashoshi 80 da 443 su kasance a buɗe a uwar garken (
QUIRE_PROXY_HTTP_PORTdaQUIRE_PROXY_HTTPS_PORTna iya sauya su).
Gudanarwa ta farko
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 yana rubuta docker/.env daga docker/.env.example
da dukkan sirrika da aka ƙirƙira (kalmomin sirrin ma’ajiya, maɓallan sa hannu da
babba, maɓallan abun ciki), da maɓallin sa hannun matakin tantancewa a
docker/secrets/audit-signing-key.pem, wanda Compose ke haɗawa da masu aiki a
matsayin sirri. Yana buƙatar sh, awk da openssl kawai, kuma yana ƙin rubuta
kan docker/.env da ya riga ya wanzu. Kwafi fayilolin biyu zuwa wajen uwar garken:
idan babu QUIRE_MASTER_KEY, ma’ajiya da aka dawo ba za ta iya warware shaidar
shiga da aka adana ba. Don cika fayil ɗin da hannu, yi cp docker/.env.example docker/.env;
fayil ɗin yana bayyana yadda ake ƙirƙirar kowane sirri.
Dole asalin adireshin biyu su zama https: hidimar abun ciki tana ƙin http mara
tsaro a yanayin samarwa, kuma dole kada su kasance a ƙarƙashin yankin da za a iya
rajista iri ɗaya. Hidimar proxy ce ke kare su da TLS (duba “TLS”);
init-env.sh yana ƙin asalin http://.
Tsarin yana farawa bisa tsayayyen jeri, kuma kowane mataki yana jiran wanda ya gabace shi:
postgresyana nuna lafiya. A farawa na farko, rubutun saita shi (docker/postgres/init/90-passwords.sh) yana saita kalmomin sirri guda huɗu.migrateyana aiwatar da duk ƙaura, sannan yana shirya jerin aiki a ma’ajiya ta sarrafawa da kowace ma’ajiya ta ƙungiya ta musamman; yana tabbatar sun yi daidai, daga nan ya fita (docs/ops/upgrade.md). Ana gudanar da ƙaura a kowane farawa kuma ba sa maimaita tasiri, saboda haka sabuntawa sabon hoto ne da sake farawa.init(apps/web/src/first-run.ts) yana rajistar ma’ajiya ta manhaja a ƙarƙashinQUIRE_DATABASE_ID, kuma idan an saitaQUIRE_SETUP_ADMIN_EMAIL, yana ƙirƙirar ƙungiya ta farko da mai gudanarwarta. Ana buga adireshin shiga da kalmar sirri da aka ƙirƙira sau ɗaya adocker compose logs init.web,content,worker,scheduler,collabdacentrifugosuna farawa.proxyyana farawa idanwebdacontentsun nuna lafiya.
Buɗe https://demo. tare da yankin manhajarka (log na init yana nuna ainihin
adireshin shiga), sannan shiga. A girkar gida, fara amincewa da cibiyar takardar
shaida ta proxy (duba “TLS”). Canza kalmar sirrin da aka ƙirƙira a /account/security.
Tsarin da aka fara ba tare da sirrin da ake buƙata ba yana ƙin farawa kuma ya ambaci saitin da ya ɓace a log. Babu abin da ke farawa da saituna rabin-girma.
Hidimomi da profiles
| Hidima | Profile | Aikinta |
|---|---|---|
| postgres | kullum | Ma’ajiya (PostgreSQL 18 da pgvector, an gina daga docker/postgres.Dockerfile), WAL kuma ana adanawa tun farawa na farko |
| migrate, init | kullum | Sau ɗaya: ƙaura, sannan farawa ta farko |
| web | kullum | LMS, a QUIRE_HTTP_PORT (8080) |
| content | kullum | Asalin abun ciki marar amana, a QUIRE_CONTENT_PORT (8081) |
| worker | kullum | Ayyukan baya: imel, rahotanni, sarrafa fayiloli, webhooks |
| scheduler | kullum | Ayyukan da ake maimaitawa: yana rajistar jadawalin lokacin aiki 64 ya miƙa su ga mai aiki; shugaba ɗaya a lokaci guda |
| collab | kullum | Websocket na gyaran haɗin gwiwa a QUIRE_COLLAB_HTTP_PORT (1234) |
| centrifugo | kullum | Rarraba abubuwan ainihin-lokaci a QUIRE_REALTIME_PORT (8000) |
| proxy | kullum | Caddy, ƙofar TLS a tashoshi 80 da 443 (duba “TLS”) |
| valkey | cache |
Ma’ajiyar wucin gadi da iyakokin sauri |
| clamav | scan |
Binciken malware a abin da aka loda |
| gotenberg | preview |
Samfotin takardar Office zuwa PDF, samar da takardun shaida |
| imgproxy | images |
Sake girma da sauya hotuna |
| transcoder | video |
Hoton mai aiki mai ffmpeg ƙarƙashin LGPL kawai, don siffofin bidiyo |
| seaweedfs | storage |
Ma’ajiyar abu mai dacewa da S3 a wannan uwar garke |
| otelcol | observability |
Mai tattara bayanan OpenTelemetry |
| mailpit | devmail |
Karɓar duk imel mai fita domin gwada Quire |
| backup | backup |
Ajiyar tushe sau ɗaya; duba backup-restore.md |
| backup-scheduler, backup-offsite | backup |
Ajiyar tushe duk bayan QUIRE_BACKUP_INTERVAL_HOURS, da kwafi ɓoyayye a wajen uwar garke tare da gwajin tantancewa na mako-mako |
| h5p | h5p |
Hoton kayan H5P LTI 1.3 da ka bayar a QUIRE_H5P_IMAGE, a QUIRE_H5P_PORT (8090); duba “Haɗa mai samar da H5P” |
--profile full yana fara kowace hidima ta zaɓi sai backup da h5p.
Fara ɗaya da docker compose -f docker/compose.yaml --profile scan up -d.
Ba tare da hidimar zaɓi ba, Quire yana aiki kuma yana bayyana abin da babu: babu
mai binciken malware yana nufin ana adana loda ba tare da dubawa ba kuma ana
sanar da mai gudanarwa; babu Gotenberg yana sa fayiloli su bayar da saukewa maimakon
samfoti; babu mai canza bidiyo yana kunna asalin fayil ɗin bidiyo.
An lissafa dukkan hotunan wasu ɓangarori da wajibcin lasisinsu a
docker/third-party-containers.yaml.
Haɗa mai samar da H5P
Quire ba ya haɗawa ko bayar da injin H5P ko ƙarin sabis (ADR 0019). Idan kana amfani da H5P, samar da rajistar masaukin girgije naka ko gudanar da naka H5P dabam da Quire. Yi masa rajista a matsayin kayan LTI 1.3 na waje, sannan ƙara abun cikinsa ga kwasa-kwasai a matsayin ayyukan kayan aiki. Quire yana musayar maki da ci gaban aiki/tantancewa ta LTI Assignment and Grade Services (AGS). Idan mai samarwa kuma yana aika kalaman xAPI, saita wannan daban ga ma’ajiyar kalaman xAPI ta Quire; musayar maki/ci gaba ta AGS ba ta aika kalaman xAPI ba. Shigo da Moodle yana bayyana cewa ayyukan H5P suna buƙatar haɗin kayan LTI. Mai samarwa ne har zuwa ƙarshe ke da alhakin injin H5P, rubuta abun ciki, ma’ajiyar abun ciki da tarihin ƙoƙari.
Domin gudanar da naka H5P a wannan uwar garke, saita QUIRE_H5P_IMAGE zuwa hotonsa
kuma fara profile na h5p. Compose yana buɗe shi a QUIRE_H5P_PORT (8090) ya
adana bayanansa a volume na h5p-data; hoton da wajibcinsa naka ne.
Saituna
Kowane tsari yana karanta docker/.env. Samfurin docker/.env.example yana
lissafa kowane saiti da tsohonsa. Ƙungiyoyin:
Adiresoshi
| Saiti | Ma’ana |
|---|---|
QUIRE_APP_ORIGIN |
Adireshin jama’a na LMS, kamar https://learn.example.com |
QUIRE_CONTENT_ORIGIN |
Asalin abun ciki, wani host dabam |
QUIRE_PLATFORM_DOMAINS |
Yankunan da ƙungiyoyi suke, an raba da waƙafi |
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 a nan. Duba sauran jagororin vercel da cloudflare |
QUIRE_TRUSTED_PROXY_CIDRS |
Wakilan baya da aka amince da X-Forwarded-For nasu |
Sirrika
| Saiti | Ma’ana |
|---|---|
QUIRE_SECRET_KEY |
Yana sa hannu ga zaman shiga da alamomi. Haruffan hex 64 |
QUIRE_MASTER_KEY |
Yana lulluɓe shaidar shiga da aka adana kamar SSO da sirrin webhook. Bytes 32, base64. Dole sashen yanar gizo da mai aiki su yi amfani da ƙima iri ɗaya. Juya maɓalli: key-rotation.md |
QUIRE_MASTER_KEY_VERSION |
Alamar sigar maɓallin babba, v1 idan ba a saita ba. Ɗaga ta idan ka juya maɓalli |
QUIRE_MASTER_KEY_RETIRED |
Tsofaffin maɓallan da ake buƙata domin karanta abin da suka kulle, a matsayin v1=<base64>. Cire bayan kammala juyawa ba tare da abin da ba a warware ba |
QUIRE_COLLAB_SIGNING_KEY |
Yanar gizo da collab suna rabawa domin sa hannu ga alamomin gyara |
QUIRE_BACKUP_SIGNING_KEY |
Yana sa hannu ga ajiyar kwafin kwas (zaɓi ne) |
Riƙe kwafin QUIRE_MASTER_KEY a wani wuri dabam da wannan uwar garke. Ma’ajiya
da aka dawo ba za ta iya warware shaidar shiga da take riƙe ba idan babu shi.
Ma’ajiya
| Saiti | Ma’ana |
|---|---|
POSTGRES_PASSWORD |
Superuser, kwantena da ajiyar bayanai ne ke amfani da shi |
QUIRE_DB_APP_PASSWORD, QUIRE_DB_MIGRATOR_PASSWORD, QUIRE_DB_REPORT_PASSWORD, QUIRE_DB_AUDIT_PASSWORD |
Kalmomin sirrin matsayi, ana saita su a farawa na farko |
DATABASE_URL |
Matsayin manhaja. Ana amfani da tsaron matakin layi ga kowace tambaya |
DATABASE_MIGRATOR_URL, QUIRE_MIGRATION_URL |
Matsayin mai ƙaura, ga migrate da init |
QUIRE_SUPERUSER_URL |
Farawa ta farko ce kawai ke amfani da shi |
QUIRE_REPORT_DATABASE_URL |
Matsayin rahoto karatu-kawai, ga rahotanni da mai gina rahoto |
QUIRE_AUDIT_DATABASE_URL |
Matsayin tantancewa, ga na’urar tantancewa da fitar da SIEM |
QUIRE_DATABASE_ID |
Kowane UUID, ba ya canzawa tsawon rayuwar shigarwa |
Ana amfani da kalmomin sirrin matsayi ne idan an ƙirƙiri volume na ma’ajiya a
farkon lokaci. Domin canza ɗaya daga baya, yi amfani da ALTER ROLE, sannan
sabunta URL mai dacewa.
QUIRE_REPORT_DATABASE_URL na ma’ajiya ta zahiri ce da DATABASE_URL ya nuna.
Ga kowace ma’ajiya ta zahiri da aka yi rajista, saita nata URL na haɗin
quire_report a muhallin yanar gizo da mai aiki, sannan saka sunan sauyin yanayi
a filin Sauyin yanayin rahoto na ma’ajiyar a matsayin env:NAME. Dole nuni ya
nuna ma’ajiya ɗaya da haɗin manhajar, zai fi kyau kwafin karatunta. Kowane fuskar
rahoton tana bin ƙungiya zuwa haɗin rahoto na ma’ajiyarta: mai gina rahoto da
rahotonnin da aka adana, isarwar jadawali, fitar da rahoto, nazari, rajistar
tantancewa, albarkatun tantancewar REST da binciken tantancewa na mataimaki. Babu
wanda ke aron URL na rahoton wata ma’ajiya. Idan ma’ajiya ba ta da haɗin rahoto,
rahotanni na yau da kullum suna gudana ta haɗin manhajar ma’ajiyar kanta; amma
nazari da duk karatun tantancewa suna ƙin aiki su faɗi dalili, domin matsayin
manhaja ba zai iya karanta tarihin tantancewa ba.
Na’urorin aiki
| Saiti | Ƙimomin wannan siga | Bayanan kula |
|---|---|---|
QUIRE_STORAGE_DRIVER |
local (tsoho), s3 ko azure |
local yana adana fayiloli a volume na files. s3 yana haɗa AWS S3, R2, GCS da sauran ma’ajiyoyi masu dacewa da S3 tare da lodawa da za a ci gaba daga inda aka tsaya |
QUIRE_REALTIME_DRIVER |
inprocess (tsoho), sse, centrifugo ko durable_objects |
inprocess ya dace da kwantena yanar gizo ɗaya; yi amfani da centrifugo ko sse idan sun fi ɗaya |
QUIRE_CACHE_DRIVER |
memory (tsoho), postgres ko valkey |
memory na tsari ɗaya ne; yi amfani da valkey ko postgres domin iyakar sauri ta shafi kwantena gaba ɗaya |
QUIRE_VIDEO_DRIVER |
ffmpeg (tsoho) ko progressive_mp4 |
Ko mai samarwa na masaukin girgije: Cloudflare Stream, Mux ko Bunny, ta amfani da maɓallansu |
QUIRE_IMAGE_DRIVER |
noop (tsoho), imgproxy ko cloudflare |
noop yana bayar da hoto da girmansa na asali. imgproxy yana buƙatar profile na images da saitunan da ke ƙasa; cloudflare yana amfani da Cloudflare Images |
QUIRE_MEETING_PROVIDER |
bbb, zoom, teams, meet, jitsi ko in_process |
Tsohon mai samar da zaman kai tsaye na dandamali. Idan babu, ana faɗin cewa zaman kai tsaye ba a saita ba, har sai ƙungiya ta haɗa asusunta ƙarƙashin haɗin kai na mai samar da zaman. Asusun ƙungiya ya fi wannan ƙima a ko da yaushe. Ana karanta saitunan kowane mai samarwa (BBB_URL da BBB_SECRET, masu canjin ZOOM_*, TEAMS_*, GOOGLE_MEET_* da JITSI_*) ne kawai ga mai samarwar da aka ambata a nan |
QUIRE_MEETING_REGIONS |
Jerin eu, uk, us da aka raba da waƙafi |
Inda tsohon mai samarwar dandamali ke sarrafa taro. Idan babu, ba a gwada shi da ƙungiyar da aka kayyade ga yanki, kamar da. Asusun ƙungiya yana bayyana yankunansa a shafinsa |
Ana ƙin ƙimar na’urar da wannan siga ba ta ƙunsa ba yayin farawa na sashen yanar gizo, tare da ambaton saitin, maimakon a maye gurbinsa a ɓoye da tsohon ƙima.
Hotuna
Shafuka suna neman hotuna a girma huɗu tabbatattu ta
/api/files/{id}/image/{size}, wanda ke duba izinin shiga iri ɗaya da fayil ɗin
sannan ya karkatar zuwa hidimar hoto. Kowace ƙungiya na iya neman sabbin haɗin
hoto da girma QUIRE_IMAGE_SPECS_PER_HOUR (tsoho 2000) a awa guda; ba a ƙirga
girman da aka riga aka samar a wannan awa ba. Yi amfani da valkey ko postgres
ga QUIRE_CACHE_DRIVER idan akwai kwantena yanar gizo fiye da ɗaya, domin iyakar
ta yi aiki a cikinsu.
| Saiti | Na’urar aiki | Bayanan kula |
|---|---|---|
IMGPROXY_URL |
imgproxy |
Adireshin da burauza ke amfani da shi wajen isa imgproxy, misali https://images.example.org. Profile na images yana wallafa shi a QUIRE_IMAGES_PORT (8082) |
IMGPROXY_KEY, IMGPROXY_SALT |
imgproxy |
Zaren hex, ƙimomin da aka fara imgproxy da su. Samar da kowanne ta openssl rand -hex 32. Quire yana sa hannu ga kowane adireshin hoto da su, saboda haka imgproxy ba ya samar da abin da Quire bai nema ba |
QUIRE_IMAGE_SOURCE_ORIGIN |
imgproxy mai ajiyar gida |
Inda imgproxy ke samo asalin hotuna. Compose yana saita http://web:3000. Idan ajiyar s3 ko azure ce, imgproxy yana ɗauko daga bokiti kuma ba ya amfani da wannan |
CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_IMAGES_TOKEN, CLOUDFLARE_IMAGES_ACCOUNT_HASH |
cloudflare |
Alamar API mai izinin gyara Images, da hash na asusu daga Images, Developer resources. Kunna variants masu sassauci ga asusun |
CLOUDFLARE_IMAGES_SIGNING_KEY |
cloudflare |
Zaɓi ne. Idan an saita, hotuna na sirri ne kuma kowane adireshi yana da sa hannu kuma yana ƙarewa. Idan babu, hotuna na jama’a ne a adireshin da aka samo daga QUIRE_SECRET_KEY waɗanda ba za a iya hasashensu ba |
Cloudflare Images yana riƙe kwafin asalin kowane hoto da yake bayarwa. Idan an share fayil, mai aiki yana share wannan kwafi kafin asalin.
Jerin aiki
Ayyukan baya suna amfani da pg-boss a wannan ma’ajiya ta Postgres, saboda haka
babu hidimar jerin aiki da za a gudanar ko saitawa. Ana sanya aiki cikin jerin
a cikin ma’amala ɗaya da canjin da ya haifar da shi, don haka katsewa ba zai rasa
shi ko aika shi sau biyu ba. QUIRE_QUEUE_DRIVER shi ne pgboss a nan, tsohonsa;
vercel da cloudflare suna matsar da sanarwa da isar da webhook masu sauƙi
kawai zuwa jerin aiki na dandalinsu, kuma jagororin Vercel da Cloudflare suna
bayyana su da yadda sassan yanar gizonsu ke saka ayyuka.
Imel
Saita ɗaya daga cikin:
QUIRE_EMAIL_PROVIDER_CONFIG: abun JSON mai nuna mai samar da HTTP da shaidar shiga, kamar{"provider":"postmark","token":"..."}. Ana goyon bayan Postmark, Amazon SES, Mailgun, SendGrid da Resend.QUIRE_SMTP_URL:smtp://user:password@host:587. Wannan manufa kaɗai ce; manufofin serverless suna toshe SMTP.
Mai aikawa shi ne QUIRE_MAIL_FROM. Domin gwada Quire, fara profile na devmail,
saita QUIRE_SMTP_URL=smtp://mailpit:1025, sannan karanta imel a http://localhost:8025.
Hidimomi na zaɓi
| Saiti | Tare da profile |
|---|---|
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 ko QUIRE_MEILISEARCH_URL |
Bincike na waje; idan babu, rubutu cikakke na Postgres |
QUIRE_BREACH_CHECK_PROVIDER=off, QUIRE_BREACH_CHECK_URL |
Duba kalmar sirri da ta fallasa. A kunne ta tsoho zuwa api.pwnedpasswords.com (gajerun haruffan hash biyar ne ake aikawa); off yana kashewa, URL kuma yana nuna API na kewayo da kake gudanarwa |
Sa ido
OTEL_EXPORTER_OTLP_ENDPOINT yana nuna mai tattarawa da kowane tsari ke aika
bibiyoyi da ma’aunai zuwa gare shi; tare da profile na observability shi ne
http://otelcol:4318, kuma docker/otel-collector.yaml shi ne inda za ka ƙara
mai fitar da bayanai na tsarinka. Idan an saita shi, sashen yanar gizo, mai aiki,
mai tsara aiki, abun ciki da collab suna fitar da spans ta OTLP/HTTP (buƙatun
yanar gizo, ma’amalolin ma’ajiya ta ƙungiya, ayyukan ma’aikaci da kiran waje),
kuma suna aika ma’aunai zuwa wannan wuri kowane minti (OTEL_METRICS_EXPORTER=none
yake kashe su). OTEL_TRACES_SAMPLER_ARG yana saita rabon bibiyoyin da za a riƙe.
A LOG_LEVEL, ana aika log zuwa daidaitaccen fitarwa, Compose kuma yana juya su.
Bibiyoyi ba sa ɗaukar bayanan mutum.
Fitar da bayanai bisa yanki (zama a EU)
QUIRE_REGION=eu yana nuna cewa tsarin yana yiwa ƙungiyoyin Tarayyar Turai hidu. Mai aiki yana riƙe duk buƙatun waje da aka yi wa ƙungiyar da aka kayyade ga EU bisa jerin izini (sashen 8.1 na 21-compliance.md). Jerin izini ya ƙunshi hosts da hidimomin da aka saita suka bayyana ga yankin (ƙarshen ma’ajiya, mai aika imel, mai samar da bidiyo na masaukin girgije, wuraren ajiyar ƙungiya, masu samar da AI da asusun imel), hosts na kowace hidima a ƙarƙashin keɓancewa mai aiki, da hosts ɗin da ka lissafa a QUIRE_EGRESS_ALLOW_HOSTS. Ana ƙin buƙatar zuwa wani host na jama’a kafin aikawa, ana rubuta ƙin a tarihin tantancewar ƙungiya a matsayin privacy/egress_refused, kuma ana lissafa shi ƙarƙashin Compliance, Data residency.
| Saiti | Ƙimomi | Tasiri |
|---|---|---|
QUIRE_EGRESS_ALLOW_HOSTS |
Jerin sunayen host da aka raba da waƙafi, ko *.example.org ga duk ƙananan yankuna |
Ƙarin hosts da ƙungiyar EU za ta iya kaiwa. Hanyoyin ƙarshen webhook, xAPI da SIEM, ciyarwar blog da hosts na Amazon SES suna nan, domin zaɓin ƙungiya ne kuma babu hidimar da ke bayyana su. Adireshin madauwari, masu zaman kansu da sunan lakabi ɗaya kamar web ko clamav na hanyar sadarwarka ne kuma ba a taɓa bincika su |
Ba a tilasta wa ƙungiyoyin UK da US jerin hosts; duba yankin hidima yana aiki garesu. Saita jerin ga mai aiki; shafin mai gudanarwa yana karanta shi a sashen yanar gizo domin nuna jerin, saboda haka saka shi a docker/.env, wanda kowane hidima ke karantawa.
Dubawar manhaja tana ba da kuskure bayyananne da shigarwar tantancewa, amma ba ita ce tabbaci ba: lamba na iya yin kuskure. Hanyar sadarwa ce tabbaci. Compose ba ya tilasta wannan. Ga tsarin yanki, saka hidimomin worker da web a hanyar sadarwa internal: true wadda hanya ɗaya tak zuwa waje ita ce wakilin fitar da bayanai (misali kwantenar Squid ko tinyproxy), wanda ke ba da izini ga hosts iri ɗaya da QUIRE_EGRESS_ALLOW_HOSTS tare da hosts na hidimomin da ka saita; sannan saita HTTPS_PROXY ga waɗannan hidimomin. Shafin zama a yanki yana lissafa ainihin hosts ɗin da manhaja ta yarda, saboda haka ana iya kwatanta jerin biyun.
Lafiya
| Wurin ƙarshe | Ma’ana |
|---|---|
/healthz |
Rai: tsari yana amsawa. Gwajin lafiyar Compose yana amfani da wannan |
/readyz |
Shiri: dogarori suna samuwa, kuma an bayar da rahoton ko an saita kowane hidima na zaɓi. Sanya mai rarraba zirga-zirga ya duba nan |
docker compose -f docker/compose.yaml ps yana nuna lafiyar kowane hidima.
TLS
Hidimar proxy (Caddy, Apache-2.0, docker/caddy/Caddyfile) tana cikin tsarin tsoho. Tana amsawa a tashoshi 80 da 443, tana turawa zuwa:
| Host ko hanya | Ana kaiwa ga |
|---|---|
QUIRE_PROXY_CONTENT_HOST |
content |
QUIRE_PROXY_APP_HOST, kowane ƙaramin yankin ƙungiya da yankin musamman |
web |
/_collab/ a waɗannan hosts |
collab (websocket, QUIRE_COLLAB_URL) |
/_realtime/connection/ a waɗannan hosts |
websocket na abokin centrifugo; ba a taɓa buɗe API na uwar garken ba |
/_images/ a waɗannan hosts |
imgproxy, tare da profile na images (IMGPROXY_URL) |
init-env.sh yana samo QUIRE_PROXY_APP_HOST, QUIRE_PROXY_CONTENT_HOST, QUIRE_PROXY_HTTPS_PORT, QUIRE_COLLAB_URL da IMGPROXY_URL daga asalin biyu, don haka ba sa rabuwa. Gyara su tare idan ka canza asali da hannu.
Takardun shaida suna bin QUIRE_PROXY_TLS:
-
internal(tsoho): cibiyar takardar shaidar Caddy, galocalhost,*.localhostdalvh.me. Amince da tushe sau ɗaya sannan ka shiga:docker compose -f docker/compose.yaml cp \ proxy:/data/caddy/pki/authorities/local/root.crt ./quire-local-ca.crtƘara
quire-local-ca.crtzuwa ma’ajiyar amincewar tsarin ko burauza.curlyana karɓarsa ta--cacert. -
Adireshin imel: takardun ACME na atomatik (Let’s Encrypt, sannan ZeroSSL) ga ainihin sunayen hosts. Dole DNS na asali biyu da kowane host na ƙungiya su nuna nan, tashoshi 80 da 443 kuma su kasance a buɗe daga intanet.
Ana bayar da takardar host na ƙungiya bisa buƙata, a ziyarar farko, kuma sai idan web ya tabbatar sunan na wannan shigarwa ne (/tls-allowed, ana tambayarsa a hanyar Compose). Ba a buƙatar takardar wildcard ko plugin na mai samar da DNS, kuma baƙon da ya sa suna ya nuna uwar garken ba zai iya sa a nema masa takarda ba. Takardu da cibiyar amincewar gida suna cikin volume na caddy-data; yi musu ajiyar bayanai tare da sauran idan kana amfani da internal.
web yana amincewa da X-Forwarded-For daga wakilin baya kaɗai: wakilin yana da tsayayyen adireshi (QUIRE_PROXY_ADDRESS, tsoho 172.29.64.10) a ƙaramin yanki tsayayye (QUIRE_COMPOSE_SUBNET), kuma QUIRE_TRUSTED_PROXY_CIDRS yana bayyana wannan adireshin. Idan ƙaramin yanki ya yi karo da hanyar sadarwa a uwar garken, canza su duka biyu sannan gudanar da docker compose down kafin up.
Bayan wakilin baya naka
Domin amfani da mai rarraba zirga-zirga ko wakili da kake gudanarwa, bar proxy a kashe (docker compose up -d --scale proxy=0) sannan kawo ƙarshen TLS a gaban web (8080), content (8081), collab (1234, websocket) da centrifugo (8000, websocket). Saita adireshin jama’a a QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN da QUIRE_COLLAB_URL (wss://), da iyakar adireshin wakilinka a QUIRE_TRUSTED_PROXY_CIDRS.
Gyara matsaloli
initya fita da “QUIRE_DATABASE_ID is not a UUID”: saita shi dauuidgen.webyana sake farawa da “did not start on compose”: log yana lissafa kowane saiti da ba zai iya amfani da shi ba da abin da za a saita a madadinsa.- Canza kalmar sirrin matsayi a
.envbayan farawa na farko ba ya yin komai: rubutun saitawa sau ɗaya ne kawai ke gudana. Yi amfani daALTER ROLE. - Loda yana kasa da kuskuren binciken cuta yayin da aka saita
CLAMAV_URL: ClamAV yana sauke sa hannunsa a farkon farawa, wannan yana ɗaukar ’yan mintuna.