# 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 1. **Klonowanie repozytorium:** ```bash git clone https://github.com/TwojeRepozytorium/routeros-update.git cd routeros-update 2. Utworzenie środowiska wirtualnego i instalacja zależności: ``` python3 -m venv venv source venv/bin/activate # Na Windows: venv\Scripts\activate pip install -r requirements.txt 3. Inicjalizacja bazy danych: (nie jest to potrzebne, tylko przy aktualizacji) 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 1. :**Plik konfiguracyjny::** W pliku app.py ustaw odpowiednią wartość dla SECRET_KEY oraz, jeśli potrzebujesz, zmodyfikuj SQLALCHEMY_DATABASE_URI. 2. :**Powiadomienia::** Po rejestracji użytkownika skonfiguruj ustawienia powiadomień (Pushover, SMTP) w sekcji ustawień. 3. :**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. ## Instalacja # Lokalnie 1. **Klonowanie repozytorium:** ```bash git clone https://github.com/TwojeRepozytorium/routeros-update.git cd routeros-update **Klonowanie repozytorium:** ```python3 -m venv venv 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: 1. Dockerfile – definicja obrazu aplikacji. 2. docker-compose.yml – konfiguracja kontenera. 3. start.sh – skrypt uruchamiający kontenery (wybiera podman-compose, jeśli dostępny, lub docker-compose). Aby uruchomić aplikację w Dockerze, wykonaj: ```./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 (operacja usunie stare wpisy z bazy). ## Wkład i rozwój Zapraszam do zgłaszania poprawek i propozycji rozwoju. Aby wnieść swój wkład: 1. Forkuj repozytorium. 2. Wprowadź zmiany. 3. Otwórz pull request. ## Licencja Projekt jest dostępny na licencji MIT.