102 lines
2.9 KiB
Markdown
102 lines
2.9 KiB
Markdown
# 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.
|
||
|
||
---
|
||
|