Přejít k obsahu

Instalace Quire pomocí Docker Compose

Nainstalujte Quire na vlastní infrastruktuře pomocí Docker Compose.

Zobrazit jako Markdown

Celý produkt běží na jednom hostiteli: LMS, úlohy na pozadí, služby realtime a společných úprav i všechny volitelné služby za profily. Architektura je popsána v části 2 dokumentu docs/architecture/23-ops.md.

Další cíle: Vercel a Cloudflare Workers provozují pouze webovou vrstvu. Aktualizace popisuje upgrade.md; zálohy a zkoušku obnovy najdete v backup-restore.md.

Co budete potřebovat

  • Docker Engine 27 nebo novější a plugin Compose 2.30 nebo novější.
  • 4 jádra CPU a 8 GB paměti pro výchozí stack; s --profile full 8 jader a 16 GB (jen podpisy ClamAV zabírají přibližně 1,5 GB).
  • DNS název pro webovou vrstvu a druhý pro nedůvěryhodný obsah. Musí jít o různé hostitele: balíčky SCORM a nahrané HTML běží z originu obsahu, takže nikdy nemohou číst soubory cookie LMS.
  • Pro místní test se lvh.me a *.localhost překládají na 127.0.0.1; používá je docker/.env.example. Vlastní služba proxy ve stacku poskytuje obě adresy přes https s místní certifikační autoritou, takže není třeba nic dalšího instalovat (viz „TLS“).
  • Na hostiteli musí být volné porty 80 a 443; změní je nastavení QUIRE_PROXY_HTTP_PORT a QUIRE_PROXY_HTTPS_PORT.

První spuštění

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 init

Skript docker/scripts/init-env.sh vytvoří soubor docker/.env podle šablony docker/.env.example s vygenerovanými tajnými údaji (hesly databáze, podpisovým a hlavním klíčem, párem klíčů pro spuštění obsahu) i podpisovým klíčem kontrolního bodu auditu v docker/secrets/audit-signing-key.pem; Compose ho připojí do workerů jako tajný údaj. Potřebuje pouze sh, awk a openssl a odmítne přepsat existující docker/.env. Oba soubory zkopírujte mimo hostitele: bez QUIRE_MASTER_KEY obnovená databáze nedokáže rozšifrovat uložené přihlašovací údaje. Chcete-li soubor vyplnit ručně, použijte cp docker/.env.example docker/.env; soubor popisuje vytvoření každého tajného údaje.

Oba originy musí používat https: služba content v produkčním prostředí odmítá prosté http a originy nesmějí sdílet registrovatelnou doménu. Služba proxy ukončuje TLS pro oba (viz „TLS“); init-env.sh odmítne origin začínající na http://.

Stack se spouští v pevně daném pořadí a každý krok počká na předchozí:

  1. postgres přejde do zdravého stavu. Při úplně prvním spuštění nastaví jeho inicializační skript (docker/postgres/init/90-passwords.sh) čtyři hesla rolí.
  2. migrate použije všechny migrace a připraví frontu úloh v řídicí databázi i ve všech vyhrazených databázích tenantů, ověří, že jsou ve shodě, a potom skončí (docs/ops/upgrade.md). Migrace se spouštějí při každém startu a jsou idempotentní, takže aktualizace vyžaduje nový image a restart.
  3. init (apps/web/src/first-run.ts) zaznamená aplikační databázi pod QUIRE_DATABASE_ID a při nastavení QUIRE_SETUP_ADMIN_EMAIL vytvoří první organizaci a jejího administrátora. Přihlašovací adresa a vygenerované heslo se jednou vypíší v docker compose logs init.
  4. Spustí se web, content, worker, scheduler, collab a centrifugo.
  5. proxy začne běžet poté, co budou web a content ve zdravém stavu.

Otevřete https://demo. následované doménou aplikace (protokol init vypíše přesnou přihlašovací adresu) a přihlaste se. Při místní instalaci nejprve důvěřujte certifikační autoritě proxy (viz „TLS“). Vygenerované heslo změňte na /account/security.

Proces spuštěný bez povinného tajného údaje odmítne běžet a v protokolu pojmenuje chybějící nastavení. Nic se nespustí s neúplnou konfigurací.

Služby a profily

Služba Profil Co dělá
postgres always Databáze (PostgreSQL 18 s pgvector, sestavený z docker/postgres.Dockerfile); WAL se archivuje od prvního spuštění
migrate, init always Jednorázové úlohy: migrace a potom první spuštění
web always LMS na QUIRE_HTTP_PORT (8080)
content always Origin nedůvěryhodného obsahu na QUIRE_CONTENT_PORT (8081)
worker always Úlohy na pozadí: e-mail, reporty, zpracování souborů a webhooky
scheduler always Opakované úlohy: zaregistruje 64 běhových plánů a předává je workeru; vždy je aktivní jen jeden vedoucí
collab always Websocket společných úprav na QUIRE_COLLAB_HTTP_PORT (1234)
centrifugo always Realtime fan-out na QUIRE_REALTIME_PORT (8000)
proxy always Caddy, vstupní bod TLS na portech 80 a 443 (viz „TLS“)
valkey cache Cache a limity četnosti požadavků
clamav scan Kontrola nahraných souborů na malware
gotenberg preview Náhledy dokumentů Office v PDF a vykreslování certifikátů
imgproxy images Změna rozměrů a převod obrázků
transcoder video Image workeru s ffmpeg pouze pod licencí LGPL pro převod videí
seaweedfs storage Objektové úložiště kompatibilní se S3 na tomto hostiteli
otelcol observability Collector OpenTelemetry
mailpit devmail Zachytí veškerou odchozí poštu při zkoušení Quire
backup backup Jednorázová základní záloha; viz backup-restore.md
backup-scheduler, backup-offsite backup Základní záloha každých QUIRE_BACKUP_INTERVAL_HOURS a šifrované kopie mimo hostitele s týdenním ověřovacím drillem
h5p h5p Image nástroje H5P LTI 1.3, kterou dodáte v QUIRE_H5P_IMAGE, na QUIRE_H5P_PORT (8090); viz „Připojení poskytovatele H5P“

Profil --profile full spustí všechny volitelné služby kromě backup a h5p. Jednu službu spustíte příkazem docker compose -f docker/compose.yaml --profile scan up -d. Quire funguje i bez volitelné služby a oznámí, co chybí: bez skeneru se soubory ukládají nezkontrolované a administrátor dostane upozornění; bez Gotenbergu se soubory nabízejí ke stažení místo náhledu; bez transcoderu se video přehrává jako původní soubor.

Všechny image třetích stran a související licenční povinnosti uvádí docker/third-party-containers.yaml.

Připojení poskytovatele H5P

Quire nevkládá ani nedodává běhové prostředí H5P nebo sidecar (ADR 0019). Pokud používáte H5P, pořiďte si vlastní hostované předplatné nebo provozujte samostatně vlastní self-hosted instanci H5P. Zaregistrujte poskytovatele jako externí nástroj LTI 1.3 a přidejte jeho obsah do kurzů jako aktivity nástroje. Quire si přes LTI Assignment and Grade Services (AGS) vyměňuje známky a průběh aktivit a hodnocení. Pokud poskytovatel odesílá také xAPI statements, nakonfigurujte to samostatně pro úložiště xAPI statements v Quire; výměna známek a průběhu přes AGS xAPI statements neodesílá. Importy z Moodle označují aktivity H5P jako vyžadující připojení nástroje LTI. Za běhové prostředí H5P, tvorbu obsahu, banku obsahu a historii pokusů nadále odpovídá poskytovatel.

Chcete-li na tomto hostiteli provozovat vlastní self-hosted instanci, nastavte QUIRE_H5P_IMAGE na její image a spusťte profil h5p. Compose ji zveřejní na QUIRE_H5P_PORT (8090) a její data uchová ve svazku h5p-data; image i veškeré související povinnosti zůstávají na vás.

Nastavení

Každý proces načítá docker/.env. Šablona docker/.env.example uvádí všechna nastavení a jejich výchozí hodnoty. Skupiny:

Adresy

Nastavení Význam
QUIRE_APP_ORIGIN Veřejná adresa LMS, například https://learn.example.com
QUIRE_CONTENT_ORIGIN Origin obsahu na jiném hostiteli
QUIRE_PLATFORM_DOMAINS Domény organizací, oddělené čárkami
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 Zde compose. Další cíle popisují příručky pro vercel a cloudflare
QUIRE_TRUSTED_PROXY_CIDRS Proxy, jejichž hlavičce X-Forwarded-For se důvěřuje

Tajné údaje

Nastavení Význam
QUIRE_SECRET_KEY Podepisuje relace a tokeny. 64 hexadecimálních znaků
QUIRE_MASTER_KEY Obaluje uložené přihlašovací údaje, například tajné údaje SSO a webhooků. 32 bajtů, base64. Webová vrstva i worker potřebují stejnou hodnotu. Obměna: key-rotation.md
QUIRE_MASTER_KEY_VERSION Označení verze hlavního klíče; pokud není nastavené, použije se v1. Při obměně ho zvyšte
QUIRE_MASTER_KEY_RETIRED Starší hlavní klíče potřebné ke čtení dat, která obalily, ve tvaru v1=<base64>. Po skončení obměny bez nevyřešených hodnot je odstraňte
QUIRE_COLLAB_SIGNING_KEY Web a collab jej sdílejí k podpisu tokenů pro úpravy
QUIRE_BACKUP_SIGNING_KEY Volitelně podepisuje zálohy kurzů

Kopii QUIRE_MASTER_KEY uchovávejte mimo tohoto hostitele. Databáze obnovená bez něj nedokáže rozšifrovat své přihlašovací údaje.

Databáze

Nastavení Význam
POSTGRES_PASSWORD Superuživatel, kterého používá kontejner a zálohování
QUIRE_DB_APP_PASSWORD, QUIRE_DB_MIGRATOR_PASSWORD, QUIRE_DB_REPORT_PASSWORD, QUIRE_DB_AUDIT_PASSWORD Hesla rolí nastavená při prvním spuštění
DATABASE_URL Aplikační role; row-level security se uplatňuje na každý její dotaz
DATABASE_MIGRATOR_URL, QUIRE_MIGRATION_URL Role migrátoru pro služby migrate a init
QUIRE_SUPERUSER_URL Používá se pouze při prvním spuštění
QUIRE_REPORT_DATABASE_URL Reportovací role pouze pro čtení, pro reporty a jejich tvorbu
QUIRE_AUDIT_DATABASE_URL Auditní role pro auditní konzoli a export SIEM
QUIRE_DATABASE_ID Libovolné UUID, nemění se po celou dobu instalace

Hesla rolí se použijí pouze při prvním vytvoření databázového svazku. Chcete-li je později změnit, použijte ALTER ROLE a aktualizujte odpovídající URL.

QUIRE_REPORT_DATABASE_URL se používá pro fyzickou databázi nastavenou v DATABASE_URL. U každé další registrované fyzické databáze nastavte její vlastní připojovací URL quire_report v prostředí webu i workeru a název proměnné zadejte v poli Reporting environment variable dané databáze jako env:NAME. Reference musí ukazovat na stejnou databázi jako její aplikační připojení, ideálně na její repliku pro čtení. Každý reportovací povrch přejde spolu s tenantem k reportovacímu připojení vlastní databáze: tvůrce reportů a uložené reporty, plánované doručování, exporty reportů, analytika, auditní protokol, auditní prostředky REST i auditní vyhledávání asistenta. Žádný z nich nikdy nepoužije reportovací URL jiné databáze. Pokud databáze nemá reportovací připojení, běžné reporty používají její vlastní aplikační připojení; analytika a čtení auditu se odmítnou a vysvětlí proč, protože aplikační role nemůže číst auditní stopu.

Ovladače

Nastavení V této verzi Poznámky
QUIRE_STORAGE_DRIVER local (výchozí), s3 nebo azure local ukládá soubory do svazku files. s3 zahrnuje AWS S3, R2, interoperabilitu s GCS a další úložiště kompatibilní se S3 včetně obnovitelných vícedílných nahrávání
QUIRE_REALTIME_DRIVER inprocess (výchozí), sse, centrifugo nebo durable_objects inprocess se hodí pro jeden webový kontejner; při více kontejnerech použijte centrifugo nebo sse
QUIRE_CACHE_DRIVER memory (výchozí), postgres nebo valkey memory je pro každý proces zvlášť; aby limity požadavků platily napříč kontejnery, použijte valkey nebo postgres
QUIRE_VIDEO_DRIVER ffmpeg (výchozí) nebo progressive_mp4 Alternativou je hostovaný poskytovatel Cloudflare Stream, Mux nebo Bunny a jeho klíče
QUIRE_IMAGE_DRIVER noop (výchozí), imgproxy nebo cloudflare noop poskytuje všechny obrázky v původní velikosti. imgproxy vyžaduje profil images a níže uvedená nastavení; cloudflare používá Cloudflare Images
QUIRE_MEETING_PROVIDER bbb, zoom, teams, meet, jitsi nebo in_process Výchozí poskytovatel platformy pro živá setkání. Pokud není nastavený, živá setkání hlásí, že nejsou nakonfigurovaná, dokud organizace nepřipojí vlastní účet v části Integrace, Poskytovatel živých setkání. Vlastní účet organizace má vždy přednost. Nastavení konkrétního poskytovatele (BBB_URL a BBB_SECRET, proměnné ZOOM_*, TEAMS_*, GOOGLE_MEET_* a JITSI_*) se načítají pouze pro poskytovatele uvedeného zde
QUIRE_MEETING_REGIONS Seznam hodnot eu, uk, us oddělených čárkami Určuje, kde výchozí poskytovatel platformy zpracovává schůzky. Pokud není nastavený, jako dříve se nekontroluje vůči organizaci připnuté k oblasti. Vlastní účet organizace uvádí oblasti na své stránce

Pokud tato verze ovladač neobsahuje, webová vrstva ho při spuštění odmítne a pojmenuje příslušné nastavení, místo aby ho potichu nahradila výchozí hodnotou.

Obrázky

Stránky požadují obrázky ve čtyřech pevně daných velikostech přes /api/files/{id}/image/{size}. Endpoint ověří stejný přístup jako k samotnému souboru a přesměruje na obrazovou službu. Každá organizace může za hodinu požadovat QUIRE_IMAGE_SPECS_PER_HOUR (výchozí hodnota 2000) nových kombinací obrázku a velikosti; velikosti vytvořené v danou hodinu se nezapočítávají. Při více webových kontejnerech použijte valkey nebo postgres pro QUIRE_CACHE_DRIVER, aby limit platil napříč nimi.

Nastavení Ovladač Poznámky
IMGPROXY_URL imgproxy Adresa, na které prohlížeče dosáhnou imgproxy, například https://images.example.org. Profil images ho zveřejní na QUIRE_IMAGES_PORT (8082)
IMGPROXY_KEY, IMGPROXY_SALT imgproxy Hexadecimální řetězce, stejné jako hodnoty použité při spuštění imgproxy. Každý vygenerujte pomocí openssl rand -hex 32. Quire jimi podepisuje každou adresu obrázku, takže imgproxy nevykreslí nic, co Quire nepožádal
QUIRE_IMAGE_SOURCE_ORIGIN imgproxy s místním úložištěm Odkud imgproxy načítá originály. Compose nastavuje http://web:3000. U úložiště s3 nebo azure načítá imgproxy soubory z bucketu, takže se tato hodnota nepoužije
CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_IMAGES_TOKEN, CLOUDFLARE_IMAGES_ACCOUNT_HASH cloudflare Token API s oprávněním upravovat Images a hash účtu z části Images, Developer resources. Pro účet zapněte flexibilní varianty
CLOUDFLARE_IMAGES_SIGNING_KEY cloudflare Volitelné. Po nastavení budou obrázky soukromé a každá adresa podepsaná s dobou platnosti. Bez něj jsou obrázky veřejné na adresách odvozených z QUIRE_SECRET_KEY, které nikdo nedokáže uhodnout

Cloudflare Images uchovává vlastní kopii každého originálu, který poskytuje. Při smazání souboru worker nejprve odstraní tuto kopii a až potom originál.

Fronta

Úlohy na pozadí používají pg-boss ve stejné databázi Postgres, takže není potřeba provozovat ani konfigurovat samostatnou frontu. Úlohy se zařazují ve stejné transakci jako změna, která je vyvolala, takže je pád nemůže ztratit ani odeslat dvakrát. Výchozí ovladač QUIRE_QUEUE_DRIVER je zde pgboss; vercel a cloudflare přesunou pouze lehké doručování oznámení a webhooků do vlastní fronty platformy. Příručky pro Vercel a Cloudflare popisují, jak jejich webové vrstvy úlohy zařazují.

E-mail

Nastavte jednu z možností:

  • QUIRE_EMAIL_PROVIDER_CONFIG: objekt JSON s názvem HTTP poskytovatele a jeho přístupovými údaji, například {"provider":"postmark","token":"..."}. Podporovány jsou Postmark, Amazon SES, Mailgun, SendGrid a Resend.
  • QUIRE_SMTP_URL: smtp://user:password@host:587. Funguje pouze pro tento cíl; serverless cíle blokují SMTP.

Odesílatele určuje QUIRE_MAIL_FROM. Chcete-li Quire vyzkoušet, spusťte profil devmail, nastavte QUIRE_SMTP_URL=smtp://mailpit:1025 a poštu čtěte na http://localhost:8025.

Volitelné služby

Nastavení 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 nebo QUIRE_MEILISEARCH_URL Externí vyhledávání; jinak fulltext v Postgresu
QUIRE_BREACH_CHECK_PROVIDER=off, QUIRE_BREACH_CHECK_URL Kontrola kompromitovaných hesel. Ve výchozím nastavení je zapnutá a dotazuje se api.pwnedpasswords.com (odesílá se pouze prvních pět znaků hashe); hodnotou off ji vypnete, případně URL nasměrujte na vlastní range API

Observabilita

OTEL_EXPORTER_OTLP_ENDPOINT určuje collector, kterému každý proces posílá trasování a metriky. S profilem observability je to http://otelcol:4318; exportér pro váš backend přidejte do docker/otel-collector.yaml. Webová vrstva, worker, scheduler, content a collab při nastavení exportují přes OTLP/HTTP rozsahy (webové požadavky, transakce databází tenantů, úlohy workeru a odchozí volání) a každou minutu metriky na stejný endpoint (OTEL_METRICS_EXPORTER=none je vypne). OTEL_TRACES_SAMPLER_ARG určuje podíl uchovávaných trasování. Protokoly se zapisují na standardní výstup s úrovní LOG_LEVEL; Compose je rotuje. Trasování nikdy neobsahuje osobní údaje.

Oblastní odchozí provoz (datová rezidence EU)

QUIRE_REGION=eu označuje, že stack obsluhuje organizace v Evropské unii. Worker pak veškerá odchozí volání pro organizaci připnutou k EU omezuje na seznam povolených hostitelů (21-compliance.md, část 8.1). Seznam tvoří hostitelé, které pro danou oblast deklarují nakonfigurované služby (endpoint úložiště, poskytovatel e-mailu a hostovaného videa, vlastní úložiště organizace, poskytovatelé AI a e-mailový účet), hostitelé služeb pod aktivní výjimkou a hostitelé uvedení v QUIRE_EGRESS_ALLOW_HOSTS. Požadavek na jakéhokoli jiného veřejného hostitele se před odesláním odmítne, odmítnutí se zapíše do auditní stopy organizace jako privacy/egress_refused a zobrazí se v části Soulad, Datová rezidence.

Nastavení Hodnoty Účinek
QUIRE_EGRESS_ALLOW_HOSTS Seznam názvů hostitelů oddělených čárkami nebo *.example.org pro všechny subdomény Další hostitelé, ke kterým může organizace z EU přistupovat. Patří sem webhooky, endpointy xAPI a SIEM, kanály blogů a hostitelé Amazon SES, protože si je volí organizace a žádná služba je nedeklaruje. Loopback, soukromé adresy a jednoslovné názvy jako web nebo clamav patří do vaší vlastní sítě a nikdy se nekontrolují

Organizace ve Spojeném království a USA se neomezují seznamem hostitelů; nadále se u nich kontrolují oblasti služeb. Nastavte seznam na workeru. Stránka správce ho na webové vrstvě čte a zobrazuje jako seznam povolených, proto ho uložte do docker/.env, který načítá každá služba.

Kontrola aplikace poskytuje srozumitelnou chybu a auditní záznam, ale nepředstavuje záruku: kód se může mýlit. Záruku zajišťuje síť. Compose ji za vás nevynucuje. U oblastního stacku umístěte služby worker a web do sítě internal: true, jejíž jedinou cestou ven je odchozí proxy (například Squid nebo kontejner tinyproxy), která povoluje stejné hostitele jako QUIRE_EGRESS_ALLOW_HOSTS a hostitele nakonfigurovaných služeb. Těmto službám nastavte HTTPS_PROXY. Stránka datové rezidence uvádí přesné hostitele povolené aplikací, takže můžete oba seznamy porovnat.

Zdraví služby

Endpoint Význam
/healthz Živost: proces odpovídá. Používají ho kontroly zdraví Compose
/readyz Připravenost: závislosti jsou dostupné a každá volitelná služba je uvedena jako nakonfigurovaná či nenakonfigurovaná. Sem nasměrujte load balancer

Příkaz docker compose -f docker/compose.yaml ps zobrazí stav každé služby.

TLS

Služba proxy (Caddy, Apache-2.0, docker/caddy/Caddyfile) je součástí výchozího stacku. Odpovídá na portech 80 a 443 a směruje:

Hostitel nebo cesta Cíl
QUIRE_PROXY_CONTENT_HOST content
QUIRE_PROXY_APP_HOST, každá subdoména tenanta a vlastní doména web
/_collab/ na těchto hostitelích collab (websocket, QUIRE_COLLAB_URL)
/_realtime/connection/ na těchto hostitelích Klientský websocket služby centrifugo; její serverové API se nikdy nezveřejňuje
/_images/ na těchto hostitelích imgproxy s profilem images (IMGPROXY_URL)

Skript init-env.sh odvodí z obou originů hodnoty QUIRE_PROXY_APP_HOST, QUIRE_PROXY_CONTENT_HOST, QUIRE_PROXY_HTTPS_PORT, QUIRE_COLLAB_URL a IMGPROXY_URL, aby se nemohly rozejít. Pokud origin měníte ručně, upravte odpovídající hodnoty společně.

Certifikáty se řídí nastavením QUIRE_PROXY_TLS:

  • internal (výchozí): vlastní certifikační autorita Caddy pro localhost, *.localhost a lvh.me. Jednou důvěřujte jejímu kořenovému certifikátu a potom přejděte na stránku:

    docker compose -f docker/compose.yaml cp \
      proxy:/data/caddy/pki/authorities/local/root.crt ./quire-local-ca.crt

    Přidejte quire-local-ca.crt do úložiště důvěryhodných certifikátů systému nebo prohlížeče. Příkaz curl ho použije s volbou --cacert.

  • E-mailová adresa: automatické certifikáty ACME (Let’s Encrypt a potom ZeroSSL) pro skutečné názvy hostitelů. DNS pro oba originy a každý hostitel tenanta musí ukazovat sem a porty 80 a 443 musí být dostupné z internetu.

Certifikáty pro hostitele tenantů se vydávají na vyžádání při první návštěvě, pouze pokud webová vrstva potvrdí, že název patří této instalaci (/tls-allowed, dotazované v síti Compose). Není potřeba wildcard certifikát ani plugin poskytovatele DNS; cizí osoba nemůže nasměrováním názvu na hostitele vynutit žádost o certifikát. Certifikáty a místní autorita jsou ve svazku caddy-data; používáte-li internal, zálohujte ho společně s ostatními.

Webová vrstva důvěřuje hlavičce X-Forwarded-For pouze od proxy: proxy má pevnou adresu (QUIRE_PROXY_ADDRESS, výchozí 172.29.64.10) na pevném podsíťovém rozsahu (QUIRE_COMPOSE_SUBNET) a QUIRE_TRUSTED_PROXY_CIDRS tuto adresu určuje. Pokud se podsíť překrývá se sítí hostitele, změňte obě nastavení a spusťte docker compose down před dalším up.

Za vlastní reverzní proxy

Chcete-li použít load balancer nebo proxy, které už provozujete, vynechte službu proxy (docker compose up -d --scale proxy=0) a ukončete TLS před službami web (8080), content (8081), collab (1234, websocket) a centrifugo (8000, websocket). Nastavte veřejné adresy v QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN a QUIRE_COLLAB_URL (wss://) a rozsah adres vaší proxy v QUIRE_TRUSTED_PROXY_CIDRS.

Řešení potíží

  • init skončí s chybou „QUIRE_DATABASE_ID is not a UUID“: nastavte hodnotu příkazem uuidgen.
  • web se restartuje s chybou „did not start on compose“: protokol vypíše každé nastavení, které nelze použít, a doporučenou náhradu.
  • Změna hesla role v .env po prvním spuštění nic neudělá: inicializační skript běží jen jednou. Použijte ALTER ROLE.
  • Nahrávání selhává kvůli skenování, přestože je nastaveno CLAMAV_URL: ClamAV při prvním spuštění stahuje podpisy, což trvá několik minut.
Navigace

Začněte psát a hledejte…

↑↓ procházení↵ vybratEsc zavřít