4.2. Instalace

Aplikaci Elza je možné nainstalovat dvěma způsoby:

  • Instalačními skripty (doporučeno pro Linux) - sada skriptů, která nainstaluje Elzu jako službu systemd a automatizuje nasazování nových verzí, zálohování databáze, kontrolu stavu a bezobslužné aktualizace.

  • Ručně z binární distribuce, v Linuxu nebo ve Windows.

Oba způsoby používají stejnou binární distribuci a stejný konfigurační soubor.

4.2.1. Instalace pomocí instalačních skriptů

Skripty a jejich dokumentace jsou publikovány na adrese https://get.lightcomp.com/elza/ (v angličtině). Vyžadují Linux se systemd, PostgreSQL včetně klientských nástrojů (pg_dump), bash a curl. Instalace se spouští příkazem:

curl -fsSL https://get.lightcomp.com/elza/elza-bootstrap.sh | bash -s -- --home /opt/elza

Bootstrap skript stáhne balík skriptů (ověřený kontrolním součtem) do adresáře /opt/elza/scripts, připraví konfigurační soubor elza-env a nainstaluje jednotky systemd. Po úpravě elza-env (minimálně připojení k databázi) se první nasazení provede příkazem elza-deploy.

Skripty poskytují tyto příkazy:

  • elza-deploy - instalace nebo aktualizace aplikace: zastaví službu, zazálohuje databázi, stáhne distribuci, atomicky přepne na novou verzi, spustí službu a ověří, že běží.

  • elza-backup - záloha databáze pomocí pg_dump s mazáním starých záloh.

  • elza-health - kontrola stavu aplikace a volitelné hlášení stavu dohledovému systému (viz Hlášení stavu dohledovému systému).

  • elza-update - bezobslužná aktualizace na novou verzi.

Databázi je i v tomto případě nutné připravit podle Příprava databáze. Konfigurace vlastní aplikace (elza.yaml) je popsána v kapitole Konfigurace aplikace.

4.2.2. Ruční instalace

Obsah distribuce

Binární distribuce je soubor ZIP, který obsahuje:

  • server/elza-tomcat-<verze>.jar - aplikaci s vloženým webovým serverem,

  • server/config/elza.yaml - vzorovou konfiguraci,

  • server/config/csc-metrics.json - seznam metrik předávaných dohledovému systému (viz Monitorování),

  • packages/ - základní balíčky: package-cz-base (číselníky) a rules-cz-zp2015 (pravidla popisu ZP2015),

  • data/all-institutions-import.xml - seznam akreditovaných archivů v České republice,

  • readme.txt - stručný přehled instalace.

Příprava databáze

  1. Vytvořte pro Elzu databázového uživatele, například elza. Pro přístup aplikace nepoužívejte účet superuživatele.

  2. Vytvořte prázdnou databázi, jejímž vlastníkem je tento uživatel:

    createdb -O elza -E UTF8 -l cs_CZ.UTF-8 -T template0 elza
    

    Locale určuje řazení textů prováděné databází. Použijte locale archivního popisu (pro české archivy češtinu); dostupná locale vypíše příkaz locale -a. Ve Windows je název například Czech_Czechia.1250. Locale nelze po vytvoření databáze změnit.

  3. Povolte v databázi rozšíření PostGIS. Vytvoření rozšíření vyžaduje práva superuživatele, proveďte je proto jako uživatel postgres:

    psql -U postgres -d elza -c "CREATE EXTENSION postgis;"
    

Tabulky vytvoří Elza při prvním spuštění.

Struktura adresářů

Elza potřebuje instalační a pracovní adresář, například:

  • /opt/elza/server - soubor JAR a config/elza.yaml,

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

Ve Windows například D:\Elza\server a D:\Elza\work.

Pro službu vytvořte samostatného uživatele operačního systému, který je vlastníkem pracovního adresáře a má k němu plná práva. V Linuxu je vhodné odkazovat na aktuální JAR symbolickým linkem, aby aktualizace změnila jen link: /opt/elza/server/elza-tomcat.jar -> elza-tomcat-3.4.7.jar.

Pracovní adresář obsahuje:

  • dms/ - binární soubory (přílohy, výstupy, publikace, importní dávky). Jeho strukturu spravuje Elza a nesmí se ručně upravovat; zálohuje se společně s databází (viz Zálohování a obnova).

  • dpkg/ - balíčky načítané při startu (viz Nahrání balíčků).

  • log/ - logy, pokud jsou nastaveny jako ve vzorové konfiguraci.

  • další pracovní data, která si Elza v případě potřeby znovu vytvoří.

Konfigurace

Zkopírujte server/config/elza.yaml do config/elza.yaml vedle souboru JAR a nastavte minimálně:

  • připojení k databázi (elza.data.url, elza.data.user, elza.data.pass),

  • pracovní adresář (elza.workingDir).

elza:
  data:
    url: jdbc:postgresql://localhost/elza
    user: elza
    pass: tajne
  workingDir: /opt/elza/work
  logFile: ${elza.workingDir}/log/elza.log
  siemLogFile: ${elza.workingDir}/log/siem.log

Ostatní nastavení popisuje kapitola Konfigurace aplikace.

Spuštění jako služby

Před nastavením služby aplikaci jednou spusťte z instalačního adresáře a ověřte konfiguraci:

java -jar elza-tomcat.jar

Při prvním spuštění Elza vytvoří databázové schéma. Aplikace je připravena, jakmile log oznámí její spuštění; naslouchá na portu 8080.

Příklad jednotky systemd (/etc/systemd/system/elza.service):

[Unit]
Description=ELZA
After=network.target postgresql.service

[Service]
User=elza
WorkingDirectory=/opt/elza/server
ExecStart=/usr/bin/java -Xmx4g -Dfile.encoding=UTF-8 -jar /opt/elza/server/elza-tomcat.jar
SuccessExitStatus=143
Restart=on-failure

[Install]
WantedBy=multi-user.target

Velikost paměti (-Xmx) upravte podle dostupné paměti. Pracovním adresářem procesu musí být instalační adresář, aby byl nalezen soubor config/elza.yaml. Službu povolíte a spustíte příkazem systemctl enable --now elza.

Ve Windows lze Elzu provozovat jako službu pomocí nástroje jako WinSW nebo NSSM, který spouští stejný příkaz java -jar. Viz také dokumentace Spring Boot k nasazení.

4.2.3. První spuštění

Výchozí uživatel

Nová instalace je přístupná pod vestavěným výchozím uživatelem (admin s heslem admin), který má oprávnění administrátora. Použijte jej jen k vytvoření účtů administrátorů, poté jej vypněte volbou elza.security.allowDefaultUser: false a aplikaci restartujte. Viz Autentizace a zabezpečení.

Nahrání balíčků

Elza potřebuje číselníky a pravidla popisu z balíčků v adresáři packages/. Doporučeným způsobem je zkopírovat soubory ZIP do podadresáře dpkg/ pracovního adresáře: při každém startu Elza nahraje z tohoto adresáře každý balíček, jehož verze je vyšší než verze již nahraného balíčku. Aktualizace pak jen nahradí soubory v dpkg/ spolu se souborem JAR.

Poznámka

Pokud dpkg/ obsahuje starší verzi balíčku, než je verze již nahraná, aplikace nenastartuje. Starý soubor odstraňte.

Balíčky lze nahrát také v modulu Administrace > Správa balíčků (viz Správa balíčků).

Import institucí

Seznam archivů naimportujte ze souboru data/all-institutions-import.xml volbou Import rejstříkových hesel v modulu Archivní entity.

Další kroky