Tropic Host

Karakeep на VPS: собствен архив на отметки с търсене и изкуствен интелект

7 минути четене
Tropic
Karakeep на VPS: собствен архив на отметки с търсене и изкуствен интелект

Language: bg

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 и включете HTTPS чрез Caddy.
  6. Създайте първия акаунт и след това забранете отворената регистрация.
  7. Инсталирайте разширението за браузър или мобилното приложение и импортирайте отметките си.

За да стартирате услугата, не е необходим AI ключ. Без него запазването на страници, списъците, бележките, OCR и пълнотекстовото търсене продължават да работят. Автоматични етикети и резюмета няма да се създават.

Какво представлява Karakeep

Karakeep е приложение с отворен код за самостоятелно хостване, което съхранява връзки, текстови бележки, изображения и PDF файлове в една библиотека. Преди проектът се е наричал Hoarder.

Името идва от арабската дума karakeeb, използвана за разпръснати вещи, които изглеждат като безпорядък, но могат да имат скрита стойност. Това точно описва типичната колекция от отметки: полезните материали са много, но намирането на правилния елемент е трудно.

След добавяне на връзка Karakeep извлича заглавието и описанието ѝ, получава четимия текст, създава преглед и при нужда може да запази локално копие на страницата.

ВъзможностОтметки в браузъраKarakeep
Какво се съхраняваURL и заглавиеТекст, преглед, бележки и прикачени файлове
ТърсенеПо заглавие и адресПо съдържание, етикети и бележки
Ако страницата изчезнеОстава неработещ URLОстават текст, снимка на екрана или пълен архив
ОрганизацияПапкиЕтикети, ръчни и интелигентни списъци
ДостъпВ браузъраУеб, разширения, iOS и Android
СървърПрофилът в браузъра или облачната му услугаВашият VPS или домашен сървър

Основни възможности на Karakeep

Връзки, бележки, изображения и PDF файлове

Всеки елемент може да бъде връзка, текстова бележка или качен файл. OCR извлича текст от изображения и PDF файлове, така че и те стават достъпни за търсене. Можете да добавите към елемента бележка, цитат или допълнителен файл.

Търсене в съдържанието

Meilisearch индексира запазения текст, бележките и метаданните. Не е нужно да помните точното заглавие: достатъчни са фраза или тема. Когато са настроени embedding-и, е възможно и семантично търсене по смисъл.

Интелигентни и споделени списъци

Един елемент може да принадлежи едновременно на няколко списъка, без да се дублира. Списъкът може да остане личен, да бъде споделен чрез връзка или да се редактира заедно с други потребители.

Интелигентният списък е запазена заявка за търсене, която се обновява автоматично. Например може да показва всички елементи с етикет 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;
  • 2 GB RAM;
  • 20–30 GB SSD или NVMe;
  • Ubuntu 24.04 LTS;
  • публичен IP адрес и домейн.

За няколко потребители, голям импорт, много RSS емисии и PDF файлове 4 GB RAM са по-комфортни. Изискванията към диска зависят от режима на архивиране: текстът заема малко място, докато пълните снимки, 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

Генерирайте две различни тайни:

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: първата тайна подписва токените за удостоверяване, а втората защитава Meilisearch. Съхранявайте и конфигурационния файл docker-compose.yml извън публични хранилища.

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. На телефон можете да изпратите връзка към архива чрез системното меню за споделяне.

Съществуващите отметки могат да се импортират от стандартен 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.

Сигурност, обновявания и резервни копия

Обхождащият модул на Karakeep отваря запазените от потребителите адреси от мрежата на сървъра. Затова не оставяйте регистрацията отворена и давайте достъп само на доверени хора. Има базова защита от SSRF, но за публична услуга официалният проект препоръчва да изолирате браузъра или да го насочите през ограничен прокси.

Използвайте HTTPS и силни пароли, не излагайте порт 3000 и обновявайте редовно контейнерите:

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

Основната база данни и запазените материали се съхраняват в Docker тома с име 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 може да бъде изграден отново, но при голяма библиотека е полезно да архивирате и тома karakeep_meilisearch.

Изпратете архива от /var/backups/karakeep към друг сървър, NAS или обектно хранилище. Копие на същия VPS не предпазва от повреда на диска или изтриване на виртуалната машина.

Кой VPS да изберете за Karakeep

За лична библиотека без Ollama е подходящ Linux VPS с 2 vCPU, 2 GB RAM и 20–30 GB NVMe. За голям импорт, няколко потребители и пълно архивиране изберете 4 GB RAM и по-голям диск.

Karakeep може да работи на VPS от tropic.host: постоянният IP адрес опростява настройката на домейна, а NVMe хранилището е полезно за SQLite, индекса за търсене и многото малки файлове. Ресурсите могат да се увеличават с разрастването на архива.

Планирайте ресурсите за локален Ollama отделно: дори малък езиков модел може да изисква повече памет от целия основен стек на Karakeep.

Заключение

Karakeep превръща разпръснатите връзки в лична библиотека с търсене. Той съхранява страници, бележки, изображения и PDF файлове и поддържа OCR, списъци, разширения, мобилни приложения и незадължително маркиране с AI.

За начало са достатъчни малък VPS, Docker Compose, домейн и HTTPS. След инсталацията затворете регистрацията, следете дисковото пространство и поддържайте външно резервно копие.

FAQ

Безплатен ли е Karakeep?

Версията за самостоятелно хостване е с отворен код и не изисква задължителен абонамент. Плащате за VPS, домейн, хранилище за резервни копия и, когато е необходимо, външен AI API.

Необходим ли е API ключ, за да работи Karakeep?

Не. Запазването и индексирането на материали, списъците, бележките, OCR и пълнотекстовото търсене работят без AI. Модел е необходим за автоматични етикети, резюмета и свързани функции.

Колко RAM е необходима на Karakeep?

Практично начало за един потребител без Ollama е 2 GB RAM. За голям импорт, няколко потребители и активно обработване 4 GB са по-удобни.

Мога ли да импортирам отметки от браузър или Pocket?

Да. Karakeep поддържа стандартен HTML файл с отметки от браузър, Pocket, Omnivore и няколко други формата. След импортирането Karakeep обработва страниците и ги добавя в търсенето.

Ще остане ли статията достъпна, ако оригиналният сайт изчезне?

Karakeep съхранява извлечения текст и снимка, а при включено пълно архивиране — локално копие или PDF. Страници зад удостоверяване и сложни уеб приложения може да бъдат запазени само частично.