This repository has been archived on 2026-04-14. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
routeros_backup_next/README.md
Mateusz Gruszczyński ff7dbcb4e4 first commit
2026-04-12 21:26:12 +02:00

2.9 KiB
Raw Blame History

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:

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

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