4.3. Instalace ze zdrojového kódu

4.3.1. Požadavky před instalací

Pro instalaci Elza je potřeba mít nainstalován tento software:

Získání zdrojových kódů

Zdrojové kódy aplikace Elza získáme zavoláním následujícího příkazu v adresáři kam ji chceme uložit.

git clone https://bitbucket.org/tacr/elza.git

Podporované databáze

Pro běh aplikace Elza je potřeba databáze (DB) podporující:

  • Datový typ Geometry.

  • České locale tj. DB musí mít při založení nastaveno české locale pro collate, ctype.

ELZA podporuje tyto databázové servery:

  • PostgreSQL (Doporučené, primární platforma)
    • Pro tento databázový server je vyžadována verze 9.6 nebo vyšší a rozšíření PostGis.

    • Po instalaci je potřeba založit v DB samostatného uživatele např. „elza“. Při zakládání DB je tento uživatel použit jako vlastník DB.

    • DB pro Elza by měla být založena s nastavením LC_COLLATE a LC_CTYPE (porovnávání a klasifikace znaků) na české locale dle dostupnosti v daném systému např. „Czech_Czech Republic.1250“ ve Windows, „cs_CZ.UTF-8“ v Linuxu. Dostupná locale v Linuxu lze zjistit příkazem „locale -a“. Tato nastavení se provádějí v době zakládání nové DB.

    • V založené DB musí být následně aktivován doplněk PostGis. Pro tento krok musí mít založený uživatel v DB pro Elzu oprávnění administrace dané DB. Následně je možné doplněk aktivovat pomocí dotazu:

    CREATE EXTENSION postgis;
    
  • H2

    Embedded databáze, využívá se proběh testů, limitovaná podpora při migraci dat mezi verzemi, chybí podmíněné indexy

Dřívější experimentální podpora:

  • MSSQL

    Je vyžadována verze MSSQL 2008, není potřeba žádná specální instalace, je nutná vlastní definice indexů a zajištění migrace dat

Pro jiné datové servery než PostgreSQL je nutné dodat jdbc ovladač. Ovladače je nutno doplnit do závislostí v pom.xml v kořenovém adresáři.

Nepodporované databáze:

  • MySQL (Netestováno)

    Pravděpodobně nefunkční z důvodu chybějící podpory CTE

  • Oracle (Netestováno)

    Pro tento databázový server je vyžadována verze Enterprise. Pouze verze Enterprise umí pracovat s datovým typem Geometry.

Konfigurace

V adresáři elza-web/config je potřeba založit soubor elza.yaml (pro produkční prostředí v Tomcat soubor elza-ui.yaml), který obsahuje konfiguraci připojení k databázi. Soubor je možné vytvořit ze souboru elza.yaml.template.

Databáze

V souboru elza.yaml je potřeba správně vyplnit údaje pro připojení k databázi.

url

Adresa pro připojení k databázi.

url: jdbc:postgresql://localhost/elza
postgresql

typ datového serveru

localhost

adresa datového serveru

elza

název databáze

username

Platné uživatelské jméno. Uživatel musí být zároveň vlastníkem uvedené databáze.

password

Heslo zadaného uživatele.

elza:
  data:
    url: jdbc:postgresql://server/databaze
    username: uzivatel
    password: heslo

spring:
  jpa:
    properties:
      hibernate:
        # PostgreSQL
        dialect: org.hibernate.spatial.dialect.postgis.PostgisDialect
        # H2
        #dialect: org.hibernate.spatial.dialect.h2geodb.GeoDBDialect
        # MySQL
        #dialect: org.hibernate.spatial.dialect.mysql.MySQLSpatialDialect
        # Oracle
        #dialect: org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect
        # MSSQL
        #dialect: org.hibernate.dialect.SQLServer2008Dialect

Pracovní adresář

Pracovní adresář je adresář, do kterého si aplikace Elza ukládá soubory, které používá (soubory pravidel, šablony výstupů, vygenerované výstupy atd.)

Definovat pracovní adresář je potřeba jen v případě, kdy je elza spuštěna v tomcat serveru.

Pracovní adresář se definuje v konfiguračním souboru elza.yaml nebo elza-ui.yaml.

Definuje se zadáním parametru workingDir na stejnou úroveň jako parametr data . Jako hodnota parametru workingDir se zadává absolutní cesta k adresáři, do kterého se mají soubory ukládat.

elza:
  data:
    url: jdbc:postgresql://server/databaze
    username: uzivatel
    password: heslo

  workingDir: /absolutni/cesta/k/adresari

spring:
  jpa:
    ...

4.3.2. Sestavení verze určené pro vývoj

Aplikaci sestavíme zavoláním následujícího příkazu v kořenovém adresáři elza:

mvn install -Pskiptest

Instalace balíčků NPM

Balíčky NPM aktualizujeme zavoláním následujícího příkazu v adresáři elza-web:

mvn exec:exec -Pnpm-install

Spuštění

Aplikační server spustíme zavoláním následujícího příkazu v adresáři elza-web:

mvn spring-boot:run

Server pro uživatelské rozhraní spustíme zavoláním následujícího příkazu v adresáři elza-web:

mvn exec:exec -Pfrontend-dev

4.3.3. Sestavení produkční verze

Produkční verzi aplikace sestavíme zavoláním následujícího příkazu v kořenovém adresáři elza:

mvn clean install -Pskiptest,release

V adresáři elza-web/config je nutné vytvořit elza-ui.yaml z elza.yaml.template

  • Zadat správné údaje pro připojení k databázi viz nastavení připojení k databázi.

  • Přidat cestu k pracovnímu adresáři viz pracovní adresář.

  • Zakomentovat řádek s buildType

    buildType: DEV -> #buildType: DEV
    
  • Vložit elza-ui.yaml do balíku elza.war do adresáře WEB-INF/classes. Balík elza.war je umístěn v adresáři elza-war/target. Vložení lze provést například pomocí komprimačního nástroje 7-zip

Instalace Tomcat

Z balíčku

Stáhnout Tomcat ve verzi 8.0.x a rozbalit do libovolného adresáře.

Jako služba Windows
  • Stáhnout instalátor

  • Nainstalovat Normal nebo Full instalaci.

Spuštění v Tomcat

  • Přejmenovat elza.war na ROOT.war

  • Vložit soubor ROOT.war do adresáře webapps v kořenovém adresáři Tomcatu (adresář kam byl Tomcat nainstalován nebo rozbalen)

  • Spustit Tomcat pomocí souboru startup.bat umístěného v adresáři bin nebo spustit službu pomocí Tomcat monitoru pokud neběží.

  • K Elze je poté možno se dostat na adrese http://localhost:8080/

  • V adresáři logs kořenového adresáře Tomcatu se nachází výstupy ze serveru

  • Ověřit, že je Tomcat povolen v nastavení firewall

4.3.4. Výchozí uživatel

Po instalaci nové verze je možné se do aplikace přihlásit jako uživatel admin s heslem admin. Výchozí uživatel má oprávnění administrátora. Po prvotní konfiguraci aplikace a vytvoření uživatelských účtů je vhodné přihlášení výchozícho uživatele zakázat.

Nastavení výchozího uživatele se nastavuje pomocí volby: elza.security.allowDefaultUser:false.

Způsob zakázání výchozího uživatele v elza-ui.yaml:

elza:
  security:
    allowDefaultUser: false
    ...

4.3.5. První spuštění

Po prvním spuštění aplikace je nutné přidat balík se základními pravidly, importovat instituce a vytvořit uživatelské účty.

Vytvoření uživatelů

Po prvním spuštění aplikace je nutné vytvořit účet administrátora aplikace a další jednotlivé uživatelské účty. Po jejich vytvoření zakažte možnost přihlášení výchozího uživatele.

Přidání balíku pravidel

Přidání balíku je možné v modulu Administrace/Správa balíků. Zde stačí vybrat balík a poté kliknout na importovat. Balík základních pravidel 2015 se nachází v adresáři rules-cz-zp2015.

Import instituce

Import instituce je možno provést v modulu Osoby. Po kliknutí na importovat je nutné vybrat scope rejstříku a zdrojový soubor, ze kterého se insituce naimportuje. Pro import institucí lze použít soubor all-institutions-import.xml, který se nachází v adresáři package-cz-base/src/.

4.3.6. 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ář