# RouterOS Backup Manager RouterOS Backup Manager to aplikacja Flask umożliwiająca zarządzanie kopiami zapasowymi urządzeń Mikrotik RouterOS. Aplikacja pozwala na eksport konfiguracji, tworzenie backupów binarnych, ich przechowywanie, porównywanie oraz przywracanie. ## 🔧 Instalacja ### 1. Klonowanie repozytorium ```sh git clone https://gitea.linuxiarz.pl/gru/routeros_backup.git cd routeros_backup ``` ### 2. Tworzenie i aktywacja środowiska wirtualnego (opcjonalnie) ```sh python3 -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows ``` ### 3. Instalacja zależności ```sh pip install -r requirements.txt ``` ### 4. Uruchomienie aplikacji lokalnie ```sh python run_waitress.py ``` Aplikacja będzie dostępna pod adresem: `http://127.0.0.1:5581/` --- ## 📦 Uruchamianie w Dockerze 1. **Zbudowanie obrazu Docker** ```sh docker-compose build ``` 2. **Uruchomienie kontenera** ```sh docker-compose up -d ``` Aplikacja uruchomi się na porcie `5581`. --- ## 📚 Funkcjonalności - 🔐 System użytkowników (rejestracja, logowanie, zmiana hasła) - 📡 Połączenie SSH do routerów MikroTik - 🛠 Eksport konfiguracji i tworzenie backupów binarnych - 🕵️‍♂️ Porównywanie backupów (`diff`) - 📩 Powiadomienia e-mail oraz Pushover - 📅 Harmonogram automatycznych backupów (APScheduler) - 🧹 Automatyczne czyszczenie starych backupów i logów - 🚀 Obsługa przez interfejs webowy --- ## ⚙️ Konfiguracja ### Zmiana ustawień Plik `app.py` zawiera konfigurację bazy danych oraz inne ustawienia aplikacji: ```python app.config['SECRET_KEY'] = 'super-secret-key' app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///backup_routeros.db' ``` ### 📬 Konfiguracja SMTP (E-mail) Aby skonfigurować powiadomienia e-mail, wprowadź dane w sekcji ustawień: - Serwer SMTP - Login/hasło SMTP - Port (587 dla TLS, 465 dla SSL) ### 📲 Powiadomienia Pushover Aby włączyć powiadomienia Pushover, uzupełnij `pushover_token` oraz `pushover_userkey` w ustawieniach. --- ## 🔍 API & Health Check Aplikacja zawiera endpoint `/health`, który zwraca status bazy danych: ```sh curl http://127.0.0.1:5581/health ``` Przykładowa odpowiedź: ```json { "status": "ok", "timestamp": "2024-02-26T12:34:56Z" } ``` --- ## 🚀 Autor i licencja Projekt stworzony przez Mateusz Grusczyński @linuxiarz.pl - dostępny na licencji MIT.