VPS पर Karakeep: सर्च और AI के साथ अपना बुकमार्क आर्काइव

2 मिनट पढ़ा
Tropic
VPS पर Karakeep: सर्च और AI के साथ अपना बुकमार्क आर्काइव

Language: hi

Karakeep: VPS पर निजी बुकमार्क आर्काइव कैसे स्थापित करें

लिंक सेव करना आसान है। छह महीने बाद उसे ढूँढ़ना कठिन होता है—खासकर तब, जब पेज बदल गया हो, गायब हो गया हो या सैकड़ों बुकमार्क के बीच खो गया हो।

Karakeep केवल URL ही नहीं, बल्कि पेज की सामग्री, प्रीव्यू, नोट्स, इमेज और PDF भी सेव करता है। आप आर्काइव में टेक्स्ट से सर्च कर सकते हैं, आइटम को लिस्ट में व्यवस्थित कर सकते हैं और AI से अपने-आप टैग लगवा सकते हैं। यह आपके अपने VPS पर चलता है और भाषा मॉडल कनेक्ट करना वैकल्पिक है।

इस लेख में हम Karakeep की क्षमताओं, सर्वर की आवश्यकताओं और Ubuntu 24.04 पर Docker Compose, HTTPS और बैकअप के साथ इंस्टॉलेशन को देखेंगे।

सात चरणों में Karakeep

  1. Linux VPS बनाएं और keep.example.com जैसे सबडोमेन को उस पर पॉइंट करें।
  2. Docker Engine और Docker Compose स्थापित करें।
  3. आधिकारिक docker-compose.yml डाउनलोड करें।
  4. सीक्रेट जनरेट करके Karakeep, Chrome और Meilisearch शुरू करें।
  5. अंदरूनी पोर्ट 3000 बंद रखें और Caddy के माध्यम से HTTPS चालू करें।
  6. पहला खाता बनाएं, फिर खुला रजिस्ट्रेशन बंद करें।
  7. ब्राउज़र एक्सटेंशन या मोबाइल ऐप स्थापित करके अपने बुकमार्क इंपोर्ट करें।

सेवा शुरू करने के लिए AI key आवश्यक नहीं है। इसके बिना भी पेज सेव करना, लिस्ट, नोट्स, OCR और फुल-टेक्स्ट सर्च काम करते रहेंगे। केवल अपने-आप टैग और सारांश जनरेट नहीं होंगे।

Karakeep क्या है

Karakeep एक ओपन-सोर्स, self-hosted एप्लिकेशन है, जो लिंक, टेक्स्ट नोट्स, इमेज और PDF को एक ही लाइब्रेरी में सेव करता है। इस प्रोजेक्ट का पुराना नाम Hoarder था।

नाम अरबी शब्द karakeeb से आया है, जिसका इस्तेमाल बिखरी हुई ऐसी चीज़ों के लिए होता है जो अव्यवस्थित दिखती हैं, लेकिन उनमें छिपी हुई उपयोगिता हो सकती है। यह सामान्य बुकमार्क कलेक्शन का सही वर्णन है: उपयोगी सामग्री बहुत होती है, पर सही आइटम ढूँढ़ना मुश्किल होता है।

लिंक जोड़ने के बाद Karakeep उसका शीर्षक और विवरण प्राप्त करता है, पढ़ने योग्य टेक्स्ट निकालता है, प्रीव्यू बनाता है और ज़रूरत पड़ने पर पेज की स्थानीय कॉपी सेव कर सकता है।

सुविधाब्राउज़र बुकमार्कKarakeep
क्या सेव होता हैURL और शीर्षकटेक्स्ट, प्रीव्यू, नोट्स और अटैचमेंट
सर्चशीर्षक और पते सेसामग्री, टैग और नोट्स से
पेज गायब होने परटूटा हुआ URL बचता हैटेक्स्ट, स्क्रीनशॉट या पूरा आर्काइव बचता है
संगठनफ़ोल्डरटैग, मैनुअल लिस्ट और स्मार्ट लिस्ट
एक्सेसब्राउज़र मेंवेब, एक्सटेंशन, iOS और Android
सर्वरब्राउज़र प्रोफ़ाइल या उसकी क्लाउड सेवाआपका VPS या होम सर्वर

Karakeep की मुख्य सुविधाएं

लिंक, नोट्स, इमेज और PDF

हर आइटम लिंक, टेक्स्ट नोट या अपलोड की गई फ़ाइल हो सकता है। OCR इमेज और PDF से टेक्स्ट निकालता है, इसलिए वे भी सर्च में मिलते हैं। आप किसी आइटम में नोट, उद्धरण या अतिरिक्त फ़ाइल अटैच कर सकते हैं।

सामग्री में सर्च

Meilisearch सेव किए गए टेक्स्ट, नोट्स और मेटाडेटा को इंडेक्स करता है। आपको सटीक शीर्षक याद रखने की ज़रूरत नहीं: कोई वाक्यांश या विषय पर्याप्त है। Embeddings कॉन्फ़िगर होने पर अर्थ के आधार पर semantic search भी उपलब्ध होती है।

स्मार्ट और सहयोगी लिस्ट

एक ही आइटम बिना डुप्लिकेट बनाए एक साथ कई लिस्ट में हो सकता है। लिस्ट निजी रखी जा सकती है, लिंक से शेयर की जा सकती है या अन्य उपयोगकर्ताओं के साथ मिलकर संपादित की जा सकती है।

स्मार्ट लिस्ट एक सेव की गई सर्च क्वेरी है, जो अपने-आप अपडेट होती है। उदाहरण के लिए, यह पिछले सप्ताह जोड़े गए ai टैग वाले सभी आइटम दिखा सकती है।

पेज आर्काइव करना

डिफ़ॉल्ट रूप से Karakeep निकाला गया टेक्स्ट और पेज के दिखाई देने वाले हिस्से का स्क्रीनशॉट सेव करता है। आप इसके अलावा पूरे पेज का स्नैपशॉट, PDF या self-contained HTML आर्काइव चालू कर सकते हैं। इससे डेड लिंक से लाइब्रेरी सुरक्षित रहती है, लेकिन डिस्क का उपयोग बढ़ता है।

ऑथेंटिकेशन के पीछे मौजूद पेज, उन्नत anti-bot सुरक्षा और interactive applications पूरी तरह सेव नहीं हो सकते। महत्वपूर्ण सामग्री को अलग से PDF या फ़ाइल के रूप में अपलोड करना बेहतर है।

वैकल्पिक AI टैगिंग

Karakeep बाहरी OpenAI-compatible API या स्थानीय Ollama मॉडल के माध्यम से टैग और छोटे सारांश बना सकता है। AI के बिना भी एप्लिकेशन पूरी तरह काम करने वाला बुकमार्क मैनेजर रहता है।

स्थानीय मॉडल सामग्री को बाहरी प्रोवाइडर के पास नहीं भेजता, लेकिन उसे काफ़ी अधिक RAM चाहिए। इसी कारण Ollama को अक्सर मुख्य Karakeep इंस्टेंस से अलग होस्ट किया जाता है।

Karakeep के लिए सर्वर की आवश्यकताएं

आधिकारिक डॉक्यूमेंटेशन CPU और RAM के लिए कोई निश्चित न्यूनतम नहीं बताता। एक पूर्ण इंस्टॉलेशन में तीन कंटेनर होते हैं:

  • Karakeep डेटाबेस सेव करता है और इंटरफ़ेस उपलब्ध कराता है;
  • headless Chrome पेज खोलता है, JavaScript चलाता है और स्क्रीनशॉट लेता है;
  • Meilisearch लाइब्रेरी को इंडेक्स करता है।

स्थानीय LLM के बिना एक उपयोगकर्ता के लिए व्यावहारिक कॉन्फ़िगरेशन:

  • 2 vCPU;
  • 2 GB RAM;
  • 20–30 GB SSD या NVMe;
  • Ubuntu 24.04 LTS;
  • सार्वजनिक IP पता और एक डोमेन।

कई उपयोगकर्ताओं, बड़े इंपोर्ट, कई RSS फ़ीड और PDF के लिए 4 GB RAM अधिक आरामदायक है। डिस्क की आवश्यकता आर्काइविंग मोड पर निर्भर करती है: टेक्स्ट बहुत कम जगह लेता है, जबकि पूरे स्क्रीनशॉट, PDF और वीडियो लाइब्रेरी को तेज़ी से बड़ा कर सकते हैं।

VPS पर Karakeep कैसे स्थापित करें

इस उदाहरण में Ubuntu 24.04 और keep.example.com सबडोमेन का उपयोग किया गया है।

1. DNS और फ़ायरवॉल कॉन्फ़िगर करें

सर्वर के IP पते की ओर संकेत करता हुआ A DNS रिकॉर्ड बनाएं, फिर SSH से कनेक्ट करें:

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enable

जब तक नया कनेक्शन काम करता हुआ सत्यापित न कर लें, वर्तमान SSH सत्र बंद न करें।

2. Docker स्थापित करें

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 version

3. Karakeep कॉन्फ़िगरेशन डाउनलोड करें

mkdir -p /opt/karakeep
cd /opt/karakeep

curl -fsSLo docker-compose.yml \
  https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml

दो अलग-अलग सीक्रेट जनरेट करें:

openssl rand -base64 36
openssl rand -base64 36 | tr -dc 'A-Za-z0-9'

/opt/karakeep/.env बनाएं:

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 प्रकाशित न करें: पहला सीक्रेट authentication token पर हस्ताक्षर करता है, जबकि दूसरा Meilisearch की सुरक्षा करता है।

4. अंदरूनी पोर्ट बंद करें

docker-compose.yml में यह बदलें:

ports:
  - 3000:3000

इसे इससे बदलें:

ports:
  - 127.0.0.1:3000:3000

इससे पोर्ट 3000 इंटरनेट से सीधे उपलब्ध नहीं रहेगा।

5. कंटेनर शुरू करें

cd /opt/karakeep
docker compose up -d
docker compose ps

web, chrome और meilisearch सेवाएं चलती हुई दिखनी चाहिए। लॉग देखने के लिए:

docker compose logs --tail=200

6. HTTPS चालू करें

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 caddy

यदि DNS कॉन्फ़िगर है और पोर्ट 80 तथा 443 खुले हैं, तो Caddy अपने-आप TLS प्रमाणपत्र प्राप्त कर लेगा। फिर https://keep.example.com खोलें।

7. एडमिनिस्ट्रेटर बनाएं और रजिस्ट्रेशन बंद करें

पहला रजिस्टर्ड उपयोगकर्ता अपने-आप एडमिनिस्ट्रेटर बन जाता है। खाता बनाने के बाद .env में यह सेट करें:

DISABLE_SIGNUPS=true

बदलाव लागू करें:

cd /opt/karakeep
docker compose up -d

एडमिनिस्ट्रेटर फिर भी अन्य खाते मैनुअल रूप से बना सकेगा।

डेटा, एक्सटेंशन और मोबाइल ऐप इंपोर्ट करना

Karakeep Chrome, Firefox और Safari के लिए एक्सटेंशन तथा iOS और Android के लिए ऐप उपलब्ध कराता है। फ़ोन पर सिस्टम के Share मेनू के माध्यम से कोई लिंक आर्काइव में भेजा जा सकता है।

मौजूदा बुकमार्क को सामान्य ब्राउज़र HTML फ़ाइल, Pocket, Omnivore और अन्य समर्थित सेवाओं से इंपोर्ट किया जा सकता है। बड़े आर्काइव को बैच में जोड़ना बेहतर है: सर्वर को पेज खोलने, टेक्स्ट निकालने, स्क्रीनशॉट बनाने और सर्च इंडेक्स तैयार करने होते हैं।

AI और पूरे पेज की आर्काइविंग कैसे चालू करें

OpenAI के लिए .env में यह जोड़ें:

OPENAI_API_KEY=YOUR_API_KEY

किसी अन्य OpenAI-compatible सेवा को अतिरिक्त रूप से OPENAI_BASE_URL की आवश्यकता हो सकती है। स्थानीय मॉडल के लिए कंटेनर से पहुँच योग्य पते के साथ OLLAMA_BASE_URL का उपयोग करें।

पेज की पूरी स्थानीय कॉपी अलग से चालू करें:

CRAWLER_FULL_PAGE_ARCHIVE=true

CRAWLER_FULL_PAGE_SCREENSHOT=true और CRAWLER_STORE_PDF=true विकल्प भी उपलब्ध हैं। जब तक ज़रूरत न हो, सभी मोड चालू न करें: वे डिस्क का उपयोग काफ़ी बढ़ा देते हैं। .env बदलने के बाद docker compose up -d चलाएं।

सुरक्षा, अपडेट और बैकअप

Karakeep crawler आपके सर्वर के नेटवर्क से उपयोगकर्ता द्वारा सेव किए गए पतों को खोलता है। इसलिए रजिस्ट्रेशन खुला न छोड़ें और केवल विश्वसनीय लोगों को एक्सेस दें। बुनियादी SSRF सुरक्षा मौजूद है, लेकिन सार्वजनिक सेवा के लिए आधिकारिक प्रोजेक्ट ब्राउज़र को अलग करने या उसे प्रतिबंधित proxy के माध्यम से रूट करने की सलाह देता है।

HTTPS और मज़बूत पासवर्ड का भी उपयोग करें, पोर्ट 3000 को एक्सपोज़ न करें और कंटेनर नियमित रूप से अपडेट करें:

cd /opt/karakeep
docker compose up --pull always -d

मुख्य डेटाबेस और सेव की गई सामग्री data नाम के Docker volume में रहती है। इसे कॉपी करने से पहले कंटेनर रोकें:

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 start

karakeep_data नाम मानता है कि प्रोजेक्ट डायरेक्टरी /opt/karakeep है; इसे docker volume ls से सत्यापित कर सकते हैं। Meilisearch इंडेक्स फिर से बनाया जा सकता है, लेकिन बड़ी लाइब्रेरी के लिए karakeep_meilisearch volume का बैकअप लेना भी उपयोगी है।

/var/backups/karakeep से आर्काइव को किसी अन्य सर्वर, NAS या object storage पर भेजें। उसी VPS पर रखी कॉपी डिस्क की खराबी या वर्चुअल मशीन के डिलीट होने से सुरक्षा नहीं देती।

Karakeep के लिए कौन सा VPS चुनें

Ollama के बिना निजी लाइब्रेरी के लिए 2 vCPU, 2 GB RAM और 20–30 GB NVMe वाला Linux VPS उपयुक्त है। बड़े इंपोर्ट, कई उपयोगकर्ताओं और पूरी आर्काइविंग के लिए 4 GB RAM और बड़ी डिस्क चुनें।

Karakeep को tropic.host के VPS पर चलाया जा सकता है: स्थायी IP पता डोमेन कॉन्फ़िगरेशन को सरल बनाता है, जबकि NVMe स्टोरेज SQLite, सर्च इंडेक्स और बहुत सारी छोटी फ़ाइलों के लिए उपयोगी है। आर्काइव बढ़ने पर संसाधन बढ़ाए जा सकते हैं।

स्थानीय Ollama के संसाधनों की अलग से योजना बनाएं: छोटा भाषा मॉडल भी पूरे मुख्य Karakeep स्टैक से अधिक मेमोरी मांग सकता है।

निष्कर्ष

Karakeep बिखरे हुए लिंक को निजी, searchable लाइब्रेरी में बदल देता है। यह पेज, नोट्स, इमेज और PDF सेव करता है और OCR, लिस्ट, एक्सटेंशन, मोबाइल ऐप तथा वैकल्पिक AI टैगिंग को सपोर्ट करता है।

शुरू करने के लिए छोटा VPS, Docker Compose, एक डोमेन और HTTPS पर्याप्त हैं। इंस्टॉलेशन के बाद रजिस्ट्रेशन बंद करें, डिस्क उपयोग पर नज़र रखें और बाहरी बैकअप बनाए रखें।

FAQ

क्या Karakeep मुफ़्त है?

Self-hosted संस्करण ओपन सोर्स है और इसके लिए अनिवार्य सब्सक्रिप्शन नहीं चाहिए। VPS, डोमेन, बैकअप स्टोरेज और ज़रूरत पड़ने पर बाहरी AI API के लिए भुगतान करना होगा।

क्या Karakeep चलाने के लिए API key आवश्यक है?

नहीं। सामग्री सेव करना और इंडेक्स करना, लिस्ट, नोट्स, OCR और फुल-टेक्स्ट सर्च AI के बिना काम करते हैं। अपने-आप टैग, सारांश और संबंधित सुविधाओं के लिए मॉडल चाहिए।

Karakeep को कितनी RAM चाहिए?

Ollama के बिना एक उपयोगकर्ता के लिए 2 GB RAM से शुरुआत करना व्यावहारिक है। बड़े इंपोर्ट, कई उपयोगकर्ताओं और सक्रिय प्रोसेसिंग के लिए 4 GB अधिक सुविधाजनक है।

क्या मैं ब्राउज़र या Pocket से बुकमार्क इंपोर्ट कर सकता हूँ?

हाँ। Karakeep सामान्य ब्राउज़र बुकमार्क HTML फ़ाइल, Pocket, Omnivore और कई अन्य फ़ॉर्मैट सपोर्ट करता है। इंपोर्ट के बाद Karakeep पेज प्रोसेस करके उन्हें सर्च में जोड़ देता है।

मूल वेबसाइट गायब हो जाए तो क्या लेख उपलब्ध रहेगा?

Karakeep निकाला गया टेक्स्ट और स्क्रीनशॉट सेव करता है और पूरी आर्काइविंग चालू होने पर स्थानीय कॉपी या PDF भी रखता है। ऑथेंटिकेशन के पीछे के पेज और जटिल वेब एप्लिकेशन केवल आंशिक रूप से सेव हो सकते हैं।