Tato aplikace poskytuje chytré úložiště souborů s podporou vyhledávání v obsahu pomocí OCR a rozpoznávání řeči. Umožňuje nahrávat soubory, extrahovat z nich text, indexovat je a efektivně v nich vyhledávat.
- Upload a správa souborů
- Vyhledávání v textovém obsahu (OCR, Tika)
- Rozpoznávání řeči (Vosk)
- Fulltextové vyhledávání přes Elasticsearch
- Uživatelské přihlášení a správa přístupů
- Backend: Java 17, Spring Boot, Spring Security
- Frontend: HTML, CSS, Javascript, Bootsrap
- OCR: Tesseract OCR
- Rozpoznávání řeči: Vosk API
- Vyhledávání: Elasticsearch
- Databáze: PostgreSQL
- Containerizace: Docker, Docker Compose
Projekt využívá několik Docker kontejnerů, které běží na společné síti virtualstorage-app-network:
| Služba | Popis | Kontejner | Port | Objem (Volume) |
|---|---|---|---|---|
| Spring Boot aplikace | Aplikace virtuálního uložiště | virtualstorage-app |
8080 | /app, /storage, /temp, /vosk-model |
| PostgrSQL DB | Ukládání údajů o uživatelích | virtualstorage-postgres-db |
5432 | /postgres |
| Elasticsearch | Fulltextové vyhledávání | virtualstorage-elasticsearch |
9200 | /elasticsearch |
| Tesseract OCR | Optické rozpoznání obrázků | tesseract |
X | X |
| Ffmpeg | Koverze zvukových souborů | ffmpeg |
X | X |
| Apache (volitelně) | Reverzní proxy server | apache |
80 | /apache |
Pokud chcete aplikaci provozovat na vlastní doméně (např. http://lolcloud.cz), nakonfigurujte si reverzní proxy server v rámci Apache - soubor httpd.conf. Apache je ve výchozím nastavení součástí Docker Compose a požadavky na doménu http://lolcloud.cz na portu 80 jsou přesměrovávány na virtualstorage-app:8080.
.
├── app/ # zdrojový kód nebo .jar
├── storage/ # trvalé uložení souborů
├── temp/ # dočasné soubory pro OCR, konverze apod.
├── postgres/data/ # data PostgreSQL
├── elasticsearch/data/ # data Elasticsearch
├── vosk-model/ # modely pro rozpoznávání řeči
├── apache/ # konfigurace Apache proxy
├── docker-compose.yml
- Docker a Docker Compose
- Dostatek RAM (doporučeno 8+ GB, minimálně 6 GB)
- Dodatek místa na disku (4 GB samotné nasazení + volné místo pro nahrávané a dočasné soubory)
- Aplikace je zabalena jako
.jara při defaultním nasazení se nachází ve složce./app/, po úpravě zdrojového kódu je nutné ji znovu zbuildit a.jarsoubor vložit zpět do této složky - Model Vosk je potřeba stáhnout z https://alphacephei.com/vosk/models (doporučená verze:
vosk-model-en-us-0.22) a následně jej rozbalit do složkyvosk-model/, protože v rámci defaultního nasazení tento model ve složce není obsažen
- Naklonujte repozitář nebo připravte složku se strukturou výše
cd virtual-storage-root
-
Ujistěte se, že v docker-compose.yml jsou všechny volume cesty správně nastaveny
-
Spusťte aplikaci
docker compose up -d --build
- Aplikace bude dostupná na: http://localhost:8080 nebo s využítím proxy na http://lolcloud.cz (nutný DNS záznam)
- Aplikace má přihlašovací formulář (implementace přes Spring Security)
- Je vytvořen jeden defaultní uživatel, který má v aplikaci administrátorská práva -- Přihlašovací jméno: admin@lolcloud.cz -- Heslo: a - po instalaci a spuštění aplikace heslo k účtu změnte v GUI
docker exec -it virtualstorage-app sh
Například pro restart Elasticsearch:
docker compose restart elasticsearch
Tento projekt je chráněn autorským právem.
Autorem projektu je student Univerzity Pardubice Petr Šafrata.
Projekt byl vytvořen a využit v rámci bakalářské práce na téma
Virtuální úložiště s pokročilým vyhledáváním.
Bez výslovného souhlasu autora není dovoleno tento projekt kopírovat, šířit, upravovat ani využívat pro komerční účely.
This project is protected by copyright.
The author of the project is Petr Šafrata, a student at the University of Pardubice.
The project was created and used as part of a bachelor's thesis on the topic
Virtual storage with advanced search.
It is not permitted to copy, distribute, modify or use this project for commercial purposes without the express consent of the author.