Kendi sunucunuzda Hister arama motoru kurulumu
Hister ile ziyaret ettiğiniz sayfaları ve dosyalarınızı yerel olarak indeksleyin. Docker kurulumu, TLS yapılandırması, MCP uç noktası ve kullanıcı girişi adımlarını öğrenin.
Hister nedir ve ne değildir
Hister, kendi sunucunuzda barındırdığınız kişisel bir arama motorudur. Ziyaret ettiğiniz sayfaların ve sakladığınız dosyaların tam metin dizinini oluşturur; ardından bu koleksiyonu bir web arayüzü, terminal istemcisi, HTTP API veya bir yapay zeka asistanı üzerinden aramanıza olanak tanır. Hister tek bir soruya yanıt verir: "Bunu nerede okumuştum?"
Çoğu kullanıcı bu fikirle SearXNG aracılığıyla tanışır ancak bu iki araç aynı değildir. SearXNG bir meta arama proxy'sidir. Sorgunuz ona gider, o sizin adınıza diğer arama motorlarına sorar ve sonuçları izleme verilerini temizleyerek size geri iletir. Dizin, bu arama motorlarına aittir. Hister ise kendi dizinini, ona sağladığınız içeriklerden oluşturur: tarayıcı eklentisiyle yakalanan sayfalar, içe aktarılan tarayıcı geçmişi, taranan URL'ler ve işaret ettiğiniz dizinlerdeki dosyalar. Kendi sunucunuzda barındırdığınız bir SearXNG örneği, genel web'e özel erişim sağlar. Hister ise kendi okuma geçmişiniz üzerinde arama yapmanızı sağlar. Görevleri farklıdır, bu nedenle her ikisini de tek bir makinede çalıştırmak normaldir.
Hister, AGPLv3 (GNU Affero General Public License, sürüm 3) veya sonraki sürümleri altında lisanslanmış özgür bir yazılımdır. Telemetri içermez ve herhangi bir bulut servisine ihtiyaç duymaz. Bu kılavuz, 2026-07-28 tarihinde güncel sürüm olan v0.17.0 sürümünü temel almaktadır. Herhangi bir komutu kopyalamadan önce güncel etiket için sürümler sayfasını kontrol edin ve bulduğunuz etiketi sabitleyin.
Neden Hister uygulamasını bir VPS üzerinde barındırmalısınız?
Bir dizin yalnızca eksiksiz olduğunda kullanışlıdır ve yalnızca siz okuma yaparken sunucu çalışır durumdaysa eksiksiz olabilir. Dizüstü bilgisayarlar günün yarısında uyku modundadır. Bu süre zarfında telefonunuzda açtığınız sayfalar sunucuya asla ulaşmaz ve gece başlatılan bir içe aktarma işlemi asla başlamaz. Bir VPS (sanal özel sunucu) sürekli çevrimiçi kalır; böylece sahip olduğunuz tüm cihazlar aynı dizine veri gönderir ve tarayıcı siz uyurken de çalışmaya devam eder.
İkinci neden ise ayrıştırmadır. user_handling: true ayarını app bölümünde yapılandırmak, tek bir örnek (instance) üzerinde her hesaba kendi kimlik bilgilerini ve kendi belge koleksiyonunu sağlar. Böylece tek bir sunucu, bir hane halkının veya küçük bir ekibin verilerini, kimse başkasının okuma geçmişini arayamayacak şekilde barındırabilir.
Üçüncü neden ise altyapıdır. VPS zaten genel bir ana bilgisayar adına (hostname) ve sertifikaya sahiptir; tarayıcı eklentisinin, kontrolünüz altında olmayan bir ağdan sunucuya ulaşabilmesi için gereken şey de budur.
Kurulum yolu bir: release binary
Hister, her platform için tek bir binary dosyası sunar. Dosyayı checksum dosyasıyla birlikte indirin ve yüklemeden önce doğrulayın.
cd /tmp
curl -LO https://github.com/asciimoo/hister/releases/download/v0.17.0/hister_0.17.0_linux_amd64
curl -LO https://github.com/asciimoo/hister/releases/download/v0.17.0/hister_0.17.0_checksums.txt
sha256sum --ignore-missing -c hister_0.17.0_checksums.txtBaşarılı bir sonuç, hister_0.17.0_linux_amd64: OK satırını döndürür. FAILED satırı, indirilen dosyanın hasarlı veya değiştirilmiş olduğu anlamına gelir; bu durumda dosyayı yüklemek yerine yeniden indirin.
Binary dosyasını kurun, ardından bir sistem hesabı ve kullanacağı dizinleri oluşturun.
sudo install -m 755 /tmp/hister_0.17.0_linux_amd64 /usr/local/bin/hister
sudo useradd --system --home-dir /var/lib/hister --shell /usr/sbin/nologin hister
sudo install -d -o hister -g hister -m 750 /var/lib/hister
sudo install -d -m 755 /etc/hister
sudo hister create-config /etc/hister/config.ymlcreate-config komutu varsayılan bir yapılandırma dosyası oluşturur ve binary dosyasının bu makinede çalıştığını doğrular. Yanlış mimari için yapılan bir indirme işlemi, bu aşamada cannot execute binary file: Exec format error hatasıyla başarısız olur.
Önemli olan birkaç ayarı düzenleyin. Oluşturulan dosyanın geri kalanı olduğu gibi bırakılabilir.
app:
directory: /var/lib/hister
access_token: 'paste-a-long-random-string-here'
server:
address: 127.0.0.1:4433
base_url: https://hister.example.comToken'ı openssl rand -hex 32 ile oluşturun. Dosya artık bir kimlik bilgisi içerdiğinden, servis başlamadan önce dosya izinlerini kısıtlayın.
sudo chown root:hister /etc/hister/config.yml
sudo chmod 640 /etc/hister/config.ymlsystemd altında çalıştırma
/etc/systemd/system/hister.service dosyasını oluşturun:
[Unit]
Description=Hister personal search engine
After=network-online.target
Wants=network-online.target
[Service]
User=hister
Group=hister
Environment=HISTER_CONFIG=/etc/hister/config.yml
ExecStart=/usr/local/bin/hister listen
Restart=on-failure
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/hister
[Install]
WantedBy=multi-user.targetHISTER_CONFIG, yapılandırma yolu için belgelenmiş ortam değişkenidir; bu sayede birim, hister hesabının ev dizinine bağımlı kalmaz. ProtectSystem=strict, bu servis için tüm dosya sistemini salt okunur hale getirir; bu nedenle ReadWritePaths içerisinde veri dizininin belirtilmesi gerekir. ProtectHome=yes, /home dizinini servisten gizler; dolayısıyla /home altında izlenen bir dizin, indeksleyiciye boş görünecektir. Eğer o dizindeki dosyaları indekslemeniz gerekiyorsa bu satırı kaldırın.
sudo systemctl daemon-reload
sudo systemctl enable --now hister
systemctl status hister --no-pager
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:4433/Son komut tarafından yazdırılan herhangi bir HTTP durum kodu, sürecin dinlemede olduğu anlamına gelir. curl: (7) Failed to connect, sürecin dinlemede olmadığını gösterir; journalctl -u hister -n 50 --no-pager ise bunun nedenini açıklayacaktır.
Kurulum yolu iki: Docker Compose
İmaj, her sürüm için bir etiketle birlikte GitHub container registry üzerinde yayınlanmaktadır.
services:
hister:
image: ghcr.io/asciimoo/hister:v0.17.0
container_name: hister
user: '1000:1000'
restart: unless-stopped
environment:
- HISTER__SERVER__ADDRESS=0.0.0.0:4433
- HISTER__SERVER__BASE_URL=https://hister.example.com
- HISTER__APP__ACCESS_TOKEN=${HISTER_ACCESS_TOKEN}
volumes:
- ./data:/hister/data
ports:
- 127.0.0.1:4433:4433Her yapılandırma anahtarı, ayırıcı olarak iki alt çizgi kullanılan HISTER__<SECTION>__<KEY> biçiminde bir ortam değişkeni geçersiz kılma özelliğine sahiptir; bu nedenle bir container dağıtımı için mount edilmiş bir yapılandırma dosyasına gerek yoktur. HISTER_ACCESS_TOKEN değerini, compose dosyasının yanındaki bir .env dosyasında tutun. Eğer bir dosyayı düzenlemeyi tercih ederseniz, docker run --rm ghcr.io/asciimoo/hister:v0.17.0 create-config > config.yml komutu varsayılan değerleri yazdırır.
Yukarıdaki iki satırın yanlış anlaşılması kolaydır ve her ikisini de anlamak önemlidir.
Container içindeki adres 0.0.0.0:4433 olmalıdır. Bir container kendi ağ ad alanına (network namespace) sahiptir; bu nedenle orada 127.0.0.1 adresine bağlı bir süreç yalnızca o container içinden erişilebilirdir ve yayınlanan portun yönlendirecek bir şeyi kalmaz.
Yayınlanan port 4433:4433 değil, 127.0.0.1:4433:4433 şeklinde yazılır. Docker, portları kendi netfilter kurallarını ekleyerek yayınlar ve bu kurallar ufw kurallarından önce değerlendirilir. Bu yüzden, ufw status komutu portun kapalı olduğunu gösterse bile, düz bir 4433:4433 girişi internetten erişilebilir kalır. Host tarafını 127.0.0.1 adresine bağlamak, reverse proxy'yi içeriye giden tek yol haline getirir. Aynı tuzak sunucudaki her container için geçerlidir ve VPS üzerinde Docker Compose rehberi bu konunun geri kalanını kapsamaktadır.
Varsayılan imaj UID 1000 ve GID 1000 ile çalışır; bu nedenle ./data dizini bu hesap tarafından yazılabilir olmalıdır, aksi takdirde container başlangıçta bir izin hatasıyla durur. sudo chown -R 1000:1000 ./data komutu bu sorunu çözer. Eğer bu numaralar size yabancıysa, önce bir container'ın hangi UID ve GID ile dosya yazdığı konusunu okuyun.
Kişisel arama dizinini dış dünyaya açmak neden en büyük risktir
Hister varsayılan olarak 127.0.0.1:4433 adresini dinler ve bu varsayılan ayar bilinçli olarak seçilmiştir. Bir aylık kullanımın ardından dizinin neleri barındırdığını düşünün: dahili wiki sayfaları, faturalar, oturum açmışken açtığınız destek talepleri, parola sıfırlama sayfaları ve okuduğunuz diğer her şeyin tam metni. Proje belgeleri bunu doğrudan belirtir: "Hister, tüm tarama geçmişinizi, sayfa içerikleriyle birlikte sunucuya ve sunucudan iletir."
Sızdırılmış bir parola veritabanının yine de kırılması gerekir. Sızdırılmış bir kişisel dizin ise düz metin halindedir ve halihazırda aranabilir durumdadır; bu nedenle, benzediği küçük self-hosted uygulamalardan çok daha fazla özen gerektirir.
Bundan iki gerçek ortaya çıkar. Hister kutudan çıktığı haliyle kimlik doğrulama gerektirmez, bu nedenle tek başına bir reverse proxy, ana bilgisayar adını öğrenen herkese okuma geçmişinizin aranabilir bir kopyasını yayınlar. MCP uç noktası da varsayılan olarak /mcp adresinde sunulur ve bir token olmadan, ona ulaşan her istemci dizin üzerinde arama yapabilir.
Servisi ilk kez localhost dışına çıkarmadan önce kimlik doğrulamayı yapılandırın. Tek bir kullanıcı için yalnızca app.access_token yeterlidir; bu, tarayıcı eklentisi, terminal istemcisi ve herhangi bir MCP istemcisi tarafından gönderilen paylaşılan bir gizli anahtardır. Birden fazla kişi için user_handling: true ayarını yapın ve hesaplar oluşturun:
sudo -u hister hister create-user alice --admin --config /etc/hister/config.ymlKomut, en az 8 karakterlik bir parola ister. Her hesap kendi belgelerine ve sahibinin profil sayfasından veya hister update-user üzerinde --regen-token bayrağı ile yeniden oluşturabileceği kişisel bir API token'ına sahip olur. Yeni bir token oluşturmak, bir öncekini derhal geçersiz kılar; bu nedenle o hesabı kullanan her cihazın daha sonra güncellenmesi gerekir.
Gerçekten istemediğiniz sürece app.public ayarına dokunmayın. Genel mod; yazma, geçmişe erişim ve yönetici işlemlerini engellemeye devam ederken, kimlik doğrulaması gerektirmeyen arama, önizleme, dosya sunumu ve MCP aramasına izin verir.
Reverse proxy, TLS ve güvenlik duvarı
Hister HTTPS hizmetini kendisi sunmaz, bu nedenle TLS (transport layer security) sonlandırma işlemini ön tarafta gerçekleştirin. Caddy en kısa yoldur; çünkü ACME (automatic certificate management environment) üzerinden sertifikaları kendi başına talep eder ve yeniler.
hister.example.com {
reverse_proxy 127.0.0.1:4433
}sudo systemctl reload caddy ile yeniden yükleyin. Bir sertifikanın düzenlenebilmesi için iki koşulun sağlanması gerekir: hister.example.com için A kaydı bu sunucuyu işaret etmeli ve 80 numaralı port açık olmalıdır; çünkü HTTP-01 sınaması (challenge) buradan yanıtlanır. Bunlardan biri eksik olduğunda, tarayıcı sayfa yerine bir TLS hatası alır ve Caddy günlüğü başarısız olan sınamayı tekrarlar.
Ardından diğer her şeyi kapatın.
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status4433 numaralı port bu listede kasıtlı olarak yer almamaktadır.
server.base_url, tarayıcıya yazdığınız adresle (şema dahil) eşleşmelidir. Eşleşmediğinde arayüz, stillendirilmemiş metinler ve eksik görsellerle yüklenir; çünkü sunucu varlık bağlantılarını base_url üzerinden oluşturur ve tarayıcı bunları yanıt vermeyen bir kaynaktan ister. Aynı URL tarayıcı eklentisine de girilmelidir.
İndeksin doldurulması
Tarayıcı eklentisi ana toplayıcıdır. Eklentiyi Mozilla Add-ons veya Chrome Web Store üzerinden kurun, seçenekler sayfasını açın, sunucu URL adresini https://hister.example.com olarak ayarlayın ve erişim belirtecini (access token) yapıştırın. Eklenti, ziyaret ettiğiniz her sayfanın başlığını, tam metnini, HTML içeriğini ve favicon dosyasını yakalayarak sunucunuza gönderir. Çıkarım işlemi istemci tarafında, tarayıcı içinde gerçekleşir. Eklenti hiçbir üçüncü tarafla iletişim kurmaz; dışarıya yaptığı tek istek sayfa favicon dosyası içindir.
İstemci tarafında çıkarım, gizli bir indeksin mümkün olmasını sağlayan şeydir. Eklenti, sayfayı tıpkı sizin gördüğünüz gibi, giriş yapıldıktan ve render edildikten sonra görür; bu sayede dahili bir wiki sayfası veya ücretli bir makale doğru şekilde indekslenir ve sunucunuzun kimlik bilgilerine ihtiyacı kalmaz. Bu aynı zamanda baktığınız her şeyin indeks için bir aday olduğu anlamına gelir; atlama kurallarının (skip rules) daha fazla içerikten önce gelmesinin nedeni budur.
Atlama kuralları, tek kullanıcılı kurulumlarda rules.json dosyasında veya veritabanında kullanıcı bazlı olarak tutulur; web arayüzündeki Kurallar (Rules) sekmesi bunları düzenlemenin en kolay yoludur. Bu kurallar, tam URL ile eşleştirilen Go düzenli ifadeleridir:
^https://mail\.example\.com
^https://bank\.example\.com
.*?utm_source=^mail.example.com gibi bir desen asla eşleşmez, çünkü test edilen dizge https:// ile başlar. Sondaki bir $ de sorgu parametreleri eşleştirme sırasında korunduğu için sorgu dizgesi içeren herhangi bir URL üzerinde başarısız olur.
Mevcut geçmiş, tarayıcının kendi veritabanı okunarak içe aktarılır; bu nedenle komut, VPS üzerinde değil, tarayıcı profilini barındıran makinede, yani dizüstü bilgisayarınızda çalıştırılmalıdır. Aynı binary dosyasını oraya kurun ve sunucuya yönlendirin:
export HISTER_TOKEN='your-access-token'
hister import browser firefox -u https://hister.example.com -t "$HISTER_TOKEN"İçe aktarma işlemi browser-import-YYYY-MM-DD adında, kaldığı yerden devam edebilen bir iş olarak çalışır; bu sayede işlemi kesebilir ve daha sonra tekrar başlatabilirsiniz. Yer imi servisleri de Linkwarden, Karakeep, Wallabag, Linkding, Readeck ve Shaarli dahil olmak üzere aynı şekilde içe aktarılır ve tekrarlanan içe aktarma işlemleri yalnızca bir öncekinden daha yeni olanları getirir.
Sunucudaki dosyalar, yapılandırma dosyasında dizinler belirtilerek indekslenir:
indexer:
directories:
- path: '/var/lib/hister/documents'
label: 'documents'
filetypes: ['pdf', 'docx', 'md', 'txt']PDF, DOCX, Markdown, Org mode ve geçerli UTF-8 metin dosyaları tam metin olarak okunur. Fotoğraflar ve videolar bu listede yer almaz; bu nedenle bir fotoğraf kütüphanesi, metin yerine yüzleri, yerleri ve tarihleri indeksleyen bir sunucuya ihtiyaç duyar. PhotoPrism ve Immich, bu iş için genellikle karşılaştırılan iki araçtır. Tek bir sayfa hister index https://example.com ile eklenir. Tüm siteleri diğer araçlar için temiz metne dönüştürmek ayrı bir iştir ve sayfaları temiz metne dönüştüren self-hosted tarayıcılar tarafından yönetilir.
Arama alan tabanlıdır, bu nedenle sorgu dilini öğrenmek için ayıracağınız on dakika buna değecektir:
"connection reset" domain:github.com added:<30d
title:(wireguard|nftables) -tutorial sort:-visitsMCP üzerinden kendi dizininizi bir kodlama aracına yönlendirme
MCP (model context protocol), bir asistanın sunucu üzerindeki araçları çağırmak için kullandığı arayüzdür. Hister bunu POST /mcp adresinde, aynı temel URL altında, streamable HTTP taşıması üzerinden sunar ve search, get_preview ile get_history uç noktalarını dışa açar. Kimlik doğrulama, API'nin geri kalanında kullanılanla aynı bearer token ile gerçekleştirilir.
{
"mcpServers": {
"hister": {
"url": "https://hister.example.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
}
}
}X-Access-Token başlığı, Authorization seçeneğine alternatif olarak çalışır.
Buradaki değer, aracın neyi aradığıyla ilgilidir. Açık web araması, güncel sıralamada ne varsa onu döndürür; bu da hızlı değişen yazılımlar için genellikle kullanmadığınız bir sürüme ait dokümantasyon olabilir. Kendi dizininiz ise daha önce okuyup saklamayı seçtiğiniz sayfayı döndürür; get_preview ise depolanan kopyayı sunduğu için, orijinal sayfa çevrimdışı olsa bile yanıt geçerliliğini korur. Genel sonuçlara da ihtiyaç duyuyorsanız araca her iki kaynağı da verin: SearXNG destekli bir tarayıcı arama yeteneği, açık web'i ayrı bir araç olarak ekler. Bu uç noktalardan birden fazlasını çalıştırdığınızda, bir VPS üzerinde MCP sunucuları barındırmak konusunu okumaya değer; çünkü her biri aynı erişim sorununu paylaşır.
Disk, yedekler ve bakım
Dokümantasyona göre dizinlenmiş bir sayfa, sıkıştırılmış önizleme dahil yaklaşık 100 KB yer kaplar; bu da yüz bin sayfanın kabaca 10 GB olduğu anlamına gelir. Bir kota sistemi bulunmamaktadır. İki ayar sıklıkla birbirine karıştırılır: indexer.max_file_size_mb (varsayılan olarak 1 MiB) tek bir izlenen dosyayı, server.max_batch_body_size (varsayılan olarak 40 MiB) ise tek bir API isteğini sınırlar.
app.directory ile belirtilen dizin; dile göre dizin dosyalarını içeren index.db, hesaplar ve işler için db.sqlite3, önizlemeler için data/html/ ve rules.json öğelerini barındırır. Yedekleme işlemi, servisin durdurulması ve bu dizinin tamamı ile yapılandırma dosyasının kopyalanmasıyla gerçekleştirilir. hister export backup.json, belgeleri taşıma amacıyla JSON formatında dışa aktarır; bu bir sunucu yedeği değildir.
İki bakım komutunu bilmek faydalıdır. hister reindex, arama dizinlerini yeniden oluşturur; bu işlem dizinleyici ayarları değiştirildikten sonra gereklidir. Büyük bir içe aktarma sırasında bellek kullanımı artarsa, indexer bölümünde detect_languages: false ayarını yapılandırın ve yeniden dizinleme yapın. hister cleanup, silme işlemlerinden sonra geride kalan yetim önizleme ve favicon dosyalarını temizler.
Silme işlemi bir sorgu olduğu için önce kuru çalışma (dry mode) modunda çalıştırın:
hister delete 'domain:example.com' --dry --verboseSilinen bir sayfa, bir toplayıcı (collector) tarafından gönderilmeye devam edilirse geri döner; bu nedenle silme işleminden önce atlama kuralını ekleyin.
AGPLv3 lisansı yalnızca kod üzerinde değişiklik yapmanız durumunda önem kazanır. Değiştirilmemiş bir kopyayı kendiniz için çalıştırmanın herhangi bir yükümlülüğü yoktur. Hister üzerinde değişiklik yapar ve sürümünüzü başkalarının bir ağ üzerinden kullanmasına izin verirseniz, lisans gereği değiştirilmiş kaynak kodunuzu onlara sunmanız gerekir.
Hata modları ve karşılaşacağınız dizgeler
Sunucu başlamıyor. Ya 4433 numaralı port zaten kullanımda ya da yapılandırma dosyasında bir YAML sözdizimi hatası var. sudo ss -lntp | grep 4433 komutu portu neyin tuttuğunu gösterir, journalctl -u hister -n 50 --no-pager ise ayrıştırma hatasını yazdırır.
Arayüz yükleniyor ancak bozuk görünüyor. Karışık metinler ve eksik görseller, server.base_url değerinin adres çubuğundaki URL ile eşleşmediği anlamına gelir. Sondaki bir eğik çizgi (/) uyumsuzluk olarak sayılır.
Eklenti bağlanmıyor. Eklentideki sunucu URL'si base_url ile aynı olmalıdır, sunucu çalışır durumda ve güncel olmalıdır; aradaki bir güvenlik duvarı hiçbir hata mesajı vermeden bağlantıyı engelliyor olabilir. Firefox, eklenti günlüklerini normal konsolun dışında tutar: about:debugging#/runtime/this-firefox adresini açın ve Hister eklentisini inceleyin.
Konteyner başlangıçta kapanıyor. ./data üzerindeki bir izin hatası, dizinin varsayılan imaj içindeki hesap olan 1000 dışındaki bir UID'ye ait olduğu anlamına gelir.
Yönetici rotasından 403 Forbidden hatası. Kullanıcı yönetimi açıkken POST /api/reindex ve POST /api/cleanup yalnızca yöneticiye özeldir, bu nedenle sıradan bir hesabın buralara erişimi reddedilir.
İçe aktarma sırasında bellek kullanımı artıyor. Büyük bir geçmiş üzerinde dil algılama işlemi genellikle buna neden olur. detect_languages: false değerini ayarlayın ve ardından hister reindex komutunu çalıştırın.
FAQ
Hister, SearXNG'den nasıl farklıdır?
SearXNG bir metasearch proxy'sidir: sorgunuzu genel arama motorlarına iletir ve izleme verilerinden arındırılmış sonuçları döndürür; dolayısıyla dizin bu arama motorlarına aittir. Hister ise ziyaret ettiğiniz sayfaların ve sakladığınız dosyaların kendi tam metin dizinini tutar. Bu sayede SearXNG "web ne diyor" sorusuna yanıt verirken, Hister "bunu nerede okumuştum" sorusuna yanıt verir. İkisi farklı sorunları çözer ve birçok kullanıcı her ikisini de aynı sunucuda çalıştırır.
Tüm tarama geçmişimi bir VPS üzerinde tutmak güvenli midir?
Yalnızca gerekli güvenlik önlemleri alındıysa güvenlidir. Hister varsayılan olarak 127.0.0.1:4433 adresine bağlanır ve herhangi bir kimlik doğrulama gerektirmez. app.access_token veya user_handling: true ayarlarını yapılandırın, önüne TLS destekli bir reverse proxy koyun ve 4433 numaralı portu güvenlik duvarında kapalı tutun. Okuma geçmişinizin tam metin dizini düz metin halindedir; bu nedenle port erişimine sahip olan herkes, herhangi bir şifre kırma işlemi yapmadan her şeyi okuyabilir.
Tarayıcı eklentisine ihtiyacım var mı, yoksa sadece geçmişimi içe aktarabilir miyim?
İçe aktarma işlemi tek seferlik bir geriye dönük yüklemedir. Tarayıcının kendi geçmiş veritabanını okur, bu nedenle sunucu yerine tarayıcı profilini barındıran bilgisayarda çalışır. Eklenti, dizini o andan itibaren güncel tutar ve sayfa tarayıcıda oluşturulduktan sonra içeriği çıkardığı için giriş gerektiren sayfaları da yakalayabilir. Yaygın bir kurulum yöntemi, önce içe aktarma yapmak, ardından eklentiyi kullanmaktır.
Bir kodlama ajanı Hister dizinimde arama yapabilir mi?
Evet. Hister, temel URL'niz üzerinde POST /mcp adresinde bir MCP (model context protocol) sunucusudur ve search, get_preview ve get_history uç noktalarını dışa açar. İstemciyi, erişim jetonunuzu içeren bir Authorization: Bearer başlığı ile https://your-host/mcp adresine yönlendirin. Ajan, genel bir arama motorunda bugün üst sıralarda yer alan sonuçlar yerine, bizzat okuduğunuz dokümantasyonu ve okuduğunuz sürümü üzerinden arama yapar.