/fofola

Application for advanced administration of the Kramerius library system

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Fofola

License: GPL v3

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.

Parametry aplikace

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 "--">'

Docker

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"

Použité technologie

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.

Licence

GPL v3

Autoří

Aleksei Ermak a skvěle nápady členů týmu OSDD MZK.