Koch Laboratory

Laborbuch — podręcznik administratora

Profil laboratorium, projekty, użytkownicy i 2FA, storno, tłumaczenia, zamknięcia tygodni, kopie, licencja, aktualizacje.

Podręcznik administratora instancji Laborbuch — konfiguracja, użytkownicy, zamykanie tygodni, kopie i licencja. Codzienną pracę opisuje podręcznik użytkownika.

Panel admina

Panel jest pod adresem /admin/ (logowanie tym samym kontem i 2FA co do dziennika — panelu nie da się otworzyć z pominięciem 2FA). Dostęp mają konta z uprawnieniem „w zespole” (staff); pełną konfigurację robi superużytkownik utworzony przy instalacji.

Pierwsza konfiguracja — Ustawienia strony

Ustawienia strony → Profil laboratorium dopasowuje system do charakteru pracy:

Ustawienie Znaczenie
Integracja Git/GitHub Repozytoria, synchronizacja commitów i kotwice commitowe — profil IT/hardware; wyłącz w laboratorium bez kodu
Kotwice plikowe (uploady) Załączanie plików dowodowych do wpisów
Tryb kotwic plikowych Upload — plik przechowywany w instancji; Hash-only — plik zostaje u użytkownika, system zapisuje tylko odcisk SHA-256 (tajemnica przedsiębiorstwa nigdy nie trafia na serwer)

Projekty

Projekty → Dodaj: nazwa, slug, Kod Vorhaben (odwzorowanie na wniosek BSFZ), opis odgraniczenia B+R od rutyny. Dwie listy osób:

Nowe konto trafia domyślnie do członków wszystkich aktywnych projektów, a nowy projekt dostaje wszystkie istniejące konta. Wykluczenie kogoś z projektu to świadome usunięcie z listy Członkowie — raz usunięta osoba nie zostanie dopisana ponownie.

Przy włączonym Git dodaj projektowi Repozytoria (format owner/nazwa; token dostępu ustawia się w konfiguracji instancji jako GITHUB_TOKEN). Commity pobierają się co 15 minut; ręcznie: przycisk w dashboardzie albo akcja Synchronizuj commity z GitHub w adminie.

Token typu fine-grained obejmuje repo tylko jednego właściciela zasobów, więc repo organizacji jest dla tokena konta osobistego niewidoczne (GitHub odpowiada wtedy 404, nie 403). Takie repo dostaje własny token w polu Token dostępowy — wystaw go na organizację (Resource owner = organizacja, wybrane repo, uprawnienie Contents: Read-only), a organizacja musi mieć włączony dostęp przez fine-grained PAT. Puste pole = token globalny. Akcja Sprawdź dostęp GitHub weryfikuje konfigurację bez pobierania commitów.

Użytkownicy i 2FA

Użytkownicy → Dodaj: login i hasło, potem w edycji konta uprawnienia („w zespole” dla dostępu do admina) i grupy ról (Badacz, Kierownik B+R, Redaktor CMS). Metodę 2FA deklarujesz per konto — na dole strony użytkownika:

Limit kont licencji liczy konta aktywne: przy wyczerpanym limicie nie dodasz ani nie aktywujesz konta — dezaktywacja (odznaczenie „aktywny”) zwalnia miejsce bez utraty historii wpisów.

Parametry rozliczeniowe (sekcja na stronie konta) zawierają osobowy sufit tygodniowy. Puste pole = sufit globalny instancji, domyślnie 40 h, czyli reguła Eigenleistung wg §3 Abs. 3 FZulG. Dla pracownika wpisz wymiar jego umowy: godziny pracownika są kwalifikowane w wysokości rzeczywistej, więc przy pół etatu sufit wynosi 20 h, a nadgodziny pracownika nie są „B+R ponad sufit”. Ustawiony sufit widać także na dashboardzie danej osoby — w pasku tygodnia i jako linia na wykresie.

Wpisy, korekty (storno) i tłumaczenia

Wpisy w adminie: pełna lista z filtrami. Wpis w otwartym tygodniu można poprawić; wpis zamknięty (🔒) jest tylko do odczytu — na zawsze.

Zamknięcie tygodnia — rytm pracy

Tydzień zamyka się komendą na serwerze (np. w poniedziałek za tydzień poprzedni):

docker compose exec web python manage.py close_week 2026-W29

Zamknięcie: buduje kanoniczny zapis wszystkich wpisów tygodnia → liczy SHA-256 → znakuje czasem w BeatTime (podpis Ed25519) i OpenTimestamps (kotwica w Bitcoinie) → blokuje wpisy (🔒). Dowody znajdziesz w Zamknięcia tygodni (odcisk, status, dowody stempli). Stempel OTS dojrzewa po potwierdzeniu w Bitcoinie — komenda upgrade_ots aktualizuje dowody.

Zasada: zamykaj regularnie. Otwarty tydzień to wpisy bez stempla — im szybciej zamkniesz, tym mocniejszy dowód.

Kopie zapasowe

Pulpit admina → Kopie zapasowe bazy: utworzenie kopii (bez zatrzymywania systemu), lista z datami, Pobierz (odłóż kopię poza serwer!), Przywróć (automatycznie odkłada stan sprzed przywrócenia jako pre-restore-…) i Usuń. Kopia obejmuje bazę; pliki dowodowe w media/ wymagają osobnej kopii katalogu. Operacje trafiają do dziennika audytu.

Audyt odczytów

Odczyty (audyt) — append-only rejestr: kto i kiedy otwierał raporty, pobierał pliki dowodowe, tworzył i przywracał kopie. Wpisów nie da się zmienić ani usunąć — przy tajemnicy przedsiębiorstwa odczyt bywa równie wrażliwy jak edycja.

Licencja

Plik license.json leży w katalogu instalacji. Stan widać na dashboardzie (klient, pakiet, limit kont, ważność). Po wygaśnięciu instancja przechodzi w tryb tylko-do-odczytu z pełnym eksportem — dane nigdy nie są zakładnikiem. Odnowienie: podmiana pliku na nowy (bez restartu). Rozszerzenie pakietu: nowy plik od dostawcy.

Aktualizacje

cd laborbuch && docker compose pull && docker compose up -d

Migracje bazy wykonują się automatycznie przy starcie. Obrazy są podpisane (cosign) — weryfikacja opisana na stronie produktu. Przed większymi aktualizacjami utwórz kopię zapasową.