routeros_update/README.md
Mateusz Gruszczyński d5c8aedfd4 readme
2025-02-26 14:41:40 +01:00

119 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

# RouterOS Update & Changelog Dashboard
RouterOS Update & Changelog Dashboard to aplikacja webowa oparta na Flask, która służy do monitorowania aktualizacji systemu RouterOS dla urządzeń MikroTik. Aplikacja pobiera changelogi z [MikroTik Changelogs](https://mikrotik.com/download/changelogs) i prezentuje je w przyjaznym interfejsie z podziałem na wersje (6.x, 7.x) oraz kanały wydania (stable, rc, beta). Dodatkowo dashboard wyświetla statystyki dotyczące urządzeń, logów, historii aktualizacji i ostatnich zdarzeń.
## Funkcjonalności
### Pobieranie i prezentacja changelogów
- Automatyczne pobieranie changelogów z witryny MikroTik.
- Filtrowanie i zapisywanie wpisów tylko dla wersji 6.x i 7.x.
- 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.
- Prezentacja changelogów z wykorzystaniem Prism.js z obsługą trybu ciemnego/jasnego.
### Zarządzanie urządzeniami
- Dodawanie, edycja i monitorowanie urządzeń MikroTik.
- Sprawdzanie aktualizacji oprogramowania na urządzeniach.
- Rejestrowanie logów i historii aktualizacji.
### Dashboard
- 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.
- Lista ostatnich zdarzeń z systemu.
### Powiadomienia
- Wysyłanie powiadomień za pomocą Pushover i e-mail, gdy dostępne są nowe aktualizacje.
- Wbudowana detekcja anomalii na podstawie logów.
### Planowanie zadań
- Automatyczne sprawdzanie urządzeń, pobieranie changelogów oraz czyszczenie starych logów dzięki APScheduler.
## Technologie
- **Flask** framework webowy.
- **SQLAlchemy** ORM do zarządzania bazą danych.
- **Flask-Login** uwierzytelnianie użytkowników.
- **APScheduler** planowanie zadań w tle.
- **BeautifulSoup** parsowanie HTML do pobierania changelogów.
- **Prism.js** prezentacja i podświetlanie składni (z trybem ciemnym/jasnym).
- **Bootstrap 5** responsywny interfejs użytkownika.
## Instalacja
### Klonowanie repozytorium
```bash
git clone https://github.com/TwojeRepozytorium/routeros-update.git
cd routeros-update
```
### Utworzenie środowiska wirtualnego i instalacja zależności
```bash
python3 -m venv venv
source venv/bin/activate # Na Windows: venv\Scriptsctivate
pip install -r requirements.txt
```
### 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ę:
```bash
flask shell
>>> from app import db
>>> db.create_all()
```
## Konfiguracja
### Plik konfiguracyjny
W pliku `app.py` ustaw odpowiednią wartość dla `SECRET_KEY` oraz, jeśli potrzebujesz, zmodyfikuj `SQLALCHEMY_DATABASE_URI`.
### Powiadomienia
Po rejestracji użytkownika skonfiguruj ustawienia powiadomień (Pushover, SMTP) w sekcji ustawień.
### 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.
## Uruchomienie aplikacji
### Lokalnie
```bash
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:
- `Dockerfile` definicja obrazu aplikacji.
- `docker-compose.yml` konfiguracja kontenera.
- `start.sh` skrypt uruchamiający kontenery (wybiera `podman-compose`, jeśli dostępny, lub `docker-compose`).
Aby uruchomić aplikację w Dockerze, wykonaj:
```bash
./start.sh
```
Skrypt zatrzyma i usunie poprzednie kontenery, odbuduje obraz i uruchomi aplikację w tle.
## Użytkowanie
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).
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.
4. **Aktualizacja changelogów**: Użyj przycisku "Aktualizuj changelogi" na stronie changelogów, aby ręcznie pobrać wszystkie nowe wpisy.
## Wkład i rozwój
Zapraszam do zgłaszania poprawek i propozycji rozwoju.
## Licencja
Projekt jest dostępny na licencji MIT.