⬆ ÜST
Ta-Na-Si Media & Document Repository yazılımının şeffaf genel görünümü — mimari, teknoloji yığını ve geliştirme künyesi.

Repository Core

Bu sayfa, Ta-Na-Si Media & Document Repository'nin neyden inşa edildiğini anlatır — mimarisini, teknolojisini ve geliştirilmesinin ardındaki insanları. Tam şeffaflığa inanıyoruz: bir arşivi kullanan ya da kendi arşivini işletmeyi düşünen herkes, sistemin tam olarak neyden yapıldığını bilmeyi hak eder. Hakkında sayfası arşivin ne için olduğunu anlatır; bu sayfa nasıl çalıştığını anlatır.

1. Repository Core Nedir

Repository Core, bu arşivin üzerinde çalıştığı yazılımdır: tamamen bağımsız, kendi sunucusunda barındırılan, tek bir amaç için sıfırdan yazılmış bir dijital arşiv sistemi — belgeleri ve medyayı kanıt niteliğinde kaynak malzeme olarak saklamak, düzenlemek ve açıkça sunmak. WordPress, Joomla, Drupal ya da başka bir hazır CMS üzerine kurulu değildir ve hiçbir PHP framework'ü kullanmaz. Her bileşen — veritabanı katmanı, arama motoru, küratörlük çalışma odası, herkese açık sayfalar — özellikle bu görev için tasarlanmış ve yazılmıştır.

Yazılım bir çoklu kurulum platformu olarak inşa edilmiştir: tek bir merkezî arşive hizmet etmez; birbirinden ayrı, bağımsız birçok arşivi taşır. Her arşiv — ister küçük bir aile koleksiyonu ister büyük bir bölgesel depo olsun — kendi veritabanı, kendi dosyaları ve kendi koruyucusuyla eksiksiz, kendi başına bir kurulumdur. Arşivler arasında paylaşılan bir altyapı ve bağımlı oldukları merkezî bir hizmet yoktur.

2. Tek Kod Tabanı, Birçok Bağımsız Arşiv

Her kurulum birebir aynı kod tabanını çalıştırır. Tek bir sunucuya özgü olan her şey — herkese açık adresi, veritabanı erişimi, e-posta göndereni — kurulum sırasında bir kez oluşturulan ve kodla asla birlikte yolculuk etmeyen tek bir ortam dosyasında yaşar. Modeli işleten de bu katı ayrımdır: aynı yazılım güncellemesi, küçük ya da büyük her arşive, hiçbir arşivin kendi yapılandırmasına dokunmadan uygulanabilir.

Yeni bir arşiv, tarayıcıda çalışan rehberli bir kurulum yardımcısıyla kurulur — komut satırı yok, elle düzenlenecek yapılandırma dosyaları yok. Yardımcı 18 dil konuşur, sunucunun gereksinimlerini denetler, daha hiçbir şey yazılmadan veritabanı bağlantısını sınar ve sahip hesabını güvenle hash'lenmiş bir parolayla oluşturur. Veritabanı tablolarını idempotent bir geçiş (migration) sistemi oluşturur: istediği kadar çok kez çalışabilir ve her seferinde doğru şemaya ulaşır. Sonraki şema değişiklikleri sürümlenir ve izlenir; böylece her kurulum tam olarak nerede durduğunu görebilir. Olağan değişiklikler kendiliğinden uygulanır; ağır olanlar ise sahibin bilinçli onayını bekler. Güncellemeler de aynı özenli sırayı izler: önce yedekle, sonra geçir, sonra önbelleği temizle.

3. Teknoloji Yığını Sürüm 1.0.0 (Thuringia)

🖥️ SunucuStandart Apache + PHP ortamı — sıradan paylaşımlı barındırmada ya da herhangi bir kendi sunucunuzda çalışır; konteyner yok, derleme araçları yok, dış hizmet gerekmez
🐘 Arka uçPHP 8.1 veya daha yenisi — framework yok; sunucu tarafındaki tek üçüncü taraf kitaplık, küçük Markdown ayrıştırıcısı Parsedown
🗄️ VeritabanıSQLite (sıfır yapılandırma), MySQL/MariaDB ve PostgreSQL destekleyen tek bir çok sürücülü katman — her arşiv, boyutuna uyanı seçer
🔎 AramaTüm kayıt metinleri üzerinde tam metin dizini, artı canlı isabet sayılarıyla dokuz faset ekseni (konu, yer, dil, katkıda bulunan, tür, parçası, koleksiyon, seri, erişim)
🌐 DillerArayüz 18 dil paketi için hazırlanmıştır (çeviride); arama ve fasetlerde yerel olarak desteklenen 49 içerik dili, sağdan sola yazılar dahil
📦 Dosya depolamaBelirlenimci yollarla UUID parçalı medya ağacı — milyonlarca dosyaya büyümek için tasarlanmıştır; S3 uyumlu nesne depolamaya isteğe bağlı site dışı eşleme
🎨 Ön yüzKatmanlı bir tasarım sisteminde elle yazılmış HTML5 ve CSS3, en az düzeyde saf JavaScript — her sayfa önce betiksiz çalışır
🧩 Tarayıcı kitaplıklarıArşivin kendisinden sunulan, asla bir CDN'den gelmeyen üç kendinden barındırmalı açık kaynak bileşen: görsellerin yakınlaştırılabilir derin görünümü için OpenSeadragon (New BSD 3-Clause), zengin metin editörü Jodit (MIT) ve Markdown editörü EasyMDE (MIT)
🔒 Kimlik doğrulamaGüçlü parola hash'lemesi, isteğe bağlı iki faktörlü kodlar (TOTP), başarısız oturum açma denemelerinde kilitleme ve her formda CSRF koruması içeren oturum tabanlı giriş
⚡ ÖnbelleklemeSunucu, tarayıcı ve CDN için ayrı ömürlere ve izdiham (stampede) korumasına sahip dosya tabanlı sayfa önbelleği; önünde isteğe bağlı Cloudflare
🗺️ SEO & keşifAkışlı XML site haritası (tek dosya ya da çok büyük arşivler için dizin kipi), otomatik oluşturulan robots.txt, yapılandırılmış üstveri (JSON-LD), temiz ve kalıcı URL'ler
💾 YedeklerSaklama kuralıyla dört seçilebilir ZIP yedek türü, rclone ile isteğe bağlı site dışı eşitleme ve önce bir güvenlik yedeği alan korumalı geri yükleme

4. Arama ve Faset Gezinmesi

Herkese açık arşivin kalbi aramasıdır. Tek bir tam metin dizini, yayımlanmış her kaydı kapsar — başlık, açıklama, özet, notlar ve makale metni — böylece tek bir arama alanı her şeye ulaşır. Ama ciddi araştırma için tam metin tek başına yetmez; bu yüzden her kayıt ayrıca dokuz faset ekseni boyunca sınıflandırılır:

  • Konu — kaydın ele aldığı konular ve temalar.
  • Yer — kaydın ilişkili olduğu coğrafi konumlar; yapılandırılmış bir yer dizininden alınır (aşağıdaki GeoNames bölümüne bakın).
  • Dil — kaydın içeriğinin dili; yerel olarak desteklenen 49 dilden.
  • Katkıda bulunan — emeği geçen insanlar: yazarlar, konuşmacılar, fotoğrafçılar, editörler.
  • Tür — malzemenin niteliği: tanıklık, analiz, rapor ve benzeri.
  • Parçası — kaydın ait olduğu daha büyük çalışma; çok parçalı malzemeyi birbirine bağlar.
  • Koleksiyon — arşivin koruyucularının bakımını yaptığı, özenle derlenmiş adlandırılmış gruplamalar.
  • Seri — bir sırayı izleyen malzeme için sıralı gruplamalar.
  • Erişim — kaydın erişim düzeyi; örneğin kamuya açık ya da yalnızca üyelere.

Faset gezinmesi, araştırmacıların büyük kurumsal arşivlerden alışık olduğu gibi çalışır. Sonuçların yanında her eksen, en sık geçen değerlerini canlı isabet sayılarıyla gösterir — tek tıklama sonuçları daraltır ve farklı eksenlerin filtreleri serbestçe birleştirilebilir: örneğin eğitim konusunda, Almanca, 1990'lardan tüm ses kayıtları. Etkin filtreler, sonuçların üzerinde kaldırılabilir etiketler olarak görünür; böylece geçerli daraltma her zaman görünürdür ve herhangi bir filtre tek tıklamayla yeniden bırakılabilir. Bir eksen, kenar çubuğunun gösterdiğinden daha çok değer barındırdığında, o eksenin tamamının alfabetik dizini harf harf gezilebilir.

Fasetlerin ötesinde, sonuçlar malzeme biçimine göre (makaleler, ses, video, belgeler, görseller, veri kümeleri — istenirse birkaçı birden) ve tarihe göre sınırlanabilir; ister hızlı onyıl bağlantılarıyla, ister tam bir yıl aralığıyla. Sonuçlar ilgililiğe, başlığa ya da tarihe göre sıralanabilir ve dört biçimde görüntülenebilir: ayrıntılı bir liste, bir görsel galerisi, kompakt bir ızgara ya da tam ekran bir slayt gösterisi. Tüm arama durumu — sorgu, filtreler, sıralama, görünüm — adres çubuğunda yaşar; böylece herhangi bir sonuç sayfası tam olduğu haliyle yer imlerine eklenebilir, alıntılanabilir ve paylaşılabilir.

Fasetler başıboş etiketler değildir: sözcük dağarcıkları arşivin koruyucularınca derlenir ve koleksiyon ile seri gibi eksenler hiyerarşik olarak düzenlenebilir. Bir kayıt sayfasında gösterilen her faset değeri aramaya geri bağlanır; böylece okur, ilginç bir kayıttan, arşivin aynı konu, yer, kişi ya da seri üzerine tuttuğu diğer her şeye her zaman geçebilir.

5. Kayıt Sayfaları

Her kaydın, türüne uygun sunumla kendi sayfası vardır: ses ve video doğrudan sayfada oynatılır, PDF belgeleri gömülü bir görüntüleyicide açılır, görseller yakınlaştırılabilir derin görünümde incelenebilir ve makaleler güvenle süzülmüş Markdown'dan işlenir. Dosyanın kendisinin yanında bir kayıt sayfası tam açıklamayı, katkıda bulunanları, ait olduğu daha büyük çalışmayı (parçaları arasında gezinmeyle), bir sonraki adımda görülmeye değer ilgili kayıtları ve Chicago, APA ve MLA biçimlerinde hazır atıfları gösterir. Her kayıt makine tarafından okunabilir üstveri (schema.org JSON-LD) ve hiç değişmeyen kalıcı bir adres taşır; basılı alıntılar ve dış göndermeler için /go/… biçiminde kısa kalıcı bağlantılar atanabilir.

6. Diller

Arşiv, çok dilli bir dünya için, birbirinden ayrı iki düzeyde inşa edilmiştir.

Arayüz — bir ziyaretçinin ya da koruyucunun sayfaların kendisinde okuduğu her şey — İngilizce yazılmıştır ve görünür her metni, koda gömmeden, çevrilebilir dil dosyalarında tutar. 18 dil için arayüz dil paketleri hazırlanıyor ve şu anda çeviride: İngilizce, Almanca, Fransızca, İtalyanca, İspanyolca, Portekizce, Felemenkçe, Rusça, Lehçe, İsveççe, Danca, Norveççe, Çince, Japonca, Korece, Türkçe, Çekçe ve Rumence. Paketler yönetim panelinden kurulur ve yönetilir; panel ayrıca her çevirinin İngilizce kaynağa göre ne kadar eksiksiz olduğunu da izler. Kurulum yardımcısı 18 dilin tümünü bugünden konuşuyor.

İçerik — arşivlenen malzemenin kendisi — yerel olarak 49 dili destekler: İngilizce, Almanca, Fransızca, İtalyanca, İspanyolca, Portekizce, Felemenkçe, Rusça, Ukraynaca, Lehçe, Yunanca, İsveççe, Danca, Norveççe, Türkçe, Çince, Hintçe, Arapça, Endonezce, Japonca, Vietnamca, Korece, Belarusça, Çekçe, Slovakça, Macarca, Rumence, Bulgarca, Hırvatça, Slovence, Fince, Bengalce, Urduca, Farsça, İzlandaca, İrlandaca, Svahili, Tayca, Filipince, İbranice, Pencapça, Telugu, Tamilce, Marathi, Hausa, Yoruba, Amharca, Cava dili ve Peştuca. Kayıtlar içeriklerinin diliyle etiketlenir ve aramanın dil faseti bunların her birine göre süzer — böylece bir okur, örneğin arşivin Ukraynaca ya da Arapça tuttuğu her şeyi tek tıklamayla önüne getirebilir. Arapça, İbranice, Farsça ve Urduca gibi sağdan sola yazılar baştan sona doğru biçimde görüntülenir.

Ayrıca her herkese açık sayfadaki bir dil değiştirici, sayfanın makine çevirisiyle oluşturulmuş bir görünümünü açar — bunun için sayfanın kendisine hiçbir üçüncü taraf betiği yüklemeden.

7. Yer Verileri: GeoNames

Yer faseti, hiyerarşi olarak düzenlenmiş bir coğrafi dizine dayanır — ülke, bölge, yer — böylece kayıtlar tam olarak konumlandırılabilir ve coğrafya üzerinden yeniden bulunabilir. Temel veriler (dünya genelinde ülkeler ve yönetsel bölgeleri) GeoNames coğrafi veritabanından gelir ve kurulum sırasında ya da sonradan yönetim panelinden yerel bir arama deposuna aktarılır; arşiv koruyucuları bunu kendi yerel yerleriyle genişletebilir. Yer verileri: GeoNames.org, CC BY 4.0 ile lisanslıdır.

8. Sözlük Verileri: Konu ve Tür Katalogları

Konu ve tür gibi fasetlerin arkasındaki küratörlü sözlükler yazılımla birlikte teslim edilir ve merkezî olarak çevrilir; böylece terimleri her arayüz dilinde anlam taşır. Bunları yerleşik bilgi düzenleme standartlarıyla uyumlu tutmak için katalog çalışmasının referans kaynakları olarak şu kamuya açık kontrollü sözlükler kullanılır: Avrupa Birliği'nin çok dilli kavram dizini EuroVoc (© Avrupa Birliği, CC BY 4.0), IPTC Media Topics (© IPTC, CC BY 4.0) ve Getty Art & Architecture Thesaurus (ODC-By 1.0). Harici bir sözlükten türetilen her katalog terimi kökenini kaydeder ve tüm üçüncü taraf bileşenlerin ve veri kaynaklarının eksiksiz listesi her kurulumla birlikte gelir: buradan okunabilir.

9. Çalışma Tarafı

Herkese açık arşivin ardında, dört alana ayrılmış bir yönetim paneli bulunur: Kişi Yönetişimi (işletmeci ve üye hesapları, roller, izinler), Dahili Yayın (kayıt küratörlüğü çalışma odası ve editörler), Platform Yapılandırması (ayarlar, medya biçimleri, fasetler, diller, site yapısı) ve Teknoloji ve Veri (sistem durumu, tanılama, yedekler). Bir arşiv koruyucusunun yapılandırması gereken her şeye bu sayfalardan ulaşılır — arşiv işletmek kod değişikliği gerektirmez.

Kayıtlar net bir küratörlük akışından geçer: taslak olarak oluşturulur, üstveri ve fasetlerle doldurulur, istenirse incelemeye sunulur, sonra yayımlanır — ya da ileride yeniden arşivlenir. Dosyalar küçük, kaldığı yerden sürdürülebilir parçalar halinde yüklenir; böylece büyük medya kararsız bağlantıları atlatır ve her yükleme, kabul edilmeden önce dosya imzası incelemesiyle beyan ettiği türe karşı doğrulanır. Sunucu destekliyorsa önizleme görselleri kendiliğinden oluşturulur.

İsteğe bağlı bir üye alanı, arşivin koruyucularının ötesine büyümesini sağlar: kayıtlı üyelere, okuma ve tartışmadan kayıtları küratörlüğe ve yayımlamaya kadar dört sabit seviye üzerinden adım adım güven verilebilir. İzinler her iki tarafta da ince ayarlıdır — yönetim rolleri serbestçe tanımlanabilir ve ayrıntılı bir haklar kütüğünden beslenir; kişiye özel ayrıcalıklar tek tek herkesin erişimini genişletebilir ya da daraltabilir. Sahibin erişimi bilinçli olarak tümüyle veritabanının dışında tutulur; böylece bir arşivin kapısı, bozulmuş bir dosya ya da başarısız bir değişiklik yüzünden asla kilitlenemez.

10. Veri Güvenliği

Yedekler baş sıradadır: bir arşiv koruyucusu veritabanının, medya içeriğinin, kurulumun ya da hepsinin birden tarih damgalı ZIP yedeklerini alabilir — istendiği anda, en yenileri tutup en eskileri kaldıran bir saklama kuralıyla. Her yedek ayrıca S3 uyumlu herhangi bir depolama sağlayıcısına, site dışına eşlenebilir. Geri yükleme bilinçli olarak korumalıdır: sistem, bir yedeğin kuruluma ait olduğunu doğrular ve hiçbir şeye dokunmadan önce taze bir güvenlik yedeği alır. Sürümlenmiş şema izlemesiyle birlikte bu şu anlama gelir: özenle kurulmuş bir arşiv, uzun vadede bakılabilir, taşınabilir ve onarılabilir.

11. Tasarım İlkeleri

Depo, her mimari kararı yönlendirmiş, pazarlığa kapalı küçük bir ilkeler kümesi etrafında inşa edilmiştir:

  • İzleme yok, analitik yok, üçüncü taraflara istek yok — yazı tipleri ve betik kitaplıkları dahil her varlık, arşivin kendi sunucusundan sunulur. Ziyaretçiye dair hiçbir şey hiçbir yere gönderilmez.
  • Tasarımı gereği açıkça taranabilir — temiz HTML, yapılandırılmış bir site haritası, betimleyici üstveri ve arama motorlarıyla yapay zekâ sistemlerini hoş karşılayan bir robots.txt; böylece arşivlenen gerçekler geniş çevrelerce bulunup okunabilir.
  • Yazdırılabilir ve indirilebilir — belgeler ekranı terk edip gerçek dünyaya girmek içindir.
  • Birçok dilde okunabilir — hazırlıkta 18 arayüz dil paketi, arama ve fasetlerde yerel olarak desteklenen 49 içerik dili ve her herkese açık sayfada bir dil değiştirici (yukarıdaki Diller bölümüne bakın).
  • En az ve sınırları çizilmiş bağımlılıklar — bir avuç kendinden barındırmalı bileşen (sunucuda bir Markdown ayrıştırıcısı; tarayıcıda editör ve görüntüleyici kitaplıkları), sistemin kendi kodundan sıkıca ayrı tutulur. CDN yok, paket yöneticisi yok, derleme adımı yok.
  • Ortamdan bağımsız — birebir aynı kod her kurulumda çalışır; sunucu başına yalnızca tek bir ortam dosyası farklıdır.
  • Zarifçe geri çekilme — isteğe bağlı özellikler ön koşullarını denetler ve bir sunucu onları taşıyamadığında, arşivi bozmak yerine kendilerini temizce kapatır.

12. Geliştirme Künyesi

👥 Proje ve İçerik

Raven D. Pond & Keylam Folker — Ta-Na-Si projesinin kurucuları ve bu depo yazılımının koruyucuları. Bu yazılımın ardındaki tüm editoryal yön, küratörlük kararları ve proje vizyonu tümüyle Raven ile Keylam'a aittir. Her gereksinimi onlar tanımladı, her özelliği onlar sınadı ve bu sistemin geliştirilmesine ilk fikirden bugünkü biçimine dek onlar yol gösterdi; her mimari karar Keylam tarafından verildi ve onaylandı.

✨ Yazılım Geliştirme

Claude (Anthropic) — yapay zekâ asistanı Claude, bu depo için birincil geliştirme ortağı olarak görev yaptı. PHP arka ucu, çok sürücülü veritabanı katmanı, arama ve faset motoru, yönetim paneli, ön yüz tasarım sistemi ve tüm yardımcı araçlar; Raven & Keylam'ın gereksinimleri ile Claude'un kod çalışması arasındaki ortak bir süreçte tasarlandı ve yazıldı. Bu depo, gerçek bir proje için insan ile yapay zekânın doğrudan iş birliğiyle yürütülen yazılım mühendisliğinin ürünü bağımsız bir arşiv örneğidir.

📅 Geliştirme Zaman Çizelgesi

İlk geliştirme 2026 Mayıs'ının ortasında başladı ve o günden beri günlük iş birliğiyle sürüyor. Yazılım 1.0.0 sürümünü taşır; bu sayfa, Temmuz 2026 itibarıyla durumunu yansıtır.

13. Bu Yazılımla Gelen Kurallar

Bu yazılımın her kurulumu aynı kuralları taşır ve bu arşivi kuran kişi, daha tek bir dosya yazılmadan önce bu kuralları kabul etmiştir. Kurallar kısadır ve bir avukat tarafından didiklensin diye değil, bir insan tarafından okunsun diye yazılmıştır: buradan okuyabilirsiniz.

Tek cümleyle: baktığınız arşiv — adı, koleksiyonu, üyeleri, verileri — bütünüyle onu işleten insanlara aittir ve yazılımın ardındaki proje bunların hiçbirinin anahtarını elinde tutmaz. Her kurulumda kalan şey, yazılımın kendi adı, temel metinler ve projeyi yapan iki insanın anılmasıdır. Bir lisans öyle dediği için değil; kendi kökeni hakkında yalan söyleyen bir arşiv, var oluş nedeninin ta kendisini bozmuş olacağı için.

14. İletişim ve Geri Bildirim

Bu yaşayan bir sistemdir — projeyle birlikte gelişir. Teknik bir sorunla ya da kopuk bir bağlantıyla karşılaşırsanız veya bir iyileştirme öneriniz varsa, lütfen her sayfanın alt bilgisinde bağlantısı bulunan iletişim sayfası üzerinden bize ulaşın ya da platform kanallarımızdan herhangi birine yorum bırakın. Her şeyi okuyoruz.