fancy dash
This commit is contained in:
1 parent
3b317a4f0c
commit
ccccdc2031
16 files changed
+1530
-34
No files matched your search
@@ -10,6 +10,47 @@ Jeden kontener buildera buduje z jednego commita RustProxy:
|
||||
|
||||
**Agent Docker jest pakowany wyłącznie na Linux (DEB/RPM); brak paczki FreeBSD pkg dla agenta.** Nie ma Docker-in-Docker, SCP ani osobnego watchera repo OPNsense. FreeBSD sysroot, clang/lld i Rust target są częścią głównego obrazu buildera. OPNsense dostaje osobny publiczny adres. Gałąź Linux, gałąź OPNsense i opcjonalna gałąź natywnego FreeBSD są budowane oraz publikowane niezależnie, więc błąd testów Linux nie blokuje pakietu FreeBSD.
|
||||
|
||||
## Panel repozytorium (RustProxy Package Registry)
|
||||
|
||||
Strony startowe wszystkich trzech repozytoriów działają teraz jako **lekka aplikacja Python** (`dashboard/`) za istniejącym Nginx. Wygląd nawiązuje do panelu RustProxy 0.34.6 (ciemny, jasny i kremowy motyw). **APT, RPM i pkg są nadal obsługiwane bezpośrednio przez Nginx**, więc mechanizm aktualizacji paczek, ścieżki plików, podpisy GPG i atomowe przełączanie `current` nie zmieniają się.
|
||||
|
||||
Panel udostępnia:
|
||||
|
||||
- **Przegląd**: najnowsza wersja, czas buildu, commit, stan Linux / OPNsense / FreeBSD, statystyki i ostatnie paczki.
|
||||
- **Paczki i wersje**: pełny katalog z nazwą, wersją, architekturą, datą, rozmiarem i linkiem pobrania; wyszukiwanie, sortowanie oraz filtry formatów/kanałów.
|
||||
- **Instalacja**: aktualne polecenia dla APT, DNF, OPNsense i natywnego FreeBSD oraz przyciski kopiowania.
|
||||
- **Repozytoria**: linki do metadanych, katalogów i klucza GPG. Automatyczne odświeżanie co **60 sekund** oraz ręczne odświeżenie.
|
||||
|
||||
Adresy paneli (bez zmian domen i portów):
|
||||
|
||||
```text
|
||||
REPOSITORY_URL/ Linux DEB + RPM
|
||||
OPNSENSE_REPOSITORY_URL/ OPNsense pkg
|
||||
OPNSENSE_REPOSITORY_URL/freebsd/ Native FreeBSD pkg (opcjonalnie)
|
||||
```
|
||||
|
||||
Publiczne API, np. `https://twoje-repo.example/api/v1/packages`, zwraca JSON z `builds`, `packages` i `summary`. API jest dostępne na obu hostach. Panel nie zapisuje nic w repo; odczytuje wyłącznie opublikowany snapshot `data/repository/current`. Kontener Python nie publikuje portu hosta i ma dostęp **tylko do odczytu**.
|
||||
|
||||
Nowe buildy zapisują `built_at` w `LINUX-BUILD-INFO.txt` oraz `BUILD-INFO.txt` dla OPNsense/FreeBSD (UTC, ISO 8601). **Dla wydań sprzed tej zmiany** panel pokazuje czas modyfikacji pliku, oznaczony w podpowiedzi; nie twierdzi, że to potwierdzony czas buildu. Przełączanie wersji działa automatycznie i nie wymaga ponownego uruchamiania panelu.
|
||||
|
||||
Uruchomienie po aktualizacji projektu:
|
||||
|
||||
```bash
|
||||
./start.sh
|
||||
# lub ręcznie (przy ustawionym .env):
|
||||
docker compose --env-file .env build repository-dashboard
|
||||
docker compose --env-file .env up -d repository-dashboard repository-http
|
||||
|
||||
# API i zdrowie nginx
|
||||
curl -fsS http://127.0.0.1:18765/api/v1/packages
|
||||
curl -fsS http://127.0.0.1:18765/healthz
|
||||
|
||||
# testy komponentu Python (bez Dockera)
|
||||
python3 -m unittest discover -s tests -p 'test_dashboard.py' -v
|
||||
```
|
||||
|
||||
Panel zależy wyłącznie od biblioteki standardowej Pythona, bez dodatkowych pakietów pip. Jeżeli nie ma jeszcze buildów, pokaże komunikat **brak paczek**, a nie fikcyjne wersje.
|
||||
|
||||
## Szybki start
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user