Fofola je jednoduchá webová aplikace pro rozšířenou administraci knihovního systému Kramerius, která chybí administrátorům systému. Aplikace nabízí přívětivé grafické rozhraní pro spouštění různých procesů jak v rámci Krameria (posíláním požadavků na API) tak i v rámci samotné aplikace.
Fofola slouží ke spouštění následujících procesů:
- změna přístupových práv, reindexace a mazání dokumentů přes Krameria
- vytváření a editace virtuálních sbírek
- přidávání nebo odebírání dokumentů do/z virtuálních sbírek
- přidávání nebo odebírání donátorů z dokumentů, a také kontrolu přítomnosti donátorů u dokumentů z virtuálních sbírek
- zveřejnění dokumentů a jejich následovníků podle přístupových práv
- asynchronní generování PDF dokumentů podle kořenových uuid
- přidávání nebo odebírání DNNT příznaků
Fofola je schopna zobrazovat stav jednotlivých dokumentů a celých stromů dokumentů. Umožňuje zobrazování stavů interních procesů a procesů v Krameriu, a také základní manipulaci s těmito procesy.
Pro svoji práci Fofola musí byt napojená na Krameria, Apache Solr a Fedora Common Repository, které Kramerius používá. Fofola používá databázi Postgres, a pokud není specifikována externí databáze, spouští interní H2 in-memory databázi (dostupná na http://host/port/h2-console). Fofola je konfigurovatelná přes proměnné prostředí, níže je uveden seznam, popis a defaultní hodnoty.
parameter | description | example | required | default value |
---|---|---|---|---|
KRAMERIUS_HOST | url Krameria | http://kramerius.cz | true | |
KRAMERIUS_USER | login uživatele s admin. právy | krameriusUser | true | |
KRAMERIUS_PSWD | heslo uživatele Krameria | krameriusPswd | true | |
FEDORA_HOST | url Fedory | http://fedora.cz | true | |
FEDORA_USER | login uživatele Fedory | fedoraUser | true | |
FEDORA_PSWD | heslo uživatele Fedory | fedoraPswd | true | |
SOLR_HOST | url Solru s názvem jádra | http://solr.cz/solr/kramerius | true | |
POSTGRES_DB_JDBC_URL | url databázi | jdbc:postgresql://postgres/fofola | false | |
POSTGRES_DB_USER | login uživatele databázi | postgresUser | false | |
POSTGRES_DB_PSWD | heslo uživatele databázi | postgresPswd | false | |
H2_DB_JDBC_URL | url H2 databázi | jdbc:h2:mem:fofola | false | jdbc:h2:mem:fofola |
H2_DB_USER | login uživatele H2 databázi | h2_user | false | user |
H2_DB_PSWD | heslo uživatele H2 databázi | h2_pswd | false | pswd |
PORT | port Fofoly | 8080 | false | 8081 |
TIMEZONE | timezona Fofoly | Europe/Prague | false | timezona systému |
REQUEST_CONNECTION_TIMEOUT | timeout pro odchozí requesty (ms) | 60000 | false | 100000 |
MAX_CONNECTIONS | maximální množství spojení | 100 | false | 10 |
MAX_CONNECTIONS_PER_ROUTE | maximální množství spojení pro jednotlivé porty | 100 | false | 10 |
H2_LOGGING_LVL | úroveň logování H2 databázi | DEBUG | false | WARN |
HIBERNATE_LOGGING_LVL | úroveň logování Hibernate | DEBUG | false | WARN |
HIKARI_LOGGING_LVL | úroveň logování HikariCP | DEBUG | false | WARN |
Fofola se spouští s uvedenými parametry jako .jar soubor
./gradlew bootJar
java -DSOLR_HOST=http://solr.cz <jiné parametry s prefixem '-D'> -jar fofola-1.0.0.jar
nebo pomocí příkazu Gradle 'bootRun'
./gradlew bootRun --args='--SOLR_HOST=http://solr.cz <jiné parametry s prefixem "--">'
Fofola může byt spouštěna v Docker kontejneru. Na Dockerhubu najděte oficiální image web aplikace. Pomocí Gradle pluginu pro dockerizace aplikací od Benjamina Muschko, lokálně dokážete udělat image příkazy
./gradlew buildImage # image s tagem verze
./gradlew buildLatest # image s tagem verze a další s tagem 'latest'
Pro rychlou konfiguraci a start aplikace se používá i Docker compose:
version: "3"
services:
fofola:
image: ermak/fofola:latest
container_name: fofola
ports:
- "8081:8081"
environment:
- KRAMERIUS_HOST=http://kramerius.cz
- KRAMERIUS_USER=krameriusUser
- KRAMERIUS_PSWD=krameriusPswd
- FEDORA_HOST=http://fedora.cz
- FEDORA_USER=fedoraUser
- FEDORA_PSWD=fedoraPswd
- SOLR_HOST=http://solr.cz/solr/kramerius
- POSTGRES_DB_JDBC_URL=jdbc:postgresql://fofola-db:5432/fofola
- POSTGRES_DB_USER=postgresUser
- POSTGRES_DB_PSWD=postgresPswd
fofola-db:
image: "postgres:11.5"
container_name: fofola-db
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=fofola
ports:
- "5432:5432"
Hlavním jádrem Fofoly je REST API pro přijetí požadavků, které je napsáno v Javě s použitím Spring Boot frameworku. Grafické rozhraní je vytvořeno za pomoci frameworků React a Redux.
Aleksei Ermak a skvěle nápady členů týmu OSDD MZK.