Karakeep บน VPS: คลังบุ๊กมาร์กส่วนตัวพร้อมการค้นหาและ AI

2 อ่านขั้นต่ำแล้ว
Tropic
Karakeep บน VPS: คลังบุ๊กมาร์กส่วนตัวพร้อมการค้นหาและ AI

Language: th

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. สร้าง secret แล้วเริ่ม Karakeep, Chrome และ Meilisearch
  5. ปิดพอร์ตภายใน 3000 และเปิดใช้ HTTPS ผ่าน Caddy
  6. สร้างบัญชีแรก แล้วปิดการสมัครสมาชิกแบบเปิด
  7. ติดตั้งส่วนขยายเบราว์เซอร์หรือแอปมือถือ แล้วนำเข้าบุ๊กมาร์ก

ไม่จำเป็นต้องใช้คีย์ AI เพื่อเริ่มบริการ การบันทึกหน้า ลิสต์ โน้ต OCR และการค้นหาเต็มข้อความยังทำงานได้โดยไม่มีคีย์ แต่ระบบจะไม่สร้างแท็กและสรุปโดยอัตโนมัติ

Karakeep คืออะไร

Karakeep เป็นแอปโอเพนซอร์สแบบ self-hosted สำหรับเก็บลิงก์ โน้ตข้อความ รูปภาพ และ PDF ไว้ในไลบรารีเดียว เดิมโครงการนี้ใช้ชื่อว่า Hoarder

ชื่อมาจากคำภาษาอาหรับ karakeeb ซึ่งใช้เรียกสิ่งของกระจัดกระจายที่ดูเหมือนของรก แต่บางครั้งอาจมีคุณค่าซ่อนอยู่ ชื่อนี้อธิบายคอลเลกชันบุ๊กมาร์กทั่วไปได้ดี: มีเนื้อหาที่เป็นประโยชน์มากมาย แต่การหารายการที่ต้องการทำได้ยาก

หลังจากเพิ่มลิงก์ Karakeep จะดึงชื่อและคำอธิบาย แยกข้อความที่อ่านได้ สร้างตัวอย่างหน้าเว็บ และสามารถบันทึกสำเนาหน้าเว็บไว้ในเครื่องเมื่อจำเป็น

คุณสมบัติบุ๊กมาร์กของเบราว์เซอร์Karakeep
สิ่งที่จัดเก็บURL และชื่อข้อความ ตัวอย่าง โน้ต และไฟล์แนบ
การค้นหาค้นจากชื่อและที่อยู่ค้นจากเนื้อหา แท็ก และโน้ต
หากหน้าเว็บหายไปเหลือ URL ที่เปิดไม่ได้ยังมีข้อความ ภาพหน้าจอ หรือคลังข้อมูลฉบับเต็ม
การจัดระเบียบโฟลเดอร์แท็ก ลิสต์ที่สร้างเอง และลิสต์อัจฉริยะ
การเข้าถึงในเบราว์เซอร์เว็บ ส่วนขยาย iOS และ Android
เซิร์ฟเวอร์โปรไฟล์เบราว์เซอร์หรือบริการคลาวด์VPS หรือเซิร์ฟเวอร์ที่บ้านของคุณ

ความสามารถหลักของ Karakeep

ลิงก์ โน้ต รูปภาพ และ PDF

แต่ละรายการอาจเป็นลิงก์ โน้ตข้อความ หรือไฟล์ที่อัปโหลดได้ OCR จะแยกข้อความจากรูปภาพและ PDF ทำให้ค้นหาเนื้อหาเหล่านั้นได้เช่นกัน คุณยังแนบโน้ต ข้อความอ้างอิง หรือไฟล์เพิ่มเติมกับรายการได้

การค้นหาเนื้อหา

Meilisearch จะทำดัชนีข้อความ โน้ต และเมทาดาทาที่บันทึกไว้ คุณไม่จำเป็นต้องจำชื่อที่ตรงทั้งหมด เพียงจำวลีหรือหัวข้อก็เพียงพอ เมื่อกำหนดค่า embeddings แล้ว ยังสามารถค้นหาเชิงความหมายจากแนวคิดได้ด้วย

ลิสต์อัจฉริยะและลิสต์ที่ทำงานร่วมกัน

รายการเดียวสามารถอยู่ในหลายลิสต์พร้อมกันโดยไม่ต้องทำซ้ำ ลิสต์อาจเป็นส่วนตัว แชร์ผ่านลิงก์ หรือให้ผู้ใช้อื่นช่วยแก้ไขร่วมกันได้

ลิสต์อัจฉริยะคือคำค้นหาที่บันทึกไว้และอัปเดตโดยอัตโนมัติ เช่น แสดงรายการทั้งหมดที่ติดแท็ก ai และเพิ่มเข้ามาในสัปดาห์ที่ผ่านมา

การเก็บถาวรหน้าเว็บ

โดยค่าเริ่มต้น Karakeep จะเก็บข้อความที่แยกได้และภาพหน้าจอของส่วนที่มองเห็นในหน้าเว็บ คุณสามารถเปิดใช้การบันทึกทั้งหน้า, PDF หรือคลัง HTML แบบในตัวเองเพิ่มเติมได้ ซึ่งช่วยป้องกันลิงก์เสีย แต่จะใช้พื้นที่ดิสก์มากขึ้น

หน้าเว็บที่ต้องยืนยันตัวตน ระบบป้องกันบอตขั้นสูง และแอปแบบโต้ตอบอาจบันทึกได้ไม่ครบ สำหรับเนื้อหาสำคัญควรอัปโหลดเป็น PDF หรือไฟล์แยกต่างหาก

การติดแท็กด้วย AI แบบเสริม

Karakeep สามารถสร้างแท็กและสรุปสั้น ๆ ผ่าน API ที่เข้ากันได้กับ OpenAI จากภายนอก หรือโมเดล Ollama ในเครื่อง หากไม่ใช้ AI แอปก็ยังเป็นตัวจัดการบุ๊กมาร์กที่ใช้งานได้ครบถ้วน

โมเดลในเครื่องจะไม่ส่งข้อมูลไปยังผู้ให้บริการภายนอก แต่ต้องใช้ RAM มากกว่ามาก ด้วยเหตุนี้จึงมักแยก Ollama ไว้คนละเครื่องกับอินสแตนซ์ Karakeep หลัก

ข้อกำหนดเซิร์ฟเวอร์ของ Karakeep

เอกสารอย่างเป็นทางการไม่ได้ระบุขั้นต่ำตายตัวสำหรับ CPU และ RAM การติดตั้งแบบสมบูรณ์ประกอบด้วยคอนเทนเนอร์สามตัว:

  • Karakeep เก็บฐานข้อมูลและให้บริการอินเทอร์เฟซ;
  • headless Chrome เปิดหน้าเว็บ รัน JavaScript และถ่ายภาพหน้าจอ;
  • Meilisearch ทำดัชนีไลบรารี

การตั้งค่าที่เหมาะสมสำหรับผู้ใช้หนึ่งคนโดยไม่ใช้ LLM ในเครื่องคือ:

  • 2 vCPU;
  • RAM 2 GB;
  • SSD หรือ NVMe 20–30 GB;
  • Ubuntu 24.04 LTS;
  • IP สาธารณะและโดเมน

สำหรับผู้ใช้หลายคน การนำเข้าข้อมูลจำนวนมาก ฟีด RSS หลายรายการ และ PDF ควรใช้ RAM 4 GB เพื่อความคล่องตัว พื้นที่ดิสก์ขึ้นอยู่กับโหมดการเก็บถาวร: ข้อความใช้พื้นที่น้อย แต่ภาพหน้าจอเต็มหน้า PDF และวิดีโออาจทำให้ไลบรารีใหญ่ขึ้นอย่างรวดเร็ว

วิธีติดตั้ง Karakeep บน VPS

ตัวอย่างนี้ใช้ Ubuntu 24.04 และซับโดเมน keep.example.com

1. ตั้งค่า DNS และไฟร์วอลล์

สร้างระเบียน DNS A ที่ชี้ไปยัง IP ของเซิร์ฟเวอร์ แล้วเชื่อมต่อผ่าน 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

สร้าง 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: secret แรกใช้เซ็นโทเค็นการยืนยันตัวตน ส่วน secret ที่สองใช้ปกป้อง 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 อาจต้องใช้ 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

ความปลอดภัย การอัปเดต และการสำรองข้อมูล

Crawler ของ Karakeep จะเปิดที่อยู่ที่ผู้ใช้บันทึกไว้จากเครือข่ายของเซิร์ฟเวอร์ ดังนั้นอย่าเปิดการลงทะเบียนทิ้งไว้ และให้สิทธิ์เฉพาะคนที่เชื่อถือได้เท่านั้น มีการป้องกัน SSRF พื้นฐานอยู่แล้ว แต่สำหรับบริการสาธารณะ โครงการอย่างเป็นทางการแนะนำให้แยกเบราว์เซอร์หรือส่งทราฟฟิกผ่านพร็อกซีที่จำกัดสิทธิ์

ใช้ HTTPS รหัสผ่านที่แข็งแรง อย่าเปิดพอร์ต 3000 และอัปเดตคอนเทนเนอร์เป็นประจำ:

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

ฐานข้อมูลหลักและเนื้อหาที่บันทึกไว้จะอยู่ใน Docker volume ชื่อ data ให้หยุดคอนเทนเนอร์ก่อนคัดลอกข้อมูล:

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 สามารถสร้างใหม่ได้ แต่สำหรับไลบรารีขนาดใหญ่ การสำรอง volume karakeep_meilisearch ก็มีประโยชน์เช่นกัน

ส่งไฟล์เก็บถาวรจาก /var/backups/karakeep ไปยังเซิร์ฟเวอร์อื่น NAS หรือ object storage การมีสำเนาอยู่บน VPS เดิมไม่ช่วยป้องกันดิสก์เสียหรือการลบเครื่องเสมือน

ควรเลือก VPS แบบใดสำหรับ Karakeep

สำหรับคลังส่วนตัวที่ไม่ใช้ Ollama Linux VPS ที่มี 2 vCPU, RAM 2 GB และ NVMe 20–30 GB ก็เพียงพอ หากต้องนำเข้าข้อมูลจำนวนมาก มีผู้ใช้หลายคน และเก็บถาวรเต็มรูปแบบ ให้เลือก RAM 4 GB และดิสก์ที่ใหญ่ขึ้น

Karakeep สามารถรันบน VPS จาก tropic.host ได้: IP ถาวรช่วยให้ตั้งค่าโดเมนง่ายขึ้น ส่วน NVMe เหมาะกับ SQLite, ดัชนีการค้นหา และไฟล์ขนาดเล็กจำนวนมาก คุณสามารถเพิ่มทรัพยากรได้เมื่อคลังเติบโต

วางแผนทรัพยากร Ollama ในเครื่องแยกต่างหาก เพราะแม้โมเดลภาษาขนาดเล็กก็อาจต้องใช้หน่วยความจำมากกว่าสแตก Karakeep หลักทั้งหมด

สรุป

Karakeep เปลี่ยนลิงก์กระจัดกระจายให้เป็นไลบรารีส่วนตัวที่ค้นหาได้ โดยบันทึกหน้าเว็บ โน้ต รูปภาพ และ PDF พร้อมรองรับ OCR, ลิสต์, ส่วนขยาย, แอปมือถือ และการติดแท็กด้วย AI แบบเลือกใช้ได้

VPS ขนาดเล็ก Docker Compose โดเมน และ HTTPS ก็เพียงพอสำหรับเริ่มต้น หลังติดตั้งให้ปิดการสมัครสมาชิก ตรวจสอบการใช้ดิสก์ และเก็บข้อมูลสำรองไว้นอกเซิร์ฟเวอร์

FAQ

Karakeep ฟรีหรือไม่?

เวอร์ชัน self-hosted เป็นโอเพนซอร์สและไม่บังคับสมัครสมาชิกแบบเสียเงิน ค่าใช้จ่ายมีเพียง VPS โดเมน พื้นที่สำรองข้อมูล และ API AI ภายนอกหากจำเป็น

Karakeep ต้องใช้ API key เพื่อทำงานหรือไม่?

ไม่จำเป็น การบันทึกและทำดัชนีเนื้อหา ลิสต์ โน้ต OCR และการค้นหาเต็มข้อความทำงานได้โดยไม่มี AI โมเดลจำเป็นเฉพาะสำหรับแท็กอัตโนมัติ สรุป และฟังก์ชันที่เกี่ยวข้อง

Karakeep ต้องใช้ RAM เท่าไร?

สำหรับผู้ใช้หนึ่งคนที่ไม่ใช้ Ollama จุดเริ่มต้นที่เหมาะสมคือ RAM 2 GB หากนำเข้าข้อมูลจำนวนมาก มีผู้ใช้หลายคน และประมวลผลอย่างต่อเนื่อง RAM 4 GB จะสะดวกกว่า

นำเข้าบุ๊กมาร์กจากเบราว์เซอร์หรือ Pocket ได้หรือไม่?

ได้ Karakeep รองรับไฟล์ HTML บุ๊กมาร์กมาตรฐานของเบราว์เซอร์, Pocket, Omnivore และรูปแบบอื่นอีกหลายแบบ หลังนำเข้า Karakeep จะประมวลผลหน้าเว็บและเพิ่มเข้าไปในระบบค้นหา

หากเว็บไซต์ต้นทางหายไป บทความจะยังเปิดได้หรือไม่?

Karakeep เก็บข้อความที่แยกได้และภาพหน้าจอ และเมื่อเปิดการเก็บถาวรเต็มรูปแบบ ก็จะเก็บสำเนาในเครื่องหรือ PDF ไว้ด้วย หน้าเว็บที่ต้องยืนยันตัวตนและเว็บแอปซับซ้อนอาจบันทึกได้เพียงบางส่วน