Skip to content

petrsafrata/VirtualStorage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Virtual Storage

🗂 O projektu

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.

✨ Funkce

  • 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ů

🧱 Technologie a architektura

  • 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

📦 Docker služby

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

🌐 Poznámka k doméně

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.

📁 Struktura projektu

.
├── 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

✅ Předpoklady před spuštěním

  • 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 .jar a při defaultním nasazení se nachází ve složce ./app/, po úpravě zdrojového kódu je nutné ji znovu zbuildit a .jar soubor 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žky vosk-model/, protože v rámci defaultního nasazení tento model ve složce není obsažen

🚀 Instalace

  1. Naklonujte repozitář nebo připravte složku se strukturou výše
cd virtual-storage-root
  1. Ujistěte se, že v docker-compose.yml jsou všechny volume cesty správně nastaveny

  2. Spusťte aplikaci

docker compose up -d --build
  1. Aplikace bude dostupná na: http://localhost:8080 nebo s využítím proxy na http://lolcloud.cz (nutný DNS záznam)

🔐 Přístup

  • 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

🛠 Přístup do běžícího kontejneru

docker exec -it virtualstorage-app sh

♻️ Restart konkrétní služby

Například pro restart Elasticsearch:

docker compose restart elasticsearch

📜 Licence

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.


About

Virtuální uložiště s pokročilým vyhledáváním

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors