.. _install_src: **************************** Instalace ze zdrojového kódu **************************** .. include:: /roles.rst Požadavky před instalací ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Pro instalaci Elza je potřeba mít nainstalován tento software: * `Git 1.9+ `_ * `Oracle JDK 8 `_ * `Apache Maven 3.2.+ `_ * `Node.js 5.1.0+ `_ včetně správce balíčků NPM 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. .. code-block:: none git clone https://bitbucket.org/tacr/elza.git .. _install_src_db: 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: .. code-block:: SQL 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: 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``. .. _nastaveni_databaze: 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. .. code-block:: none 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. .. code-block:: none 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 .. _pracovni_adresar: 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 :ref:`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. .. code-block:: none elza: data: url: jdbc:postgresql://server/databaze username: uzivatel password: heslo workingDir: /absolutni/cesta/k/adresari spring: jpa: ... 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``: .. code-block:: none 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``: .. code-block:: none 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``: .. code-block:: none 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``: .. code-block:: none mvn exec:exec -Pfrontend-dev 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``: .. code-block:: none 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 :ref:`nastavení připojení k databázi`. * Přidat cestu k pracovnímu adresáři viz :ref:`pracovní adresář`. * Zakomentovat řádek s *buildType* .. code-block:: none 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 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: .. code-block:: none elza: security: allowDefaultUser: false ... 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/``.