first commit

This commit is contained in:
Mateusz Gruszczyński
2026-04-12 21:27:24 +02:00
parent ff7dbcb4e4
commit d4f14832b3

View File

@@ -1,84 +1,14 @@
# 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`
- `http://127.0.0.1:5580`
## 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:
@@ -86,10 +16,3 @@ 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:
```bash
cp backend/.env.dev.example backend/.env
```