/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.
Wymagania
- Python 3.7 lub nowszy
- Pakiety:
- Flask
- Flask-SQLAlchemy
- APScheduler
- paramiko
- waitress
Możesz zainstalować wszystkie zależności za pomocą polecenia:
pip install -r requirements.txt
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:
python app.py
Aplikacja będzie dostępna domyślnie pod adresem: http://0.0.0.0:5580
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.
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:
-
Utwórz środowisko:
python -m venv venv
-
Aktywuj środowisko:
-
W systemach Unix/Linux/macOS:
source venv/bin/activate
-
W systemie Windows:
venv\Scripts\activate
-
-
Zainstaluj wymagane pakiety:
pip install -r requirements.txt
Kontakt
@linuxiarz.pl