⬆ GÓRA
Przejrzysty przegląd Ta-Na-Si Media & Document Repository — architektura, stos technologiczny i informacje o twórcach.

Rdzeń repozytorium

Ta strona wyjaśnia, z czego zbudowane jest Ta-Na-Si Media & Document Repository — jego architekturę, technologię i ludzi stojących za jego rozwojem. Wierzymy w pełną przejrzystość: każdy, kto korzysta z archiwum albo myśli o prowadzeniu własnego, zasługuje na to, by dokładnie wiedzieć, z czego składa się system. Strona „O projekcie" wyjaśnia, po co jest to archiwum; ta strona wyjaśnia, jak działa.

1. Czym jest Rdzeń repozytorium

Rdzeń repozytorium to oprogramowanie, na którym działa to archiwum: w pełni niezależny, samodzielnie hostowany system archiwum cyfrowego, napisany od podstaw w jednym celu — aby przechowywać, porządkować i otwarcie udostępniać dokumenty i media jako materiał źródłowy o charakterze dowodowym. Nie opiera się na WordPressie, Joomli, Drupalu ani żadnym innym gotowym CMS-ie i nie używa żadnego frameworka PHP. Każdy komponent — warstwa bazy danych, silnik wyszukiwania, pracownia kuratorska, strony publiczne — został zaprojektowany i napisany specjalnie do tego zadania.

Oprogramowanie jest zbudowane jako platforma wieloinstalacyjna: nie obsługuje jednego centralnego archiwum, lecz napędza wiele osobnych, niezależnych. Każde archiwum — czy to mała kolekcja rodzinna, czy duże repozytorium regionalne — jest własną, kompletną instalacją z własną bazą danych, własnymi plikami i własnym opiekunem. Nie ma współdzielonej infrastruktury między archiwami ani centralnej usługi, od której by zależały.

2. Jedna baza kodu, wiele niezależnych archiwów

Każda instalacja uruchamia identyczną bazę kodu. Wszystko, co jest specyficzne dla jednego serwera — jego adres publiczny, dostęp do bazy danych, nadawca poczty — mieszka w jednym pliku środowiskowym, tworzonym raz podczas instalacji i nigdy niepodróżującym z kodem. Ta ścisła separacja sprawia, że model w ogóle działa: tę samą aktualizację oprogramowania można zastosować do każdego archiwum, małego czy dużego, nie dotykając indywidualnej konfiguracji żadnego z nich.

Nowe archiwum instaluje się przez prowadzonego krok po kroku asystenta instalacji w przeglądarce — bez wiersza poleceń, bez plików konfiguracyjnych do ręcznej edycji. Asystent mówi w 18 językach, sprawdza wymagania serwera, testuje połączenie z bazą danych, zanim cokolwiek zostanie zapisane, i tworzy konto właściciela z bezpiecznie haszowanym hasłem. Tabele bazy danych tworzy idempotentny system migracji: może uruchomić się dowolną liczbę razy i zawsze dochodzi do poprawnego schematu. Późniejsze zmiany schematu są wersjonowane i śledzone, więc każda instalacja może dokładnie zobaczyć, na jakim etapie się znajduje; rutynowe zmiany wchodzą automatycznie, a ciężkie czekają na świadome potwierdzenie właściciela. Aktualizacje przebiegają w tej samej starannej kolejności: najpierw kopia zapasowa, potem migracja, na końcu wyczyszczenie pamięci podręcznej.

3. Stos technologiczny Wersja 1.0.0 (Thuringia)

🖥️ SerwerStandardowe środowisko Apache + PHP — działa na zwykłym hostingu współdzielonym lub na dowolnym własnym serwerze; bez kontenerów, bez narzędzi budowania, bez usług zewnętrznych
🐘 BackendPHP 8.1 lub nowszy — bez frameworka; jedyną zewnętrzną biblioteką po stronie serwera jest niewielki parser Markdown Parsedown
🗄️ Baza danychJedna warstwa wielosterownikowa obsługująca SQLite (zero konfiguracji), MySQL/MariaDB i PostgreSQL — każde archiwum wybiera to, co pasuje do jego rozmiaru
🔎 WyszukiwanieIndeks pełnotekstowy wszystkich tekstów rekordów plus dziewięć osi fasetowych (temat, miejsce, język, współtwórca, gatunek, część dzieła, kolekcja, seria, dostęp) z liczbą trafień na żywo
🌐 JęzykiInterfejs przygotowany na 18 pakietów językowych (w tłumaczeniu); 49 języków treści natywnie obsługiwanych w wyszukiwaniu i fasetach, w tym pisma pisane od prawej do lewej
📦 Przechowywanie plikówDrzewo mediów dzielone według UUID, z deterministycznymi ścieżkami — zaprojektowane na wzrost do milionów plików; opcjonalna replikacja poza serwer do magazynu obiektowego zgodnego z S3
🎨 FrontendRęcznie pisany HTML5 i CSS3 w warstwowym systemie projektowym, minimalny czysty JavaScript — każda strona działa najpierw bez skryptów
🧩 Biblioteki przeglądarkoweTrzy samodzielnie hostowane komponenty open source, serwowane z samego archiwum i nigdy z CDN: OpenSeadragon do powiększanego, głębokiego podglądu obrazów (New BSD 3-Clause), edytor tekstu sformatowanego Jodit (MIT) i edytor Markdown EasyMDE (MIT)
🔒 UwierzytelnianieLogowanie oparte na sesjach z silnym haszowaniem haseł, opcjonalnymi kodami dwuskładnikowymi (TOTP), blokadą po nieudanych próbach logowania i ochroną CSRF w każdym formularzu
⚡ Pamięć podręcznaPlikowa pamięć podręczna stron z ochroną przed lawiną żądań i osobnymi czasami życia dla serwera, przeglądarki i CDN; opcjonalnie Cloudflare z przodu
🗺️ SEO i wykrywalnośćStrumieniowa mapa witryny XML (pojedynczy plik lub tryb indeksu dla bardzo dużych archiwów), automatycznie generowany robots.txt, ustrukturyzowane metadane (JSON-LD), czyste, stabilne adresy URL
💾 Kopie zapasoweCztery wybieralne typy kopii zapasowych ZIP z regułą przechowywania, opcjonalna synchronizacja poza serwer przez rclone oraz zabezpieczone przywracanie, które najpierw wykonuje kopię bezpieczeństwa

4. Wyszukiwanie i nawigacja fasetowa

Sercem publicznego archiwum jest jego wyszukiwanie. Jeden indeks pełnotekstowy obejmuje każdy opublikowany rekord — tytuł, opis, streszczenie, notatki i tekst artykułu — więc jedno pole wyszukiwania sięga wszystkiego. Ale sam pełny tekst nie wystarcza do poważnych badań, dlatego każdy rekord jest dodatkowo klasyfikowany wzdłuż dziewięciu osi fasetowych:

  • Temat — tematy i zagadnienia, których rekord dotyczy.
  • Miejsce — miejsca geograficzne, z którymi rekord jest związany, pochodzące ze strukturalnego wykazu miejsc (zobacz sekcję o GeoNames poniżej).
  • Język — język treści rekordu, spośród 49 natywnie obsługiwanych języków.
  • Współtwórca — zaangażowane osoby: autorzy, mówcy, fotografowie, redaktorzy.
  • Gatunek — rodzaj materiału: świadectwo, analiza, raport i tak dalej.
  • Część — większe dzieło, do którego rekord należy; łączy materiały wieloczęściowe.
  • Kolekcja — kuratorowane, nazwane grupy, prowadzone przez opiekunów archiwum.
  • Seria — uporządkowane grupy dla materiałów, które następują po sobie w kolejności.
  • Dostęp — poziom dostępu rekordu, na przykład publiczny albo tylko dla członków.

Nawigacja fasetowa działa tak, jak badacze oczekują tego od dużych archiwów instytucjonalnych. Obok wyników każda oś pokazuje swoje najczęstsze wartości z liczbą trafień na żywo — jedno kliknięcie zawęża wyniki, a filtry z różnych osi można swobodnie łączyć: na przykład wszystkie rekordy audio po niemiecku na temat edukacja z lat 90. Aktywne filtry są pokazywane jako usuwalne znaczniki nad wynikami, więc bieżące zawężenie jest zawsze widoczne, a każdy filtr można jednym kliknięciem znów odrzucić. Tam, gdzie oś zawiera więcej wartości, niż mieści pasek boczny, można przeglądać pełny alfabetyczny indeks całej osi, litera po literze.

Poza fasetami wyniki można ograniczać według rodzaju materiału (artykuły, audio, wideo, dokumenty, obrazy, zbiory danych — na życzenie kilka naraz) oraz według daty, przez szybkie linki dekad albo dokładny zakres lat. Wyniki można sortować według trafności, tytułu lub daty i wyświetlać na cztery sposoby: jako szczegółową listę, galerię obrazów, kompaktową siatkę lub pełnoekranowy pokaz slajdów. Cały stan wyszukiwania — zapytanie, filtry, sortowanie, widok — mieszka w pasku adresu, więc każdą stronę wyników można dodać do zakładek, zacytować i udostępnić dokładnie taką, jaka jest.

Fasety nie są luźnymi tagami: ich słowniki są kuratorowane przez opiekunów archiwum, a osie takie jak kolekcja i seria mogą być zorganizowane hierarchicznie. Każda wartość fasety pokazana na stronie rekordu prowadzi z powrotem do wyszukiwania, więc czytelnik zawsze może przejść od jednego interesującego rekordu do wszystkiego, co archiwum przechowuje na ten sam temat, o tym samym miejscu, tej samej osobie albo z tej samej serii.

5. Strony rekordów

Każdy rekord ma własną stronę z prezentacją dopasowaną do typu: audio i wideo odtwarzają się bezpośrednio na stronie, dokumenty PDF otwierają się we wbudowanej przeglądarce, obrazy można oglądać w powiększanym, głębokim podglądzie, a artykuły są renderowane z bezpiecznie filtrowanego Markdowna. Obok samego pliku strona rekordu pokazuje pełny opis, współtwórców, większe dzieło, do którego należy (z nawigacją między jego częściami), powiązane materiały warte obejrzenia w następnej kolejności oraz gotowe cytaty w formatach Chicago, APA i MLA. Każdy rekord nosi metadane czytelne maszynowo (schema.org JSON-LD) i stabilny adres, który nigdy się nie zmienia; krótkie stałe linki postaci /go/… można przydzielać do cytowania w druku i w odniesieniach zewnętrznych.

6. Języki

Archiwum jest zbudowane dla wielojęzycznego świata, na dwóch odrębnych poziomach.

Interfejs — wszystko, co odwiedzający albo opiekun czyta na samych stronach — jest napisany po angielsku, a każdy widoczny tekst trzyma w przetłumaczalnych plikach językowych, nigdy zakopany w kodzie. Pakiety językowe interfejsu dla 18 języków są w przygotowaniu i obecnie w tłumaczeniu: angielski, niemiecki, francuski, włoski, hiszpański, portugalski, niderlandzki, rosyjski, polski, szwedzki, duński, norweski, chiński, japoński, koreański, turecki, czeski i rumuński. Pakiety instaluje się i zarządza nimi z panelu administracyjnego, który śledzi też, jak kompletne jest każde tłumaczenie względem angielskiego źródła. Asystent instalacji już dziś mówi we wszystkich 18.

Treść — same archiwizowane materiały — natywnie obsługuje 49 języków: angielski, niemiecki, francuski, włoski, hiszpański, portugalski, niderlandzki, rosyjski, ukraiński, polski, grecki, szwedzki, duński, norweski, turecki, chiński, hindi, arabski, indonezyjski, japoński, wietnamski, koreański, białoruski, czeski, słowacki, węgierski, rumuński, bułgarski, chorwacki, słoweński, fiński, bengalski, urdu, perski, islandzki, irlandzki, suahili, tajski, filipiński, hebrajski, pendżabski, telugu, tamilski, marathi, hausa, joruba, amharski, jawajski i paszto. Rekordy są oznaczane językiem swojej treści, a faseta języka w wyszukiwaniu filtruje według każdego z nich — czytelnik może więc na przykład jednym kliknięciem wywołać wszystko, co archiwum przechowuje po ukraińsku albo po arabsku. Pisma pisane od prawej do lewej, takie jak arabski, hebrajski, perski i urdu, są wyświetlane poprawnie w całym systemie.

Dodatkowo przełącznik języka na każdej stronie publicznej otwiera maszynowo przetłumaczony widok strony, nie ładując przy tym żadnego skryptu osób trzecich do samej strony.

7. Dane o miejscach: GeoNames

Faseta miejsca opiera się na wykazie geograficznym zorganizowanym hierarchicznie — kraj, region, miejsce — dzięki czemu rekordy można precyzyjnie lokalizować i odnajdywać przez geografię. Dane podstawowe (kraje i ich regiony administracyjne na całym świecie) pochodzą z geograficznej bazy danych GeoNames i są importowane do lokalnego magazynu podczas instalacji albo później z panelu administracyjnego; opiekunowie archiwum mogą rozszerzać go o własne lokalne miejsca. Dane o miejscach: GeoNames.org, na licencji CC BY 4.0.

8. Dane słownikowe: katalogi tematów i gatunków

Kuratorowane słowniki stojące za fasetami takimi jak temat i gatunek są dostarczane wraz z oprogramowaniem i tłumaczone centralnie, dzięki czemu ich terminy mają znaczenie w każdym języku interfejsu. Aby pozostały zgodne z uznanymi standardami organizacji wiedzy, źródłami odniesienia dla pracy katalogowej są następujące publiczne słowniki kontrolowane: EuroVoc, wielojęzyczny tezaurus Unii Europejskiej (© Unia Europejska, CC BY 4.0), IPTC Media Topics (© IPTC, CC BY 4.0) oraz Getty Art & Architecture Thesaurus (ODC-By 1.0). Każdy termin katalogu wywiedziony z zewnętrznego słownika odnotowuje swoje pochodzenie, a pełna lista wszystkich komponentów zewnętrznych i źródeł danych dołączona jest do każdej instalacji: do przeczytania tutaj.

9. Strona robocza

Za publicznym archiwum leży panel administracyjny podzielony na cztery obszary: Zarządzanie osobami (konta operatorów i członków, role, uprawnienia), Publikacja wewnętrzna (pracownia kuratorska rekordów i edytory), Konfiguracja platformy (ustawienia, formy mediów, fasety, języki, struktura witryny) oraz Technologia i dane (stan systemu, diagnostyka, kopie zapasowe). Wszystko, co opiekun archiwum musi skonfigurować, jest osiągalne przez te strony — prowadzenie archiwum nie wymaga żadnych zmian w kodzie.

Rekordy przechodzą przez jasny proces kuratorski: tworzone jako szkice, wypełniane metadanymi i fasetami, opcjonalnie przekazywane do recenzji, potem publikowane — albo później znów archiwizowane. Pliki są przesyłane w małych, wznawialnych porcjach, więc duże media przetrwają niestabilne połączenia, a każdy przesłany plik jest przed przyjęciem weryfikowany względem zadeklarowanego typu przez inspekcję sygnatury pliku. Obrazy podglądu są generowane automatycznie tam, gdzie serwer to obsługuje.

Opcjonalny obszar członków pozwala archiwum wyrosnąć poza jego opiekunów: zarejestrowanym członkom można ufać krok po kroku, w czterech stałych stopniach — od czytania i dyskutowania aż po kuratorowanie i publikowanie rekordów. Uprawnienia są drobnoziarniste po obu stronach — role administracyjne można swobodnie definiować, czerpiąc ze szczegółowego rejestru uprawnień, a indywidualne wyjątki mogą rozszerzyć albo zawęzić dostęp każdej pojedynczej osoby. Dostęp właściciela jest celowo trzymany całkowicie poza bazą danych, aby drzwi do archiwum nigdy nie mogły zostać zamknięte przez uszkodzony plik albo nieudaną zmianę.

10. Bezpieczeństwo danych

Kopie zapasowe są tu pierwszej rangi: opiekun archiwum może tworzyć opatrzone datą kopie ZIP bazy danych, treści medialnych, instalacji albo wszystkiego naraz — na żądanie, z regułą przechowywania, która zatrzymuje najnowsze i usuwa najstarsze. Każdą kopię można dodatkowo replikować poza serwer, do dowolnego dostawcy magazynu zgodnego z S3. Przywracanie jest celowo zabezpieczone: system sprawdza, czy kopia pasuje do instalacji, i wykonuje świeżą kopię bezpieczeństwa, zanim czegokolwiek dotknie. Razem z wersjonowanym śledzeniem schematu oznacza to, że archiwum zbudowane z troską można długoterminowo utrzymywać, przenosić i naprawiać.

11. Zasady projektowe

Repozytorium jest zbudowane wokół małego zestawu niepodlegających negocjacjom zasad, które prowadziły każdą decyzję architektoniczną:

  • Bez śledzenia, bez analityki, bez żądań do osób trzecich — każdy zasób, łącznie z czcionkami i bibliotekami skryptów, jest serwowany z własnego serwera archiwum. Nic o odwiedzającym nie jest nigdzie wysyłane.
  • Otwarcie indeksowalne z założenia — czysty HTML, ustrukturyzowana mapa witryny, opisowe metadane i robots.txt, który wita wyszukiwarki i systemy AI, aby zarchiwizowane fakty mogły być szeroko znajdowane i czytane.
  • Do druku i do pobrania — dokumenty mają opuszczać ekran i wchodzić do realnego świata.
  • Czytelne w wielu językach — 18 pakietów językowych interfejsu w przygotowaniu, 49 języków treści natywnie obsługiwanych w wyszukiwaniu i fasetach oraz przełącznik języka na każdej stronie publicznej (zobacz sekcję „Języki" powyżej).
  • Minimalne, odgrodzone zależności — garść samodzielnie hostowanych komponentów (parser Markdown na serwerze; biblioteki edytorów i przeglądarek w przeglądarce), trzymanych ściśle oddzielnie od własnego kodu systemu. Bez CDN, bez menedżera pakietów, bez kroku budowania.
  • Niezależne od środowiska — identyczny kod działa na każdej instalacji; na każdym serwerze różni się tylko jeden plik środowiskowy.
  • Łagodna degradacja — funkcje opcjonalne sprawdzają swoje wymagania i czysto się wyłączają tam, gdzie serwer nie może ich udźwignąć, zamiast psuć archiwum.

12. Autorzy i rozwój

👥 Projekt & treść

Raven D. Pond & Keylam Folker — założyciele projektu Ta-Na-Si i opiekunowie tego oprogramowania repozytorium. Cały kierunek redakcyjny, wszystkie decyzje kuratorskie i wizja projektu stojące za tym oprogramowaniem pochodzą w całości od Ravena i Keylama. To oni zdefiniowali każde wymaganie, przetestowali każdą funkcję i prowadzili rozwój tego systemu od pierwszej koncepcji do jego obecnej postaci; każda decyzja architektoniczna została podjęta i zatwierdzona przez Keylama.

✨ Rozwój oprogramowania

Claude (Anthropic) — asystent AI Claude służył jako główny partner rozwojowy tego repozytorium. Backend PHP, wielosterownikowa warstwa bazy danych, silnik wyszukiwania i faset, panel administracyjny, frontendowy system projektowy i wszystkie narzędzia pomocnicze zostały zaprojektowane i napisane we wspólnym procesie między wymaganiami Ravena & Keylama a pracą Claude'a nad kodem. To repozytorium jest przykładem niezależnego archiwum zbudowanego przez bezpośrednią, wspólną inżynierię oprogramowania człowieka i AI dla realnego projektu.

📅 Kalendarium rozwoju

Rozwój rozpoczął się w połowie maja 2026 roku i od tego czasu trwa w codziennej współpracy. Oprogramowanie nosi wersję 1.0.0; ta strona odzwierciedla jego stan z lipca 2026 roku.

13. Reguły, z którymi przychodzi to oprogramowanie

Każda instalacja tego oprogramowania niesie te same reguły, a ten, kto zainstalował to archiwum, zgodził się na nie, zanim został zapisany choć jeden plik. Są krótkie i zostały napisane po to, by czytał je człowiek, a nie rozkładał na części prawnik: przeczytasz je tutaj.

W jednym zdaniu: archiwum, na które patrzysz, należy w całości do ludzi, którzy je prowadzą — jego nazwa, jego kolekcja, jego członkowie, jego dane — a projekt stojący za oprogramowaniem nie trzyma klucza do niczego z tego. To, co zostaje w każdej instalacji, to własna nazwa oprogramowania, teksty podstawowe i wskazanie dwóch osób, które stworzyły projekt. Nie dlatego, że tak każe licencja, lecz dlatego, że archiwum kłamiące o własnym pochodzeniu złamałoby dokładnie to, dla czego istnieje.

14. Kontakt & opinie

To żywy system — rozwija się razem z projektem. Jeśli napotkasz problem techniczny, zepsuty link albo masz propozycję ulepszenia, odezwij się przez stronę kontaktową podlinkowaną w stopce każdej strony albo zostaw komentarz na jednym z naszych kanałów platformowych. Czytamy wszystko.