.. _admin_install:

===================================
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


Předpoklady
===========

Nainstalována databáze Postgresql.


Postup instalace Elza
=====================

Standardní binární distribuce obsahuje:

 - soubor :file:`readme.txt` - stručný popis instalace
 - adresář :file:`packages` - výchozí data pro aplikaci
 - adresář :file:`server` - hlavní spustitelný soubor :file:`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 <https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-install>`_.


Příprava databáze
-----------------

#. 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.

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

    .. code-block:: SQL

       CREATE DATABASE elza OWNER = 'elza';

 nebo příkazem v shellu:

    .. code-block:: BASH

       createdb -l cs_CZ.utf8 -O elza -T template0 elza


       
#. 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.

    .. code-block:: SQL

       ALTER USER elza WITH SUPERUSER;

#. 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:

    .. code-block:: SQL

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

    .. code-block:: SQL

       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:

 - :file:`/opt/elza/server` - adresář s nainstalovanou aplikací (JAR + konfigurační soubor)
 - :file:`/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:

 - :file:`D:\\Elza\\server\\elza-tomcat-2.0.0.jar`
 - :file:`D:\\Elza\\server\\config\\elza.yaml`


Doporučení pro instalaci v Linuxu
------------------------------------

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

Příklad: :file:`/opt/elza/server/elza-tomcat.jar` -> :file:`/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 (:file:`/etc/systemd/system/elza.service`):

.. literalinclude:: examples/elza.service
   :language: cfg


.. _Admin_InstallBinConf:

Konfigurace a spuštění Elza
---------------------------
#. V adresáři :file:`server` je vzorový soubor :file:`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:)

#. Upravený soubor :file:`elza.yaml` nahrajte do adresáře :file:`config`

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


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í.

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

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

#. 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 <https://github.com/elzasw/elza/raw/release-2.0/elza/package-cz-base/src/all-institutions-import.xml>`_.


.. _admin_install_dpkg:

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 :file:`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.


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