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 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
git clone https://github.com/TwojeRepozytorium/routeros-update.git
cd routeros-update
Utworzenie środowiska wirtualnego i instalacja zależności
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ę:
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
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 (wybierapodman-compose
, jeśli dostępny, lubdocker-compose
).
Aby uruchomić aplikację w Dockerze, wykonaj:
./start.sh
Skrypt zatrzyma i usunie poprzednie kontenery, odbuduje obraz i uruchomi aplikację w tle.
Użytkowanie
- 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).
- Zarządzanie urządzeniami: Dodawaj i edytuj urządzenia, a także sprawdzaj ich aktualizacje i logi.
- 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.
- 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.