4.2. Instalace pomocí binární distribuce

Binární distribuce aplikace Elza pro samostatnou instalaci.

Podporované systémy:
  • Java 1.8 a vyšší

  • Microsoft Windows nebo Linux

  • Databáze:

  • Postgresql

4.2.1. Předpoklady

Nainstalována databáze Postgresql.

4.2.2. Postup instalace Elza

Standardní binární distribuce obsahuje:

  • soubor readme.txt - stručný popis instalace

  • adresář packages - výchozí data pro aplikaci

  • adresář server - hlavní spustitelný soubor elza-tomcat-verze.jar a vzorovou konfiguraci

Součástí hlavního souboru JAR je vložen webový server a aplikaci je možné spouštět bez nutnosti instalace a konfigurace samostatného aplikačního serveru.

Podporované možnosti instalace jsou:
  • Linux/Unix - init.d služba (System V)

  • Linux/Unix - systemd služba

  • služba systému Windows

Podrobný seznam možností konfigurace zde: Dokumentace Spring Boot.

Příprava databáze

  1. Pro přístup k databází vytvořte v Postgres samostatného uživatele. Například: ‚elza‘.

    Nepoužívejte účet administrátora pro přístup k databázi.

  2. Vytvořte prázdnou databázi, jejíž vlastníkem je uživatel z předchozího bodu.

    CREATE DATABASE elza OWNER = 'elza';
    

nebo příkazem v shellu:

createdb -l cs_CZ.utf8 -O elza -T template0 elza
  1. Pro další krok je potřeba povolit uživateli (uživatel ‚elza‘) oprávnění pro nastavení rozšíření. Nejjednoduší způsob je dočasně nastavit uživateli právo superuživatel.

    ALTER USER elza WITH SUPERUSER;
    
  2. Připojte se k databázi jako vlastník (uživatel ‚elza‘) a přidejte do databáze možnost používat rozšíření PostGIS:

    psql -U elza -W -d elza
    CREATE EXTENSION postgis;
    
  3. Po úspěšném vytvoření rozšíření PostGIS lze uživateli opět odebrat práva superuživatele.

    ALTER USER elza WITH NOSUPERUSER;
    

Struktura adresářů

Aplikace Elza vyžaduje instalační a pracovní adresář. Do pracovního adresáře se budou ukládat pravidla popisu, tiskové šablony, vygenerované tisky, logy a další.

Příklad cílového rozložení na disku:

  • /opt/elza/server - adresář s nainstalovanou aplikací (JAR + konfigurační soubor)

  • /opt/elza/work - pracovní adresář

Ve Windows se cesty uvádějí takto: D:\Elza\work

Připravte instalační adresář pro Elzu. Do adresáře zkopírujte JAR a vzorovou konfiguraci. Příklad výsledné podoby:

  • D:\Elza\server\elza-tomcat-2.0.0.jar

  • D:\Elza\server\config\elza.yaml

Doporučení pro instalaci v Linuxu

V adresáři server vytvořte symbolický link na hlavní soubor. Při přechodu na novější verzi stačí aktualizovat jen tento link.

Příklad: /opt/elza/server/elza-tomcat.jar -> /opt/elza/server/elza-tomcat-2.0.0.jar

Vytvořte samostatného uživatele pod nímž bude aplikace spuštěna. Tento uživatel by měl být vlastníkem pracovního adresáře a mít k němu plná práva.

Připravte samostatnou službu umožňující spuštění aplikace.

Příklad konfiguračního souboru (/etc/systemd/system/elza.service):

[Unit]
Description=Elza
After=syslog.target

[Service]
User=elza
ExecStart=/opt/elza/server/elza-tomcat.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Konfigurace a spuštění Elza

  1. V adresáři server je vzorový soubor elza.yaml. Ten otevřete a upravte dle nastavení v předchozích bodech. Minimálně je nutné nastavit: - připojení k databázi (sekce elza: data:) - cestu k pracovnímu adresáři (workingDir:)

  2. Upravený soubor elza.yaml nahrajte do adresáře config

  3. Spusťte aplikaci V případě správné konfigurace dojde k vytvoření tabulek v databázi a nastartování aplikace.

Provoz pomocí reverzní proxy

Aplikace Elza je často provozována za reverzní proxy. Ta umožňuje její běh na veřejné adrese archivu (například: https://elza.archiv-xy.cz, případně: https://www.archiv-xy.cz/elza). V rovině reverzní proxy lze využít Apache HTTPD nebo NGINX.

Příklad konfigurace pro https://elza.archiv-xy.cz

<VirtualHost elza.archiv-xy.cz:443>
  ServerName elza.archiv-xy.cz
  ProxyPreserveHost On
  ProxyRequests Off

  ProxyTimeout 60

  ProxyPass "/stomp" "ws://vnitrni-server.archiv.cz:8080/stomp"
  ProxyPassReverse "/stomp" "wss://elza.archiv-xy.cz/stomp"

  ProxyPass "/" "http://vnitrni-server.archiv:8080/"
  ProxyPassReverse "/" "https://elza.archiv-xy.cz/"

</VirtualHost>

Příklad konfigurace pro https://www.archiv-xy.cz/elza s využitím rewrite filtru a přesměrováním požadavku na vnitřní server 10.2.0.27:

<VirtualHost www.archiv-xy.cz:443>
  ServerName www.archiv-xy.cz

  <Location "/elza">

  RequestHeader set X-Forwarded-Prefix "/elza"
  RequestHeader set X-Forwarded-Host "www.archiv-xy.cz"
  RequestHeader set X-Forwarded-Proto "https"

  RewriteEngine On

  RewriteCond %{HTTP:Upgrade} websocket               [NC]
  RewriteRule   "/elza/(.*)$"  "ws://10.2.0.27:8080/$1" [P]
  RewriteRule   "/elza/(.*)$"  "http://10.2.0.27:8080/$1" [P]

  </Location>

</VirtualHost>

Od verze Apache HTTP 2.4.61 je nutné navíc povolit rewrite pro parametry za otazníkem.

<VirtualHost www.archiv-xy.cz:443>
  ServerName www.archiv-xy.cz

  RewriteEngine On

  RewriteCond %{HTTP:Upgrade} websocket               [NC]
  RewriteRule   "/elza/(.*)$"  "ws://10.2.0.27:8080/$1" [P,UnsafeAllow3F]
  RewriteRule   "/elza/(.*)$"  "http://10.2.0.27:8080/$1" [P,UnsafeAllow3F]
</VirtualHost>

Provoz na jiném než kořenovém URL

Aplikaci je možné provozovat i na jiném než kořenovém URL, například: https://www.archiv-xy.cz/elza. V takovém případě je nutné pomocí reverzní proxy směrovat požadavky z webového serveru do aplikace Elza, více viz: Provoz pomocí reverzní proxy. Na straně Elza je nutné navíc povolit akceptaci hlaviček X-Forwarded-…. obsahujícími informace o původním URL. V yaml konfiguraci je nutné aktivovat volbu elza.security.acceptForwardedHeaders=true.

Příklad konfigurace:

elza:
  .......
  security:
    acceptForwardedHeaders:true
  .......

Nastavení po prvním spuštění

Po úspěšném startu aplikace je nutné v ní nastavit číselníkové hodnoty a pravidla pro zpracování archiválií.

  1. Ve správě balíčků do aplikace nahrajte balíček packages/package-cz-base.zip

  2. ve správě balíčků do aplikace nahrajte balíček packages/rules-cz-zp2015.zip

  3. proveďte import paměťových institucí volbou Osoby / Import osob ze souboru se seznamem institucí. Seznam akreditovaných institucí v ČR je dostupný jako soubor all-institutions-import.xml, dostupný zde: GitHub Elza/all-institutions-import.xml.

4.2.3. Automatizace aktualizace balíčků

Pro Elza je možné nastavit režim automatické aktualizace balíčků při spuštění aplikace. Pokud existuje v pracovním adresáři složka dpkg jsou automaticky ihned po startu načteny všechny soubory s koncovkou .zip. Pokud se jedná o balíček a tento balíček je ve vyšší verzi, než-li aktuálně dostupný, je tento automaticky aktualizován.

Tento postup je výhodný pro automatické aktualizace balíčků při aktualizaci aplikace Elza.

4.2.4. Zálohování dat

Je doporučeno data uložená v aplikaci pravidelně zálohovat. Záloha by měla být provedena vždy před aktualizací aplikace.

Předmět zálohy:
  • databáze

  • pracovní adresář