Přeskočit na obsah

Instalace

BAUSW je distribuován jako Docker image, který zahrnuje jak server, tak frontendovou aplikaci pro snadnou implementaci.

Požadavky

BAUSW je navržen pro jednoduchou instalaci s minimálními požadavky na infrastrukturu:

Základní požadavky:

  • Docker (např., doporučeno Kubernetes nebo Docker Swarm)
  • Úložiště pro databázi (doporučeno 10 GB nebo více)
  • SMTP server pro odesílání e-mailů a oznámení

Volitelné komponenty:

  • Reverse proxy nebo CDN pro TLS terminaci a cachování
  • Úložiště kompatibilní se S3 pro soubory a přílohy
  • Účet na Visual Crossing pro integraci s API počasí

Komponenty

Databáze

BAUSW používá SQLite jako primární databázi. Tento vestavěný databázový systém umožňuje jednoduchou implementaci bez potřeby externí databáze.

  • Data jsou uložena na nakonfigurovaném úložišti.
  • Nepotřebuje externí databáze.

Úložiště souborů

Ve výchozím nastavení jsou nahrané soubory a přílohy uloženy v lokálním souborovém systému.

  • Pro použití úložiště kompatibilního se S3 je třeba nakonfigurovat ENV proměnné.
  • Doporučené služby: AWS S3, Azure Blob Storage nebo Cloudflare R2.

Front-End

Front-end je Progressive Web App (PWA) zabalený do kontejneru a dostupný na cestě /app.

  • Uživatelé mohou aplikaci nainstalovat přímo na svá zařízení.
  • Podporuje režim offline.

TLS terminace

TLS (HTTPS) musí být zajištěno externě pomocí reverse proxy jako Nginx nebo CDN.

Cachování

Pro optimální doručování obsahu zvažte přidání cachovací proxy.

  • Použijte Nginx nebo CDN.
  • Ujistěte se, že proxy respektuje hlavičky Cache-Control.
  • Cachovatelné cesty: /app
  • Necachovatelné cesty: /api (pokud není nastaveno přes Cache-Control).

API počasí

BAUSW integruje s Visual Crossing pro získání dat o počasí.

  • Získejte API klíč registrací na jejich webové stránce.
  • Bezplatný plán je dostačující pro malé nasazení.
  • Pro zablokování této funkce vynechte ENV proměnnou VISUALCROSSING_API_KEY.

Implementace s Docker Compose

Níže je minimální soubor docker-compose.yml pro nasazení BAUSW:

services:
bausw:
image: bausw:v3.1.0
env_file: ".env"
ports:
- "3000:3000"
volumes:
- bausw_data:/bausw/server/data
volumes:
bausw_data:

Poznámky:

  • Toto nastavení vytváří službu s názvem bausw běžící na portu 3000.
  • Trvalé úložiště bausw_data ukládá databázová a souborová data.
  • ENV proměnné jsou načteny ze souboru .env.
  • Nahraďte image verzí poskytnutou při nákupu licence.

Namespacing

BAUSW izoluje data na základě doménového jména, ze kterého je aplikace dostupná. Každá doména vytváří svůj vlastní namespace, zajišťující nezávislé ukládání dat.

Například s dvěma doménami, hq.example.com a branch.example.com, jsou data izolována následovně:

/data
/db
/hq.example.com
hq.example.com.sqlite
pro_abc.sqlite
pro_xyz.sqlite
/branch.example.com
branch.example.com.sqlite
pro_abc.sqlite
/files
/hq.example.com
/branch.example.com

Pro zajištění detekce správné domény:

  • Nakonfigurujte hlavičku Host ve nastaveních reverse proxy.
  • Při detekci domény jsou ignorovány čísla portů. Například example.com a example.com:8080 jsou považovány za tutéž doménu.

Konfigurace

Nastavení specifické pro namespace lze spravovat pomocí souborů s konfigurací YAML.

ENV Proměnné

Kompletní seznam konfigurovatelných ENV proměnných naleznete zde.