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
git clone https://gitea.linuxiarz.pl/gru/routeros_backup.git
cd routeros_backup
2. Tworzenie i aktywacja środowiska wirtualnego (opcjonalnie)
python3 -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
3. Instalacja zależności
pip install -r requirements.txt
4. Uruchomienie aplikacji lokalnie
python run_waitress.py
Aplikacja będzie dostępna pod adresem: http://127.0.0.1:5581/
📦 Uruchamianie w Dockerze
- Zbudowanie obrazu Docker
docker-compose build
- Uruchomienie kontenera
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:
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:
curl http://127.0.0.1:5581/health
Przykładowa odpowiedź:
{
"status": "ok",
"timestamp": "2024-02-26T12:34:56Z"
}
🚀 Autor i licencja
Projekt stworzony przez Mateusz Grusczyński @linuxiarz.pl - dostępny na licencji MIT.