/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:

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