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

  1. Zbudowanie obrazu Docker
docker-compose build
  1. 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.

Description
No description provided
Readme 514 KiB
Languages
HTML 53.4%
Python 46.1%
Shell 0.4%
Dockerfile 0.1%