This commit is contained in:
Mateusz Gruszczyński 2025-02-26 14:41:40 +01:00
parent 02858f7b7a
commit d5c8aedfd4

141
README.md
View File

@ -4,129 +4,116 @@ RouterOS Update & Changelog Dashboard to aplikacja webowa oparta na Flask, któr
## Funkcjonalności ## Funkcjonalności
- **Pobieranie i prezentacja changelogów** ### Pobieranie i prezentacja changelogów
- Automatyczne pobieranie changelogów z witryny MikroTik. - Automatyczne pobieranie changelogów z witryny MikroTik.
- Filtrowanie i zapisywanie wpisów tylko dla wersji 6.x i 7.x. - Filtrowanie i zapisywanie wpisów tylko dla wersji 6.x i 7.x.
- Podział changelogów według kanałów wydania: stable, rc, beta. - Podział changelogów według kanałów wydania: stable, rc, beta.
- Formatowanie wersji (np. „7.182025” jest wyświetlane jako „7.18”) wraz z datą wydania. - Formatowanie wersji (np. "7.182025" jest wyświetlane jako "7.18") wraz z datą wydania.
- Prezentacja changelogów z wykorzystaniem Prism.js z obsługą trybu ciemnego/jasnego. - Prezentacja changelogów z wykorzystaniem Prism.js z obsługą trybu ciemnego/jasnego.
- **Zarządzanie urządzeniami** ### Zarządzanie urządzeniami
- Dodawanie, edycja i monitorowanie urządzeń MikroTik. - Dodawanie, edycja i monitorowanie urządzeń MikroTik.
- Sprawdzanie aktualizacji oprogramowania na urządzeniach. - Sprawdzanie aktualizacji oprogramowania na urządzeniach.
- Rejestrowanie logów i historii aktualizacji. - Rejestrowanie logów i historii aktualizacji.
- **Dashboard** ### Dashboard
- Wyświetlanie liczby urządzeń, logów, urządzeń wymagających aktualizacji oraz wykonanych aktualizacji. - Wyświetlanie liczby urządzeń, logów, urządzeń wymagających aktualizacji oraz wykonanych aktualizacji.
- Prezentacja najnowszych wersji systemu (RouterOS 7.x i 6.x) z opcją szybkiego przejścia do szczegółowego changeloga. - Prezentacja najnowszych wersji systemu (RouterOS 7.x i 6.x) z opcją szybkiego przejścia do szczegółowego changeloga.
- Lista ostatnich zdarzeń z systemu. - Lista ostatnich zdarzeń z systemu.
- **Powiadomienia** ### Powiadomienia
- Wysyłanie powiadomień za pomocą Pushover i e-mail, gdy dostępne są nowe aktualizacje. - Wysyłanie powiadomień za pomocą Pushover i e-mail, gdy dostępne są nowe aktualizacje.
- Wbudowana detekcja anomalii na podstawie logów. - Wbudowana detekcja anomalii na podstawie logów.
- **Planowanie zadań** ### Planowanie zadań
- Automatyczne sprawdzanie urządzeń, pobieranie changelogów oraz czyszczenie starych logów dzięki APScheduler. - Automatyczne sprawdzanie urządzeń, pobieranie changelogów oraz czyszczenie starych logów dzięki APScheduler.
## Technologie ## Technologie
- **Flask** framework webowy. - **Flask** framework webowy.
- **SQLAlchemy** ORM do zarządzania bazą danych. - **SQLAlchemy** ORM do zarządzania bazą danych.
- **Flask-Login** uwierzytelnianie użytkowników. - **Flask-Login** uwierzytelnianie użytkowników.
- **APScheduler** planowanie zadań w tle. - **APScheduler** planowanie zadań w tle.
- **BeautifulSoup** parsowanie HTML do pobierania changelogów. - **BeautifulSoup** parsowanie HTML do pobierania changelogów.
- **Prism.js** prezentacja i podświetlanie składni (z trybem ciemnym/jasnym). - **Prism.js** prezentacja i podświetlanie składni (z trybem ciemnym/jasnym).
- **Bootstrap 5** responsywny interfejs użytkownika. - **Bootstrap 5** responsywny interfejs użytkownika.
## Instalacja ## Instalacja
1. **Klonowanie repozytorium:** ### Klonowanie repozytorium
```bash ```bash
git clone https://github.com/TwojeRepozytorium/routeros-update.git git clone https://github.com/TwojeRepozytorium/routeros-update.git
cd routeros-update cd routeros-update
```
2. Utworzenie środowiska wirtualnego i instalacja zależności: ### Utworzenie środowiska wirtualnego i instalacja zależności
``` python3 -m venv venv ```bash
source venv/bin/activate # Na Windows: venv\Scripts\activate python3 -m venv venv
source venv/bin/activate # Na Windows: venv\Scriptsctivate
pip install -r requirements.txt pip install -r requirements.txt
```
3. Inicjalizacja bazy danych: (nie jest to potrzebne, tylko przy aktualizacji) ### Inicjalizacja bazy danych
> *Nie jest to wymagane, chyba że przeprowadzasz aktualizację.*
Domyślnie aplikacja używa SQLite. Uruchom aplikację lub użyj Flask shell, aby utworzyć bazę: Domyślnie aplikacja używa SQLite. Uruchom aplikację lub użyj Flask shell, aby utworzyć bazę:
```
```bash
flask shell flask shell
>>> from app import db >>> from app import db
>>> db.create_all() >>> db.create_all()
```
## Konfiguracja ## Konfiguracja
1. :**Plik konfiguracyjny::** ### Plik konfiguracyjny
W pliku app.py ustaw odpowiednią wartość dla SECRET_KEY oraz, jeśli potrzebujesz, zmodyfikuj SQLALCHEMY_DATABASE_URI. W pliku `app.py` ustaw odpowiednią wartość dla `SECRET_KEY` oraz, jeśli potrzebujesz, zmodyfikuj `SQLALCHEMY_DATABASE_URI`.
2. :**Powiadomienia::** ### Powiadomienia
Po rejestracji użytkownika skonfiguruj ustawienia powiadomień (Pushover, SMTP) w sekcji ustawień. Po rejestracji użytkownika skonfiguruj ustawienia powiadomień (Pushover, SMTP) w sekcji ustawień.
3. :**Tryb ciemny/jasny::** ### Tryb ciemny/jasny
Globalny przełącznik trybu (w menu) umożliwia zmianę wyglądu całej aplikacji, w tym motywu Prism.js wykorzystywanego do prezentacji changelogów. Globalny przełącznik trybu (w menu) umożliwia zmianę wyglądu całej aplikacji, w tym motywu Prism.js wykorzystywanego do prezentacji changelogów.
## Instalacja ## Uruchomienie aplikacji
# Lokalnie ### Lokalnie
1. **Klonowanie repozytorium:** ```bash
```bash python app.py
git clone https://github.com/TwojeRepozytorium/routeros-update.git ```
cd routeros-update
**Klonowanie repozytorium:** Aplikacja będzie dostępna pod adresem: `http://0.0.0.0:5582`
```python3 -m venv venv ### Uruchomienie w Dockerze
source venv/bin/activate # Na Windows: venv\Scripts\activate
pip install -r requirements.txt
3. **Uruchomienie aplikacji:**
```python app.py
Aplikacja będzie dostępna pod adresem: http://0.0.0.0:5582
# Uruchomienie w Dockerze
Aplikację można uruchomić w kontenerze Docker (lub Podman). W repozytorium znajdują się następujące pliki: Aplikację można uruchomić w kontenerze Docker (lub Podman). W repozytorium znajdują się następujące pliki:
1. Dockerfile definicja obrazu aplikacji. - `Dockerfile` definicja obrazu aplikacji.
2. docker-compose.yml konfiguracja kontenera. - `docker-compose.yml` konfiguracja kontenera.
3. start.sh skrypt uruchamiający kontenery (wybiera podman-compose, jeśli dostępny, lub docker-compose). - `start.sh` skrypt uruchamiający kontenery (wybiera `podman-compose`, jeśli dostępny, lub `docker-compose`).
Aby uruchomić aplikację w Dockerze, wykonaj: Aby uruchomić aplikację w Dockerze, wykonaj:
```./start.sh ```bash
./start.sh
```
Skrypt zatrzyma i usunie poprzednie kontenery, odbuduje obraz i uruchomi aplikację w tle. Skrypt zatrzyma i usunie poprzednie kontenery, odbuduje obraz i uruchomi aplikację w tle.
## Użytkowanie ## Użytkowanie
1. Dashboard: 1. **Dashboard**: Na stronie głównej dashboardu możesz zobaczyć statystyki urządzeń, liczbę logów, urządzeń wymagających aktualizacji, historię aktualizacji oraz najnowsze wersje systemu (dla RouterOS 7.x i 6.x).
Na stronie głównej dashboardu możesz zobaczyć statystyki urządzeń, liczbę logów, urządzeń wymagających aktualizacji, historię aktualizacji oraz najnowsze wersje systemu (dla RouterOS 7.x i 6.x). 2. **Zarządzanie urządzeniami**: Dodawaj i edytuj urządzenia, a także sprawdzaj ich aktualizacje i logi.
3. **Changelog**: Przeglądaj changelogi z podziałem na kanały wydania (stable, rc, beta) oraz serie wersji (7.x i 6.x). Możesz wybrać konkretny changelog z listy lub wyświetlić najnowszy wpis.
2. Zarządzanie urządzeniami: 4. **Aktualizacja changelogów**: Użyj przycisku "Aktualizuj changelogi" na stronie changelogów, aby ręcznie pobrać wszystkie nowe wpisy.
Dodawaj i edytuj urządzenia, a także sprawdzaj ich aktualizacje i logi.
3. Changelog:
Przeglądaj changelogi z podziałem na kanały wydania (stable, rc, beta) oraz serie wersji (7.x i 6.x). Możesz wybrać konkretny changelog z listy lub wyświetlić najnowszy wpis.
4. Aktualizacja changelogów:
Użyj przycisku "Aktualizuj changelogi" na stronie changelogów, aby ręcznie pobrać wszystkie nowe wpisy (operacja usunie stare wpisy z bazy).
## Wkład i rozwój ## Wkład i rozwój
Zapraszam do zgłaszania poprawek i propozycji rozwoju. Aby wnieść swój wkład: Zapraszam do zgłaszania poprawek i propozycji rozwoju.
1. Forkuj repozytorium.
2. Wprowadź zmiany.
3. Otwórz pull request.
## Licencja ## Licencja
Projekt jest dostępny na licencji MIT. Projekt jest dostępny na licencji MIT.