96 lines
2.9 KiB
Markdown
96 lines
2.9 KiB
Markdown
# 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
|
||
```
|