2.9 KiB
2.9 KiB
RouterOS Backup Manager Next
Refactor starej aplikacji Flask/Bootstrap do architektury:
- backend: FastAPI + SQLAlchemy + APScheduler
- frontend: Angular + PrimeNG + ngx-translate
- dev: lokalnie bez Dockera
- prod: Docker Compose + Nginx + FastAPI
Co poprawiono względem poprzedniej iteracji
- usunięte bezpośrednie wywołanie
uvicornze skryptów startowych - zależności backendu zaktualizowane pod nowszy FastAPI/Pydantic i Python 3.14
- dev frontend domyślnie startuje na
127.0.0.1, więc znika ostrzeżenie o otwartym0.0.0.0 - dodane środowisko produkcyjne:
Dockerfile,docker-compose.yml, nginx proxy - dodane
.env.example,.gitignore,.dockerignore,start_prod.sh - dodane brakujące ekrany: rejestracja, zmiana hasła
- frontend przebudowany wizualnie w kierunku Avalon-inspired PrimeNG admin shell
- wydzielone wspólne komponenty UI:
app-topbar,app-sidebar,app-page-header,app-stat-card,app-section-card - dodane brakujące operacje UI: edycja/usuwanie routera, export-all, binary-all, filtry i sortowanie plików
- dodany HTML diff side-by-side
- dodany migrator starej bazy SQLite
- przywrócona automatyczna retencja logów
Struktura
backend/– FastAPI APIfrontend/– Angular UIbackend/scripts/migrate_legacy_sqlite.py– migracja danych ze starej SQLitestart_dev.sh– start lokalny bez Dockerastart_prod.sh– start produkcyjny przez Docker Compose.env.example– konfiguracja Docker/produkcyjnabackend/.env.dev.example– konfiguracja lokalna dla deweloperki bez DockeraFEATURE_AUDIT.md– porównanie starej i nowej wersji funkcjonalnie
Dev bez Dockera
Wymagania:
- Python 3.13 lub 3.14
- Node.js 22+
- npm
Start:
cp backend/.env.dev.example backend/.env
./start_dev.sh
Adresy:
- backend:
http://127.0.0.1:8000 - docs:
http://127.0.0.1:8000/docs - frontend:
http://127.0.0.1:4200
Dla wystawienia UI w LAN użyj:
cd frontend
npm run start:lan
Domyślne konto po pierwszym starcie:
- login:
admin - hasło:
admin
Produkcja w Dockerze
cp .env.example .env
# uzupełnij SECRET_KEY i DEFAULT_ADMIN_PASSWORD
./start_prod.sh
Domyślnie frontend będzie dostępny na:
http://127.0.0.1:8080
Konfiguracja środowisk
Docker / produkcja (.env w katalogu głównym)
Najważniejsze zmienne:
SECRET_KEYDATABASE_URLDATA_DIRALLOW_REGISTRATIONDEFAULT_ADMIN_USERNAMEDEFAULT_ADMIN_PASSWORDCORS_ORIGINSFRONTEND_PORT
Migracja starej bazy Flask/SQLite
Jeżeli masz starą bazę backup_routeros.db, możesz zaimportować dane:
cd backend
PYTHONPATH=. python scripts/migrate_legacy_sqlite.py /sciezka/do/backup_routeros.db
Dev bez Dockera (backend/.env)
Lokalny backend korzysta z backend/.env. Najprościej zacząć od:
cp backend/.env.dev.example backend/.env