VPS-এ Karakeep: সার্চ ও AI-সহ নিজের বুকমার্ক আর্কাইভ

4 মিনিট পড়া
Tropic
VPS-এ Karakeep: সার্চ ও AI-সহ নিজের বুকমার্ক আর্কাইভ

Karakeep: VPS-এ ব্যক্তিগত বুকমার্ক আর্কাইভ ইনস্টল করার উপায়

কোনো লিংক সংরক্ষণ করা সহজ। ছয় মাস পরে সেটি খুঁজে পাওয়া কঠিন—বিশেষ করে পেজটি বদলে গেলে, অদৃশ্য হয়ে গেলে বা শত শত বুকমার্কের মধ্যে হারিয়ে গেলে।

Karakeep শুধু URL নয়, পেজের কনটেন্ট, preview, note, image এবং PDF-ও সংরক্ষণ করে। আপনি text দিয়ে archive-এ search করতে পারেন, item-গুলো list-এ সাজাতে পারেন এবং AI দিয়ে স্বয়ংক্রিয়ভাবে tag যোগ করতে পারেন। এটি নিজের VPS-এ চলে, আর language model সংযোগ করা ঐচ্ছিক।

নিচে Karakeep-এর ক্ষমতা, সার্ভারের প্রয়োজনীয়তা এবং HTTPS ও backup-সহ Docker Compose দিয়ে Ubuntu 24.04-এ ইনস্টলেশন নিয়ে আলোচনা করা হবে।

সাত ধাপে Karakeep

  1. একটি Linux VPS তৈরি করুন এবং keep.example.com-এর মতো একটি subdomain সেখানে নির্দেশ করুন।
  2. Docker Engine ও Docker Compose ইনস্টল করুন।
  3. অফিসিয়াল docker-compose.yml ডাউনলোড করুন।
  4. secret তৈরি করে Karakeep, Chrome এবং Meilisearch চালু করুন।
  5. অভ্যন্তরীণ port 3000 বন্ধ করুন এবং Caddy দিয়ে HTTPS চালু করুন।
  6. প্রথম account তৈরি করুন, তারপর open registration বন্ধ করুন।
  7. browser extension বা mobile app ইনস্টল করে bookmark import করুন।

সার্ভিস শুরু করতে AI key দরকার নেই। এটি ছাড়াও page saving, list, note, OCR এবং full-text search কাজ করবে। স্বয়ংক্রিয় tag ও summary তৈরি হবে না।

Karakeep কী

Karakeep হলো link, text note, image ও PDF এক library-তে রাখার open-source, self-hosted application। প্রকল্পটির আগের নাম ছিল Hoarder।

নামটি আরবি শব্দ karakeeb থেকে এসেছে, যা এমন ছড়ানো জিনিস বোঝাতে ব্যবহৃত হয় যেগুলো দেখতে এলোমেলো হলেও ভেতরে লুকানো মূল্য থাকতে পারে। একটি সাধারণ bookmark collection-এর জন্য এটি যথার্থ: উপকারী উপকরণ অনেক থাকে, কিন্তু সঠিক item খুঁজে পাওয়া কঠিন।

কোনো link যোগ করার পর Karakeep তার title ও description সংগ্রহ করে, পড়ার উপযোগী text বের করে, preview তৈরি করে এবং প্রয়োজন হলে page-এর local copy সংরক্ষণ করতে পারে।

FeatureBrowser bookmarksKarakeep
কী সংরক্ষিত হয়URL ও titleText, preview, note ও attachment
SearchTitle ও address দিয়েContent, tag ও note দিয়ে
Page অদৃশ্য হলেএকটি broken URL থেকে যায়Text, screenshot বা সম্পূর্ণ archive থেকে যায়
OrganizationFolderTag, manual list ও smart list
AccessBrowser-এWeb, extension, iOS ও Android
ServerBrowser profile বা তার cloud serviceআপনার VPS বা home server

Karakeep-এর প্রধান বৈশিষ্ট্য

প্রতিটি item link, text note বা uploaded file হতে পারে। OCR image ও PDF থেকে text বের করে, তাই এগুলোও search করা যায়। কোনো item-এর সঙ্গে note, quotation বা অতিরিক্ত file যুক্ত করতে পারেন।

Meilisearch সংরক্ষিত text, note ও metadata index করে। Exact title মনে রাখার দরকার নেই: একটি phrase বা topic-ই যথেষ্ট। Embedding কনফিগার করা হলে অর্থের ভিত্তিতে semantic search-ও পাওয়া যায়।

Smart ও collaborative list

একটি item duplicate না করেই একসঙ্গে একাধিক list-এর অংশ হতে পারে। কোনো list private রাখা যায়, link দিয়ে share করা যায় বা অন্য ব্যবহারকারীদের সঙ্গে মিলে edit করা যায়।

Smart list হলো সংরক্ষিত search query, যা স্বয়ংক্রিয়ভাবে update হয়। যেমন, গত সপ্তাহে যোগ করা এবং ai tag থাকা সব item এটি দেখাতে পারে।

Page archive করা

ডিফল্টভাবে Karakeep বের করা text ও page-এর দৃশ্যমান অংশের screenshot সংরক্ষণ করে। আলাদাভাবে full-page snapshot, PDF বা self-contained HTML archive চালু করা যায়। এতে dead link থেকে library সুরক্ষিত থাকে, তবে disk usage বাড়ে।

Authentication-এর আড়ালে থাকা page, উন্নত anti-bot protection এবং interactive application সম্পূর্ণভাবে সংরক্ষিত নাও হতে পারে। গুরুত্বপূর্ণ উপকরণ আলাদা PDF বা file হিসেবে upload করা ভালো।

ঐচ্ছিক AI tagging

Karakeep external OpenAI-compatible API বা local Ollama model-এর মাধ্যমে tag ও ছোট summary তৈরি করতে পারে। AI ছাড়াও application-টি সম্পূর্ণ কার্যকর bookmark manager হিসেবে থাকে।

Local model কোনো উপকরণ external provider-এ পাঠায় না, কিন্তু এর জন্য অনেক বেশি RAM লাগে। এই কারণে Ollama-কে প্রায়ই মূল Karakeep instance থেকে আলাদা করে host করা হয়।

Karakeep-এর সার্ভার প্রয়োজনীয়তা

অফিসিয়াল documentation CPU ও RAM-এর নির্দিষ্ট minimum দেয় না। একটি সম্পূর্ণ installation-এ তিনটি container থাকে:

  • Karakeep database সংরক্ষণ করে এবং interface পরিবেশন করে;
  • headless Chrome page খোলে, JavaScript চালায় এবং screenshot নেয়;
  • Meilisearch library index করে।

Local LLM ছাড়া একজন ব্যবহারকারীর জন্য ব্যবহারিক configuration:

  • 2 vCPU;
  • 2 GB RAM;
  • 20–30 GB SSD বা NVMe;
  • Ubuntu 24.04 LTS;
  • public IP address ও domain।

একাধিক ব্যবহারকারী, বড় import, অনেক RSS feed এবং PDF থাকলে 4 GB RAM বেশি স্বাচ্ছন্দ্য দেয়। Archive করার mode অনুযায়ী disk-এর প্রয়োজন বদলে যায়: text অল্প জায়গা নেয়, কিন্তু সম্পূর্ণ screenshot, PDF ও video library দ্রুত বড় করতে পারে।

VPS-এ Karakeep ইনস্টল করার উপায়

এই উদাহরণে Ubuntu 24.04 ও keep.example.com subdomain ব্যবহার করা হয়েছে।

1. DNS ও firewall কনফিগার করুন

Server IP address-এ নির্দেশ করা একটি A DNS record তৈরি করুন, তারপর SSH দিয়ে সংযোগ করুন:

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

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

নতুন connection কাজ করছে নিশ্চিত না হওয়া পর্যন্ত বর্তমান SSH session বন্ধ করবেন না।

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 configuration ডাউনলোড করুন

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

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

দুটি আলাদা secret তৈরি করুন:

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 publish করবেন না: প্রথম secret authentication token sign করে, আর দ্বিতীয়টি Meilisearch সুরক্ষিত রাখে।

4. Internal port বন্ধ করুন

docker-compose.yml-এ প্রতিস্থাপন করুন:

ports:
  - 3000:3000

দিয়ে:

ports:
  - 127.0.0.1:3000:3000

এতে port 3000 সরাসরি internet থেকে accessible থাকবে না।

5. Container চালু করুন

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

web, chromemeilisearch service চালু থাকা উচিত। Log দেখতে ব্যবহার করুন:

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 কনফিগার করা এবং port 80 ও 443 খোলা থাকলে Caddy স্বয়ংক্রিয়ভাবে TLS certificate নেবে। এরপর https://keep.example.com খুলুন।

7. Administrator তৈরি করে registration বন্ধ করুন

প্রথম registered user স্বয়ংক্রিয়ভাবে administrator হয়। Account তৈরির পরে .env-এ সেট করুন:

DISABLE_SIGNUPS=true

পরিবর্তন প্রয়োগ করুন:

cd /opt/karakeep
docker compose up -d

Administrator এখনো হাতে করে অন্য account তৈরি করতে পারবেন।

Data, extension ও mobile app import

Karakeep Chrome, Firefox ও Safari-এর জন্য extension এবং iOS ও Android-এর জন্য app দেয়। ফোনে system Share menu দিয়ে কোনো link archive-এ পাঠানো যায়।

Standard browser HTML file, Pocket, Omnivore এবং অন্যান্য supported service থেকে পুরোনো bookmark import করা যায়। বড় archive batch করে যোগ করা ভালো: server-কে page খুলতে, text বের করতে, screenshot তৈরি করতে এবং search index বানাতে হয়।

AI ও full-page archive চালু করার উপায়

OpenAI-এর জন্য .env-এ যোগ করুন:

OPENAI_API_KEY=YOUR_API_KEY

অন্য OpenAI-compatible service-এর জন্য অতিরিক্তভাবে OPENAI_BASE_URL প্রয়োজন হতে পারে। Local model-এর ক্ষেত্রে container থেকে accessible address-সহ OLLAMA_BASE_URL ব্যবহার করুন।

একটি page-এর সম্পূর্ণ local copy আলাদাভাবে চালু করুন:

CRAWLER_FULL_PAGE_ARCHIVE=true

CRAWLER_FULL_PAGE_SCREENSHOT=trueCRAWLER_STORE_PDF=true option-ও রয়েছে। প্রয়োজন না থাকলে সব mode চালু করবেন না: এতে disk usage লক্ষণীয়ভাবে বাড়ে। .env পরিবর্তনের পরে docker compose up -d চালান।

Security, update ও backup

Karakeep crawler আপনার server-এর network থেকে ব্যবহারকারীর সংরক্ষিত address খোলে। তাই registration খোলা রাখবেন না এবং শুধু trusted মানুষকে access দিন। Basic SSRF protection আছে, তবে public service-এর ক্ষেত্রে official project browser-কে isolate করা বা restricted proxy দিয়ে route করার পরামর্শ দেয়।

HTTPS ব্যবহার করুন, শক্তিশালী password দিন, port 3000 expose করবেন না এবং নিয়মিত container update করুন:

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

মূল database ও সংরক্ষিত material data নামের Docker volume-এ থাকে। কপি করার আগে container বন্ধ করুন:

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 নামটি ধরে নেয় যে project directory /opt/karakeep; docker volume ls দিয়ে যাচাই করতে পারেন। Meilisearch index পুনর্নির্মাণ করা যায়, কিন্তু বড় library-র ক্ষেত্রে karakeep_meilisearch volume-ও backup করা উপকারী।

/var/backups/karakeep থেকে archive অন্য server, NAS বা object storage-এ পাঠান। একই VPS-এ রাখা copy disk failure বা virtual machine মুছে যাওয়ার বিরুদ্ধে সুরক্ষা দেয় না।

Karakeep-এর জন্য কোন VPS বেছে নেবেন

Ollama ছাড়া ব্যক্তিগত library-র জন্য 2 vCPU, 2 GB RAM এবং 20–30 GB NVMe-সহ Linux VPS উপযুক্ত। বড় import, একাধিক user ও full archive থাকলে 4 GB RAM এবং বড় disk নিন।

Karakeep tropic.host-এর VPS-এ চালানো যায়: স্থায়ী IP address domain configuration সহজ করে, আর NVMe storage SQLite, search index ও অনেক ছোট file-এর জন্য উপকারী। Archive বাড়ার সঙ্গে resources বাড়ানো যাবে।

Local Ollama-এর resources আলাদাভাবে পরিকল্পনা করুন: ছোট language model-ও পুরো মূল Karakeep stack-এর চেয়ে বেশি memory চাইতে পারে।

উপসংহার

Karakeep ছড়িয়ে থাকা link-কে ব্যক্তিগত searchable library-তে পরিণত করে। এটি page, note, image ও PDF সংরক্ষণ করে এবং OCR, list, extension, mobile app ও ঐচ্ছিক AI tagging সমর্থন করে।

শুরু করার জন্য একটি ছোট VPS, Docker Compose, domain ও HTTPS যথেষ্ট। ইনস্টলেশনের পরে registration বন্ধ করুন, disk usage পর্যবেক্ষণ করুন এবং external backup রাখুন।

FAQ

Karakeep কি বিনামূল্যে?

Self-hosted version open source এবং বাধ্যতামূলক subscription প্রয়োজন হয় না। VPS, domain, backup storage এবং প্রয়োজন হলে external AI API-এর জন্য খরচ হবে।

Karakeep কাজ করার জন্য কি API key দরকার?

না। Material সংরক্ষণ ও index করা, list, note, OCR এবং full-text search AI ছাড়াই কাজ করে। Automatic tag, summary ও সম্পর্কিত feature-এর জন্য model দরকার।

Karakeep-এর কত RAM দরকার?

Ollama ছাড়া একজন ব্যবহারকারীর জন্য 2 GB RAM ব্যবহারিক starting point। বড় import, একাধিক user ও সক্রিয় processing-এর জন্য 4 GB বেশি সুবিধাজনক।

Browser বা Pocket থেকে কি bookmark import করা যায়?

হ্যাঁ। Karakeep standard browser bookmark HTML file, Pocket, Omnivore এবং আরও কয়েকটি format সমর্থন করে। Import-এর পরে Karakeep page process করে search-এ যোগ করে।

মূল website অদৃশ্য হয়ে গেলে article কি available থাকবে?

Karakeep extracted text ও screenshot সংরক্ষণ করে এবং full archive চালু থাকলে local copy বা PDF-ও রাখে। Authentication-এর আড়ালে থাকা page এবং জটিল web application আংশিকভাবে সংরক্ষিত হতে পারে।