bakalarka_praca/website/README (6).md

102 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hate Speech Bot Dokumentácia
## Opis aplikácie
Ide o kompletný systém na detekciu nenávistných správ v prostredí Telegramu. Obsahuje Telegram bota, ktorý analyzuje správy, zaznamenáva porušenia do databázy MySQL, a webovú aplikáciu (Flask), ktorá tieto dáta zobrazuje v reálnom čase. Webová stránka sa automaticky aktualizuje každých 5 sekúnd a zobrazí najnovších porušovateľov.
---
## Zoznam použitých kontajnerov
| Kontajner | Popis |
|--------------------------------------|-------|
| `tetianamohorian/hate-speech-bot` | Obsahuje Telegram bota a Flask webovú aplikáciu v jednom kontajneri. |
| `mysql:8` | Databázový server pre ukladanie porušení. |
---
## Zoznam Kubernetes objektov
| Objekt | Popis |
|----------------------------|-------|
| `Namespace: botspace` | Oddelený menný priestor pre všetky objekty aplikácie. |
| `Deployment: bot-deployment` | Spúšťa Telegram bota. |
| `Deployment: flask-web` | Spúšťa webovú aplikáciu. |
| `StatefulSet: mysql` | Stabilné nasadenie MySQL databázy s uchovaním dát. |
| `PersistentVolume` | Trvalý zväzok na fyzickom disku pre MySQL. |
| `PersistentVolumeClaim` | Požiadavka na disk pre MySQL. |
| `Service: mysql` | Interný prístup k databáze z iných podov. |
| `Service: flask-service` | Sprístupňuje Flask web cez port-forward. |
| `ConfigMap: init-sql` | Obsahuje SQL skript na inicializáciu databázy. |
| `Secret: bot-secret` | Bezpečne uchováva Telegram API token. |
---
## Virtuálne siete a pomenované zväzky
- Všetky pod-y komunikujú v internej sieti v rámci `botspace`.
- `PersistentVolume` pripojený k MySQL cez `PersistentVolumeClaim` zabezpečuje trvalé uloženie údajov v `/var/lib/mysql`.
---
## Konfigurácia kontajnerov
- `flask-web` je nakonfigurovaný na porte `5000`, ktorý je sprístupnený cez službu `flask-service`.
- `bot-deployment` využíva `Secret` na získanie Telegram tokenu.
- `mysql` inicializuje databázu automaticky pomocou `initContainer` a `ConfigMap` so SQL skriptom.
---
## Návod na použitie
### Príprava aplikácie:
```bash
./prepare-app.sh
```
Vytvorí Docker image a pushne ho na Docker Hub.
---
### Spustenie aplikácie:
```bash
./start-app.sh
```
Vytvorí všetky Kubernetes objekty a spustí port-forward (napr. na `localhost:8080`).
---
### Pozastavenie aplikácie (port-forward):
```bash
pkill -f "kubectl port-forward"
```
---
### Odstránenie celej aplikácie:
```bash
./stop-app.sh
```
Zmaže celý namespace `botspace` a všetky objekty.
---
## Prístup k webovej aplikácii
Po spustení aplikácie si otvor webový prehliadač a zadaj adresu:
```
http://localhost:8888
```
Zobrazí sa webová stránka s tabuľkou porušovateľov, ktorá sa aktualizuje každých 5 sekúnd.
---