⬆ TOP
Gennemsigtigt overblik over Ta-Na-Si Media & Document Repository — arkitektur, teknologistak og krediteringer for udviklingen.

Repository Core

Denne side forklarer, hvad Ta-Na-Si Media & Document Repository er bygget af — dets arkitektur, dets teknologi og menneskene bag dets udvikling. Vi tror på fuld gennemsigtighed: enhver, der bruger et arkiv eller overvejer at drive sit eget, fortjener at vide præcis, hvad systemet består af. Om-siden forklarer, hvad arkivet er til; denne side forklarer, hvordan det virker.

1. Hvad Repository Core er

Repository Core er den software, dette arkiv kører på: et fuldt uafhængigt, selvhostet digitalt arkivsystem, skrevet fra grunden med ét formål — at opbevare, organisere og åbent stille dokumenter og medier til rådighed som evidensbaseret kildemateriale. Det er ikke baseret på WordPress, Joomla, Drupal eller noget andet færdigbygget CMS, og det bruger intet PHP-framework. Hver komponent — databaselaget, søgemaskinen, kurateringsværkstedet, de offentlige sider — blev designet og skrevet specifikt til denne opgave.

Softwaren er bygget som en multi-installationsplatform: den betjener ikke ét centralt arkiv, men driver mange separate, uafhængige arkiver. Hvert arkiv — hvad enten det er en lille familiesamling eller et stort regionalt arkiv — er sin egen komplette installation med sin egen database, sine egne filer og sin egen forvalter. Der er ingen delt infrastruktur mellem arkiverne og ingen central tjeneste, de afhænger af.

2. Én kodebase, mange uafhængige arkiver

Hver installation kører den identiske kodebase. Alt, der er specifikt for én server — dens offentlige adresse, dens databaseadgang, dens mailafsender — ligger i en enkelt miljøfil, som oprettes én gang under opsætningen og aldrig rejser med koden. Denne strikse adskillelse er det, der får modellen til at fungere: den samme softwareopdatering kan anvendes på hvert arkiv, lille som stort, uden at røre ved noget arkivs individuelle konfiguration.

Et nyt arkiv installeres gennem en guidet opsætningsassistent i browseren — ingen kommandolinje, ingen konfigurationsfiler at redigere i hånden. Assistenten taler 18 sprog, kontrollerer serverens krav, tester databaseforbindelsen, før noget skrives, og opretter ejerkontoen med en sikkert hashet adgangskode. Databasetabeller oprettes af et idempotent migreringssystem: det kan køre et vilkårligt antal gange og konvergerer altid mod det korrekte skema. Senere skemaændringer versioneres og spores, så hver installation kan se præcis, hvor den står; rutineændringer anvendes automatisk, mens tunge ændringer venter på ejerens bevidste bekræftelse. Opdateringer følger den samme omhyggelige rækkefølge: først sikkerhedskopi, så migrering, så rydning af cachen.

3. Teknologistak Version 1.0.0 (Thuringia)

🖥️ ServerStandard Apache + PHP-miljø — kører på almindeligt delt webhotel eller enhver egen server; ingen containere, ingen byggeværktøjer, ingen eksterne tjenester påkrævet
🐘 BackendPHP 8.1 eller nyere — intet framework; det eneste serverside-tredjepartsbibliotek er den lille Parsedown Markdown-parser
🗄️ DatabaseÉt multi-driver-lag med understøttelse af SQLite (nul konfiguration), MySQL/MariaDB og PostgreSQL — hvert arkiv vælger, hvad der passer til dets størrelse
🔎 SøgningFuldtekstindeks over alle posttekster plus ni facetakser (emne, sted, sprog, bidragyder, genre, del af, samling, serie, adgang) med levende træffertal
🌐 SprogGrænsefladen er forberedt til 18 sprogpakker (under oversættelse); 49 indholdssprog understøttes indbygget i søgning og facetter, herunder skriftsystemer, der læses fra højre mod venstre
📦 FillagringUUID-shardet medietræ med deterministiske stier — designet til vækst op til millioner af filer; valgfri ekstern replikering til S3-kompatibelt objektlager
🎨 FrontendHåndskrevet HTML5 og CSS3 i et lagdelt designsystem, minimal vanilla JavaScript — hver side virker først og fremmest uden scripts
🧩 BrowserbibliotekerTre selvhostede open source-komponenter, leveret fra arkivet selv og aldrig fra et CDN: OpenSeadragon til den zoombare dybdevisning af billeder (New BSD 3-Clause), rich-text-editoren Jodit (MIT) og Markdown-editoren EasyMDE (MIT)
🔒 AutentificeringSessionsbaseret login med stærk adgangskode-hashing, valgfrie tofaktorkoder (TOTP), spærring efter mislykkede loginforsøg og CSRF-beskyttelse på hver formular
⚡ CachingFilbaseret sidecache med stampede-beskyttelse og separate levetider for server, browser og CDN; valgfrit Cloudflare foran
🗺️ SEO & synlighedStreamende XML-sitemap (enkelt fil eller indekstilstand til meget store arkiver), automatisk genereret robots.txt, strukturerede metadata (JSON-LD), rene stabile URL'er
💾 SikkerhedskopierFire valgbare ZIP-sikkerhedskopityper med opbevaringspolitik, valgfri ekstern synkronisering via rclone og en beskyttet gendannelse, der først tager en sikkerhedskopi

4. Søgning og facetnavigation

Hjertet i det offentlige arkiv er dets søgning. Ét fuldtekstindeks dækker hver offentliggjort post — titel, beskrivelse, resumé, noter og artikeltekst — så ét søgefelt når alt. Men fuldtekst alene er ikke nok til seriøs forskning, og derfor klassificeres hver post også langs ni facetakser:

  • Emne — de emner og temaer, en post handler om.
  • Sted — de geografiske steder, en post vedrører, hentet fra en struktureret stedfortegnelse (se GeoNames-afsnittet nedenfor).
  • Sprog — sproget i postens indhold, fra 49 indbygget understøttede sprog.
  • Bidragyder — de involverede personer: forfattere, talere, fotografer, redaktører.
  • Genre — materialetypen: vidnesbyrd, analyse, rapport og så videre.
  • Del af — det større værk, en post hører til, som forbinder materiale i flere dele.
  • Samling — kuraterede navngivne grupperinger, der vedligeholdes af arkivets forvaltere.
  • Serie — ordnede grupperinger for materiale, der følger en rækkefølge.
  • Adgang — en posts adgangsniveau, for eksempel offentlig eller kun for medlemmer.

Facetnavigationen fungerer, som forskere forventer det fra store institutionelle arkiver. Ved siden af resultaterne viser hver akse sine hyppigste værdier med levende træffertal — ét klik indsnævrer resultaterne, og filtre fra forskellige akser kan kombineres frit: for eksempel alle lyd-poster på tysk om emnet uddannelse fra 1990'erne. Aktive filtre vises som fjernbare chips over resultaterne, så den aktuelle indsnævring altid er synlig, og ethvert filter kan fjernes igen med ét klik. Hvor en akse rummer flere værdier, end sidepanelet viser, kan et komplet alfabetisk indeks over hele aksen gennemses, bogstav for bogstav.

Ud over facetterne kan resultaterne begrænses efter materialetype (artikler, lyd, video, dokumenter, billeder, datasæt — flere ad gangen, hvis det ønskes) og efter dato, enten via hurtige årti-links eller et præcist årsinterval. Resultaterne kan sorteres efter relevans, titel eller dato og vises på fire måder: en detaljeret liste, et billedgalleri, et kompakt gitter eller et diasshow i fuld skærm. Hele søgetilstanden — forespørgsel, filtre, sortering, visning — ligger i adresselinjen, så enhver resultatside kan bogmærkes, citeres og deles præcis, som den står.

Facetterne er ikke fritsvævende tags: deres ordforråd er kurateret af arkivets forvaltere, og akser som samling og serie kan organiseres hierarkisk. Hver facetværdi, der vises på en postside, linker tilbage ind i søgningen, så en læser altid kan springe fra én interessant post til alt andet, arkivet rummer om samme emne, sted, person eller serie.

5. Postsider

Hver post har sin egen side med en præsentation, der passer til typen: lyd og video afspilles direkte på siden, PDF-dokumenter åbnes i en indlejret fremviser, billeder kan undersøges i en zoombar dybdevisning, og artikler gengives fra sikkert filtreret Markdown. Ved siden af selve filen viser en postside den fulde beskrivelse, bidragyderne, det større værk den hører til (med navigation mellem dets dele), relaterede elementer, der er værd at se bagefter, og færdige kildehenvisninger i Chicago-, APA- og MLA-format. Hver post bærer maskinlæsbare metadata (schema.org JSON-LD) og en stabil adresse, der aldrig ændres; korte permanente links på formen /go/… kan tildeles til citering på tryk og i eksterne referencer.

6. Sprog

Arkivet er bygget til en flersproget verden, på to adskilte niveauer.

Grænsefladen — alt, hvad en besøgende eller forvalter læser på selve siderne — er skrevet på engelsk og holder hver synlig tekst i oversætbare sprogfiler, aldrig begravet i kode. Grænseflade-sprogpakker til 18 sprog er under forberedelse og i øjeblikket under oversættelse: engelsk, tysk, fransk, italiensk, spansk, portugisisk, hollandsk, russisk, polsk, svensk, dansk, norsk, kinesisk, japansk, koreansk, tyrkisk, tjekkisk og rumænsk. Pakker installeres og administreres fra administrationspanelet, som også holder styr på, hvor komplet hver oversættelse er i forhold til den engelske kilde. Opsætningsassistenten taler allerede alle 18 i dag.

Indholdet — selve det arkiverede materiale — understøtter indbygget 49 sprog: engelsk, tysk, fransk, italiensk, spansk, portugisisk, hollandsk, russisk, ukrainsk, polsk, græsk, svensk, dansk, norsk, tyrkisk, kinesisk, hindi, arabisk, indonesisk, japansk, vietnamesisk, koreansk, hviderussisk, tjekkisk, slovakisk, ungarsk, rumænsk, bulgarsk, kroatisk, slovensk, finsk, bengali, urdu, persisk, islandsk, irsk, swahili, thai, filippinsk, hebraisk, punjabi, telugu, tamil, marathi, hausa, yoruba, amharisk, javanesisk og pashto. Poster tagges med sproget i deres indhold, og søgningens sprogfacet filtrerer på ethvert af dem — så en læser kan for eksempel hente alt, hvad arkivet rummer på ukrainsk eller arabisk, med ét klik. Skriftsystemer, der læses fra højre mod venstre, som arabisk, hebraisk, persisk og urdu, vises korrekt overalt.

Derudover åbner en sprogvælger på hver offentlig side en maskinoversat visning af siden, uden at der indlæses noget tredjepartsscript på selve siden.

7. Steddata: GeoNames

Stedfacetten bygger på en geografisk fortegnelse organiseret som et hierarki — land, region, sted — så poster kan stedfæstes præcist og genfindes geografisk. Grunddataene (lande og deres administrative regioner verden over) kommer fra den geografiske database GeoNames og importeres til et lokalt opslagslager under opsætningen eller senere fra administrationspanelet; arkivforvaltere kan udvide den med deres egne lokale steder. Steddata: GeoNames.org, licenseret under CC BY 4.0.

8. Vokabulardata: emne- og genrekataloger

De kuraterede vokabularer bag facetter som emne og genre leveres med softwaren og oversættes centralt, så deres begreber bærer mening på hvert grænsefladesprog. For at holde dem forenelige med etablerede standarder for vidensorganisation tjener følgende offentlige kontrollerede vokabularer som referencekilder for katalogarbejdet: EuroVoc, Den Europæiske Unions flersprogede tesaurus (© Den Europæiske Union, CC BY 4.0), IPTC Media Topics (© IPTC, CC BY 4.0) og Getty Art & Architecture Thesaurus (ODC-By 1.0). Hvert katalogbegreb, der er afledt af et eksternt vokabular, registrerer sin oprindelse, og den fulde liste over alle tredjepartskomponenter og datakilder følger med hver installation: læs den her.

9. Arbejdssiden

Bag det offentlige arkiv ligger et administrationspanel organiseret i fire områder: People & Governance (operatør- og medlemskonti, roller, tilladelser), Internal Publication (kurateringsværkstedet for poster og editorerne), Platform Configuration (indstillinger, medieformer, facetter, sprog, webstedsstruktur) og Technology & Data (systemstatus, diagnostik, sikkerhedskopier). Alt, hvad en arkivforvalter har brug for at konfigurere, kan nås gennem disse sider — at drive et arkiv kræver ingen kodeændringer.

Poster bevæger sig gennem et klart kurateringsforløb: oprettet som kladder, udfyldt med metadata og facetter, eventuelt indsendt til gennemsyn, derefter offentliggjort — eller senere arkiveret igen. Filer uploades i små genoptagelige bidder, så store medier overlever ustabile forbindelser, og hver upload verificeres mod sin angivne type ved filsignatur-inspektion, før den accepteres. Forhåndsvisningsbilleder genereres automatisk, hvor serveren understøtter det.

Et valgfrit medlemsområde lader et arkiv vokse ud over dets forvaltere: registrerede medlemmer kan betros skridt for skridt på tværs af fire faste niveauer, fra at læse og diskutere op til at kuratere og offentliggøre poster. Tilladelserne er finkornede på begge sider — administrative roller kan defineres frit og trækker på et detaljeret rettighedsregister, og individuelle undtagelser kan udvide eller indsnævre enhver enkeltpersons adgang. Ejerens adgang holdes bevidst helt uden for databasen, så døren til et arkiv aldrig kan låses af en beskadiget fil eller en mislykket ændring.

10. Datasikkerhed

Sikkerhedskopier er en kernefunktion: en arkivforvalter kan oprette datostemplede ZIP-sikkerhedskopier af databasen, medieindholdet, installationen eller det hele på én gang — efter behov, med en opbevaringspolitik, der beholder de nyeste og fjerner de ældste. Hver sikkerhedskopi kan desuden replikeres eksternt til enhver S3-kompatibel lagringsudbyder. Gendannelse er bevidst beskyttet: systemet verificerer, at en sikkerhedskopi passer til installationen, og tager en frisk sikkerhedskopi, før det rører ved noget. Sammen med den versionerede skemasporing betyder det, at et arkiv bygget med omhu kan vedligeholdes, flyttes og repareres på lang sigt.

11. Designprincipper

Arkivsystemet er bygget omkring et lille sæt ufravigelige principper, der har styret hver arkitekturbeslutning:

  • Ingen sporing, ingen analytics, ingen tredjepartsforespørgsler — hvert aktiv, herunder skrifttyper og scriptbiblioteker, leveres fra arkivets egen server. Intet om en besøgende sendes nogen steder hen.
  • Åbent crawlbart efter design — ren HTML, et struktureret sitemap, beskrivende metadata og en robots.txt, der byder søgemaskiner og AI-systemer velkommen, så de arkiverede fakta kan findes og læses bredt.
  • Kan udskrives og downloades — dokumenter er beregnet til at forlade skærmen og træde ind i den virkelige verden.
  • Kan læses på mange sprog — 18 grænseflade-sprogpakker under forberedelse, 49 indholdssprog indbygget understøttet i søgning og facetter og en sprogvælger på hver offentlig side (se afsnittet Sprog ovenfor).
  • Minimale, indkapslede afhængigheder — en håndfuld selvhostede komponenter (en Markdown-parser på serveren; editor- og fremviserbiblioteker i browseren), holdt strengt adskilt fra systemets egen kode. Intet CDN, ingen pakkehåndtering, intet byggetrin.
  • Miljøagnostisk — den identiske kode kører på hver installation; kun én miljøfil er forskellig pr. server.
  • Nedgraderer elegant — valgfrie funktioner kontrollerer deres forudsætninger og slår sig rent fra, hvor en server ikke kan understøtte dem, i stedet for at ødelægge arkivet.

12. Udviklingskreditering

👥 Projekt & indhold

Raven D. Pond & Keylam Folker — grundlæggere af Ta-Na-Si-projektet og forvaltere af denne arkivsoftware. Al redaktionel retning, alle kuratoriske beslutninger og hele projektvisionen bag denne software stammer fuldt ud fra Raven og Keylam. De definerede hvert krav, testede hver funktion og styrede udviklingen af dette system fra den første idé til dets nuværende form; hver arkitekturbeslutning blev truffet og godkendt af Keylam.

✨ Softwareudvikling

Claude (Anthropic) — AI-assistenten Claude fungerede som den primære udviklingspartner for dette arkivsystem. PHP-backenden, multi-driver-databaselaget, søge- og facetmotoren, administrationspanelet, frontend-designsystemet og alt hjælpeværktøj blev designet og skrevet i en samarbejdsproces mellem Raven & Keylams krav og Claudes kodearbejde. Dette arkivsystem er et eksempel på et uafhængigt arkiv bygget gennem direkte softwareudvikling i samarbejde mellem menneske og AI til et virkeligt projekt.

📅 Udviklingsforløb

Den indledende udvikling begyndte i midten af maj 2026 og er fortsat i dagligt samarbejde siden. Softwaren bærer version 1.0.0; denne side afspejler dens tilstand pr. juli 2026.

13. Reglerne, denne software leveres med

Hver installation af denne software bærer de samme regler, og den, der installerede dette arkiv, accepterede dem, før en eneste fil blev skrevet. De er korte, og de blev skrevet for at blive læst af et menneske frem for at blive fortolket af en advokat: læs dem her.

I én sætning: det arkiv, du ser på, tilhører fuldt ud de mennesker, der driver det — dets navn, dets samling, dets medlemmer, dets data — og projektet bag softwaren har ingen nøgle til noget af det. Det, der bliver stående i hver installation, er softwarens eget navn, grundteksterne og navngivningen af de to mennesker, der skabte projektet. Ikke fordi en licens siger det, men fordi et arkiv, der lyver om sin egen oprindelse, har brudt netop det, det findes for at gøre.

14. Kontakt & feedback

Dette er et levende system — det udvikler sig med projektet. Hvis du støder på et teknisk problem, et dødt link eller har et forslag til forbedring, så kontakt os gennem kontaktsiden, der er linket i bunden af hver side, eller læg en kommentar på en af vores platformkanaler. Vi læser alt.