This commit is contained in:
Mateusz Gruszczyński
2025-02-24 23:08:03 +01:00
parent 1efc3341b4
commit d1d0ccc311
38 changed files with 2251 additions and 1428 deletions

View File

@@ -1,21 +1,92 @@
# RouterOS backup system
/etc/hosts Manager to aplikacja webowa do zarządzania plikami hosts na zdalnych serwerach, napisana przy użyciu Flask, SQLAlchemy oraz APScheduler. Aplikacja umożliwia dodawanie, edycję, usuwanie hostów, import/eksport konfiguracji, tworzenie backupów oraz automatyczne wdrażanie zmian.
# Instalation:
- clone (to ex. /opt/hosts_app)
- create venv
- install requirements via pip
- copy systemd service (hosts_app.service)
Wymagania
---------
- Python 3.7 lub nowszy
- Pakiety:
- Flask
- Flask-SQLAlchemy
- APScheduler
- paramiko
- waitress
# Start
- edit gunicorn_config.py and set listen IP
- systemctl start hosts_app.service
- go to http://IPADDRESS:8888
Możesz zainstalować wszystkie zależności za pomocą polecenia:
# Register, Login
pip install -r requirements.txt
# Configure devices, /etc/hosts
Przykładowa zawartość pliku requirements.txt:
-----------------------------------------------
Flask
Flask-SQLAlchemy
APScheduler
paramiko
waitress
Uruchamianie Aplikacji
----------------------
Tryb developerski
-----------------
Aplikację można uruchomić lokalnie, korzystając z wbudowanego serwera Flask:
# Authors
python app.py
- [@linuxiarz.pl]
Aplikacja będzie dostępna domyślnie pod adresem: http://0.0.0.0:8888
Uruchomienie z Waitress
-----------------------
Aby uruchomić aplikację w trybie produkcyjnym przy użyciu serwera Waitress, użyj pliku run_waitress.py:
python run_waitress.py
Aplikacja będzie dostępna pod adresem: http://0.0.0.0:5580
- Port: 5580
- Liczba wątków: 4
Harmonogramy
------------
Aplikacja wykorzystuje APScheduler do automatycznych zadań:
- Automatyczne wdrożenia co 5 minut (jeśli włączone w ustawieniach użytkownika).
- Automatyczne tworzenie backupów co 60 minut.
- Czyszczenie starych backupów co 24 godziny.
Harmonogramy działają w tle w ramach kontekstu aplikacji i są uruchamiane przy starcie aplikacji.
Struktura Katalogów
-------------------
- app.py główny plik aplikacji Flask.
- run_waitress.py plik do uruchamiania aplikacji z serwerem Waitress.
- templates/ katalog z szablonami HTML.
- static/ katalog na zasoby statyczne (CSS, JS, obrazy).
Dodatkowe Informacje
--------------------
- Aplikacja ukrywa nagłówki serwera dzięki ustawieniom w app.py.
- Interfejs został zmodernizowany przy użyciu Bootstrapa 5, z możliwością przełączania trybu jasnego i ciemnego.
- Tooltipy są używane do dynamicznego wyświetlania rozwiązywanych nazw hostów przy najechaniu myszką.
- Automatyczne zadania i harmonogramy działają w tle, dzięki czemu aplikacja wykonuje regularne wdrożenia i backupy.
Instalacja środowiska wirtualnego (venv)
-----------------------------------------
Aby utworzyć środowisko wirtualne w Pythonie, wykonaj poniższe kroki:
1. Utwórz środowisko:
python -m venv venv
2. Aktywuj środowisko:
- W systemach Unix/Linux/macOS:
source venv/bin/activate
- W systemie Windows:
venv\Scripts\activate
3. Zainstaluj wymagane pakiety:
pip install -r requirements.txt
Kontakt
-------
@linuxiarz.pl