# 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 `uvicorn` ze 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 otwartym `0.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 API - `frontend/` – Angular UI - `backend/scripts/migrate_legacy_sqlite.py` – migracja danych ze starej SQLite - `start_dev.sh` – start lokalny bez Dockera - `start_prod.sh` – start produkcyjny przez Docker Compose - `.env.example` – konfiguracja Docker/produkcyjna - `backend/.env.dev.example` – konfiguracja lokalna dla deweloperki bez Dockera - `FEATURE_AUDIT.md` – porównanie starej i nowej wersji funkcjonalnie ## Dev bez Dockera Wymagania: - Python 3.13 lub 3.14 - Node.js 22+ - npm Start: ```bash 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: ```bash cd frontend npm run start:lan ``` Domyślne konto po pierwszym starcie: - login: `admin` - hasło: `admin` ## Produkcja w Dockerze ```bash 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_KEY` - `DATABASE_URL` - `DATA_DIR` - `ALLOW_REGISTRATION` - `DEFAULT_ADMIN_USERNAME` - `DEFAULT_ADMIN_PASSWORD` - `CORS_ORIGINS` - `FRONTEND_PORT` ## Migracja starej bazy Flask/SQLite Jeżeli masz starą bazę `backup_routeros.db`, możesz zaimportować dane: ```bash 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: ```bash cp backend/.env.dev.example backend/.env ```