Karakeep: VPS'te kişisel yer imi arşivi kurma
Bir bağlantıyı kaydetmek kolaydır. Altı ay sonra onu bulmak ise daha zordur; özellikle sayfa değişmiş, ortadan kalkmış veya yüzlerce yer imi arasında kaybolmuşsa.
Karakeep yalnızca URL'yi değil, sayfa içeriğini, önizlemeyi, notları, görselleri ve PDF dosyalarını da saklar. Arşivi metinle arayabilir, öğeleri listelerde düzenleyebilir ve yapay zekâyla otomatik etiketleyebilirsiniz. Uygulama kendi VPS'inizde çalışır; bir dil modelini bağlamak isteğe bağlıdır.
Aşağıda Karakeep'in yeteneklerini, sunucu gereksinimlerini ve Ubuntu 24.04 üzerinde Docker Compose, HTTPS ve yedeklerle kurulumunu ele alacağız.
Karakeep yedi adımda
- Bir Linux VPS oluşturun ve
keep.example.comgibi bir alt alan adını bu sunucuya yönlendirin. - Docker Engine ve Docker Compose'u kurun.
- Resmî
docker-compose.ymldosyasını indirin. - Gizli anahtarlar oluşturup Karakeep, Chrome ve Meilisearch'i başlatın.
- Dahili 3000 portunu kapatın ve Caddy üzerinden HTTPS'i etkinleştirin.
- İlk hesabı oluşturun, ardından açık kayıt özelliğini kapatın.
- Tarayıcı uzantısını veya mobil uygulamayı kurup yer imlerinizi içe aktarın.
Hizmeti başlatmak için yapay zekâ anahtarı gerekmez. Bu anahtar olmadan sayfa kaydetme, listeler, notlar, OCR ve tam metin arama çalışmaya devam eder. Otomatik etiketler ve özetler oluşturulmaz.
Karakeep nedir?
Karakeep; bağlantıları, metin notlarını, görselleri ve PDF'leri tek bir kütüphanede saklayan açık kaynaklı, self-hosted bir uygulamadır. Projenin önceki adı Hoarder'dı.
Adı, dağınık görünen ancak gizli bir değere sahip olabilecek eşyalar için kullanılan Arapça karakeeb kelimesinden gelir. Bu, tipik bir yer imi koleksiyonunu doğru biçimde anlatır: yararlı içerik çoktur, fakat doğru öğeyi bulmak zordur.
Bir bağlantı ekledikten sonra Karakeep başlığını ve açıklamasını alır, okunabilir metni çıkarır, önizleme oluşturur ve gerektiğinde sayfanın yerel bir kopyasını kaydedebilir.
| Özellik | Tarayıcı yer imleri | Karakeep |
|---|---|---|
| Saklanan içerik | URL ve başlık | Metin, önizleme, notlar ve ekler |
| Arama | Başlık ve adrese göre | İçerik, etiket ve notlara göre |
| Sayfa ortadan kalkarsa | Bozuk URL kalır | Metin, ekran görüntüsü veya tam arşiv kalır |
| Düzenleme | Klasörler | Etiketler, manuel listeler ve akıllı listeler |
| Erişim | Tarayıcıda | Web, uzantılar, iOS ve Android |
| Sunucu | Tarayıcı profili veya bulut hizmeti | VPS'iniz veya ev sunucunuz |
Karakeep'in temel özellikleri
Bağlantılar, notlar, görseller ve PDF'ler
Her öğe bir bağlantı, metin notu veya yüklenmiş dosya olabilir. OCR, görsellerden ve PDF'lerden metin çıkarır; böylece bunlar da aranabilir hâle gelir. Bir öğeye not, alıntı veya ek dosya iliştirebilirsiniz.
İçerik araması
Meilisearch kaydedilen metni, notları ve meta verileri indeksler. Tam başlığı hatırlamanız gerekmez; bir ifade veya konu yeterlidir. Embedding'ler yapılandırıldığında anlam tabanlı semantik arama da kullanılabilir.
Akıllı ve ortak listeler
Tek bir öğe kopyalanmadan aynı anda birkaç listeye ait olabilir. Bir liste özel tutulabilir, bağlantıyla paylaşılabilir veya diğer kullanıcılarla birlikte düzenlenebilir.
Akıllı liste, otomatik olarak güncellenen kayıtlı bir arama sorgusudur. Örneğin geçen hafta eklenen ve ai etiketi taşıyan tüm öğeleri gösterebilir.
Sayfa arşivleme
Karakeep varsayılan olarak çıkarılan metni ve sayfanın görünen bölümünün ekran görüntüsünü saklar. İsteğe bağlı olarak tam sayfa görüntüsü, PDF veya kendi kendine yeten HTML arşivi de etkinleştirilebilir. Bu, kütüphaneyi ölü bağlantılara karşı korur, ancak disk kullanımını artırır.
Kimlik doğrulama arkasındaki sayfalar, gelişmiş bot karşıtı korumalar ve etkileşimli uygulamalar tamamen kaydedilmeyebilir. Önemli materyalleri ayrıca PDF veya dosya olarak yüklemek daha güvenlidir.
İsteğe bağlı yapay zekâ etiketleme
Karakeep harici bir OpenAI uyumlu API veya yerel bir Ollama modeli üzerinden etiketler ve kısa özetler oluşturabilir. Yapay zekâ olmadan da uygulama tam işlevli bir yer imi yöneticisi olarak çalışır.
Yerel model materyalleri harici bir sağlayıcıya göndermez, ancak önemli ölçüde daha fazla RAM gerektirir. Bu nedenle Ollama çoğu zaman ana Karakeep örneğinden ayrı barındırılır.
Karakeep sunucu gereksinimleri
Resmî belgeler CPU ve RAM için sabit bir minimum belirtmez. Tam kurulum üç container içerir:
- Karakeep veritabanını saklar ve arayüzü sunar;
- headless Chrome sayfaları açar, JavaScript çalıştırır ve ekran görüntüsü alır;
- Meilisearch kütüphaneyi indeksler.
Yerel LLM kullanmayan tek bir kullanıcı için pratik yapılandırma:
- 2 vCPU;
- 2 GB RAM;
- 20–30 GB SSD veya NVMe;
- Ubuntu 24.04 LTS;
- genel IP adresi ve alan adı.
Birkaç kullanıcı, büyük bir içe aktarma, çok sayıda RSS akışı ve PDF için 4 GB RAM daha rahattır. Disk gereksinimi arşivleme moduna bağlıdır: metin az yer kaplar, ancak tam ekran görüntüleri, PDF'ler ve videolar kütüphaneyi hızla büyütebilir.
VPS'te Karakeep nasıl kurulur?
Bu örnekte Ubuntu 24.04 ve keep.example.com alt alan adı kullanılır.
1. DNS ve güvenlik duvarını yapılandırın
Sunucu IP adresine yönlenen bir A DNS kaydı oluşturun, ardından SSH üzerinden bağlanın:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableYeni bağlantının çalıştığını doğrulayıncaya kadar mevcut SSH oturumunu kapatmayın.
2. Docker'ı kurun
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Karakeep yapılandırmasını indirin
mkdir -p /opt/karakeep
cd /opt/karakeep
curl -fsSLo docker-compose.yml \
https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.ymlİki farklı gizli anahtar oluşturun:
openssl rand -base64 36
openssl rand -base64 36 | tr -dc 'A-Za-z0-9'/opt/karakeep/.env dosyasını oluşturun:
KARAKEEP_VERSION=release
NEXTAUTH_SECRET=INSERT_THE_FIRST_SECRET
MEILI_MASTER_KEY=INSERT_THE_SECOND_SECRET
NEXTAUTH_URL=https://keep.example.com
DISABLE_SIGNUPS=false
DB_WAL_MODE=true
RATE_LIMITING_ENABLED=true.env dosyasını yayımlamayın: ilk gizli anahtar kimlik doğrulama belirteçlerini imzalar, ikinci anahtar ise Meilisearch'i korur.
4. Dahili portu kapatın
docker-compose.yml içinde şunu:
ports:
- 3000:3000şununla değiştirin:
ports:
- 127.0.0.1:3000:3000Bu, 3000 portunun internetten doğrudan erişilebilir olmasını engeller.
5. Container'ları başlatın
cd /opt/karakeep
docker compose up -d
docker compose psweb, chrome ve meilisearch servisleri çalışıyor olmalıdır. Günlükleri şu komutla görüntüleyin:
docker compose logs --tail=2006. HTTPS'i etkinleştirin
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
keep.example.com {
reverse_proxy 127.0.0.1:3000
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyDNS yapılandırılmış ve 80 ile 443 portları açık ise Caddy otomatik olarak TLS sertifikası alır. Ardından https://keep.example.com adresini açın.
7. Yönetici oluşturup kaydı kapatın
İlk kaydolan kullanıcı otomatik olarak yönetici olur. Hesabı oluşturduktan sonra .env içinde şunu ayarlayın:
DISABLE_SIGNUPS=trueDeğişikliği uygulayın:
cd /opt/karakeep
docker compose up -dYönetici yine de diğer hesapları elle oluşturabilir.
Verileri, uzantıları ve mobil uygulamaları içe aktarma
Karakeep Chrome, Firefox ve Safari için uzantılar; iOS ve Android için de uygulamalar sunar. Telefonda bir bağlantı, sistemin Share menüsü üzerinden arşive gönderilebilir.
Mevcut yer imleri standart bir tarayıcı HTML dosyasından, Pocket, Omnivore ve desteklenen diğer servislerden içe aktarılabilir. Büyük bir arşivi gruplar hâlinde eklemek daha iyidir: sunucunun sayfaları açması, metni çıkarması, ekran görüntüleri oluşturması ve arama dizinini kurması gerekir.
Yapay zekâ ve tam sayfa arşivleme nasıl etkinleştirilir?
OpenAI için .env dosyasına şunu ekleyin:
OPENAI_API_KEY=YOUR_API_KEYBaşka bir OpenAI uyumlu servis için ayrıca OPENAI_BASE_URL gerekebilir. Yerel model için container içinden erişilebilen bir adresle OLLAMA_BASE_URL kullanın.
Bir sayfanın eksiksiz yerel kopyasını ayrıca etkinleştirin:
CRAWLER_FULL_PAGE_ARCHIVE=trueCRAWLER_FULL_PAGE_SCREENSHOT=true ve CRAWLER_STORE_PDF=true seçenekleri de mevcuttur. Gerekli olmadıkça tüm modları açmayın; disk kullanımını belirgin biçimde artırırlar. .env dosyasını değiştirdikten sonra docker compose up -d çalıştırın.
Güvenlik, güncellemeler ve yedekler
Karakeep crawler'ı, kullanıcının kaydettiği adresleri sunucunuzun ağından açar. Bu nedenle kaydı açık bırakmayın ve yalnızca güvendiğiniz kişilere erişim verin. Temel SSRF koruması bulunur, ancak resmî proje herkese açık bir hizmet için tarayıcıyı izole etmeyi veya kısıtlı bir proxy üzerinden yönlendirmeyi önerir.
Ayrıca HTTPS kullanın, güçlü parolalar belirleyin, 3000 portunu açmayın ve container'ları düzenli olarak güncelleyin:
cd /opt/karakeep
docker compose up --pull always -dAna veritabanı ve kaydedilen materyaller data adlı Docker volume'ünde tutulur. Kopyalamadan önce container'ları durdurun:
mkdir -p /var/backups/karakeep
cd /opt/karakeep
docker compose stop
docker run --rm \
-v karakeep_data:/source:ro \
-v /var/backups/karakeep:/backup \
alpine sh -c 'tar czf /backup/data-$(date +%F).tar.gz -C /source .'
cp .env docker-compose.yml /var/backups/karakeep/
docker compose startkarakeep_data adı proje dizininin /opt/karakeep olduğunu varsayar; docker volume ls ile doğrulayabilirsiniz. Meilisearch dizini yeniden oluşturulabilir, ancak büyük bir kütüphane için karakeep_meilisearch volume'ünü de yedeklemek yararlıdır.
Arşivi /var/backups/karakeep konumundan başka bir sunucuya, NAS'a veya nesne depolamaya gönderin. Aynı VPS'teki bir kopya disk arızasına veya sanal makinenin silinmesine karşı koruma sağlamaz.
Karakeep için hangi VPS seçilmeli?
Ollama kullanmayan kişisel bir kütüphane için 2 vCPU, 2 GB RAM ve 20–30 GB NVMe özellikli bir Linux VPS uygundur. Büyük içe aktarmalar, birkaç kullanıcı ve tam arşivleme için 4 GB RAM ve daha büyük bir disk seçin.
Karakeep tropic.host VPS'inde çalıştırılabilir: kalıcı IP adresi alan adı yapılandırmasını kolaylaştırır; NVMe depolama SQLite, arama dizini ve çok sayıda küçük dosya için yararlıdır. Arşiv büyüdükçe kaynaklar artırılabilir.
Yerel Ollama kaynaklarını ayrıca planlayın: küçük bir dil modeli bile ana Karakeep yığınının tamamından daha fazla bellek gerektirebilir.
Sonuç
Karakeep dağınık bağlantıları kişisel ve aranabilir bir kütüphaneye dönüştürür. Sayfaları, notları, görselleri ve PDF'leri kaydeder; OCR, listeler, uzantılar, mobil uygulamalar ve isteğe bağlı yapay zekâ etiketlemeyi destekler.
Başlamak için küçük bir VPS, Docker Compose, alan adı ve HTTPS yeterlidir. Kurulumdan sonra kaydı kapatın, disk kullanımını izleyin ve harici bir yedek tutun.
SSS
Karakeep ücretsiz mi?
Self-hosted sürüm açık kaynaklıdır ve zorunlu abonelik gerektirmez. VPS, alan adı, yedekleme depolaması ve gerektiğinde harici yapay zekâ API'si için ödeme yaparsınız.
Karakeep'in çalışması için API anahtarı gerekli mi?
Hayır. Materyalleri kaydetme ve indeksleme, listeler, notlar, OCR ve tam metin arama yapay zekâ olmadan çalışır. Otomatik etiketler, özetler ve ilgili özellikler için bir model gerekir.
Karakeep ne kadar RAM ister?
Ollama kullanmayan tek bir kullanıcı için pratik başlangıç noktası 2 GB RAM'dir. Büyük içe aktarmalar, birkaç kullanıcı ve yoğun işleme için 4 GB daha uygundur.
Tarayıcıdan veya Pocket'tan yer imi içe aktarabilir miyim?
Evet. Karakeep standart tarayıcı yer imi HTML dosyasını, Pocket'ı, Omnivore'u ve başka bazı biçimleri destekler. İçe aktarmadan sonra Karakeep sayfaları işler ve aramaya ekler.
Orijinal web sitesi kaybolursa makale erişilebilir kalır mı?
Karakeep çıkarılan metni ve ekran görüntüsünü saklar; tam arşivleme etkinse yerel bir kopya veya PDF de tutar. Kimlik doğrulaması arkasındaki sayfalar ve karmaşık web uygulamaları yalnızca kısmen kaydedilebilir.
