Karakeep: встановлення персонального архіву закладок на VPS
Зберегти посилання легко. Знайти його через шість місяців складніше — особливо якщо сторінка змінилася, зникла або загубилася серед сотень закладок.
Karakeep зберігає не лише URL, а й вміст сторінки, попередній перегляд, нотатки, зображення та PDF. Архів можна шукати за текстом, упорядковувати записи у списки й автоматично позначати їх тегами за допомогою ШІ. Сервіс працює на вашому VPS, а підключення мовної моделі є необов'язковим.
Нижче розглянемо можливості Karakeep, вимоги до сервера та встановлення на Ubuntu 24.04 за допомогою Docker Compose, HTTPS і резервних копій.
Karakeep у семи кроках
- Створіть Linux VPS і спрямуйте на нього піддомен, наприклад
keep.example.com. - Встановіть Docker Engine і Docker Compose.
- Завантажте офіційний файл
docker-compose.yml. - Згенеруйте секрети та запустіть Karakeep, Chrome і Meilisearch.
- Закрийте внутрішній порт 3000 і ввімкніть HTTPS через Caddy.
- Створіть перший обліковий запис, а потім вимкніть відкриту реєстрацію.
- Встановіть розширення браузера або мобільний застосунок та імпортуйте закладки.
Ключ ШІ для запуску сервісу не потрібен. Без нього зберігання сторінок, списки, нотатки, OCR і повнотекстовий пошук продовжать працювати. Автоматичні теги та резюме створюватися не будуть.
Що таке Karakeep?
Karakeep — це відкрита self-hosted програма для зберігання посилань, текстових нотаток, зображень і PDF в єдиній бібліотеці. Раніше проєкт називався Hoarder.
Назва походить від арабського слова karakeeb, яким описують розкидані речі, що здаються безладом, але можуть мати приховану цінність. Це точно описує типову колекцію закладок: корисних матеріалів багато, але знайти потрібний складно.
Після додавання посилання Karakeep отримує його заголовок і опис, витягує читабельний текст, створює попередній перегляд і за потреби може зберегти локальну копію сторінки.
| Можливість | Закладки браузера | Karakeep |
|---|---|---|
| Що зберігається | URL і заголовок | Текст, попередній перегляд, нотатки та вкладення |
| Пошук | За заголовком і адресою | За вмістом, тегами й нотатками |
| Якщо сторінка зникла | Залишається непрацюючий URL | Залишається текст, знімок екрана або повний архів |
| Організація | Папки | Теги, ручні та розумні списки |
| Доступ | У браузері | Web, розширення, iOS та Android |
| Сервер | Профіль браузера або його хмарний сервіс | Ваш VPS або домашній сервер |
Основні можливості Karakeep
Посилання, нотатки, зображення та PDF
Кожен запис може бути посиланням, текстовою нотаткою або завантаженим файлом. OCR витягує текст із зображень і PDF, тому їх також можна шукати. До запису можна прикріпити нотатку, цитату або додатковий файл.
Пошук за вмістом
Meilisearch індексує збережений текст, нотатки й метадані. Не обов'язково пам'ятати точний заголовок: достатньо фрази або теми. Коли налаштовано embeddings, доступний і семантичний пошук за змістом.
Розумні списки та спільна робота
Один запис може одночасно належати кільком спискам без дублювання. Список можна залишити приватним, поділитися ним через посилання або редагувати разом з іншими користувачами.
Розумний список — це збережений пошуковий запит, який оновлюється автоматично. Наприклад, він може показувати всі записи з тегом ai, додані протягом останнього тижня.
Архівування сторінок
За замовчуванням Karakeep зберігає витягнутий текст і знімок видимої частини сторінки. Додатково можна ввімкнути знімок усієї сторінки, PDF або автономний HTML-архів. Це захищає бібліотеку від мертвих посилань, але збільшує використання диска.
Сторінки за авторизацією, із розширеним захистом від ботів і інтерактивні застосунки можуть зберігатися не повністю. Важливі матеріали краще окремо завантажувати як PDF або файл.
Необов'язкове тегування за допомогою ШІ
Karakeep може створювати теги та короткі резюме через зовнішній API, сумісний з OpenAI, або локальну модель Ollama. Без ШІ програма залишається повноцінним менеджером закладок.
Локальна модель не надсилає матеріали зовнішньому провайдеру, але потребує значно більше 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 і firewall
Створіть 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 version3. Завантажте конфігурацію 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.
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=2006. Увімкніть 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 та інших підтримуваних сервісів. Великий архів краще додавати частинами: сервер має відкрити сторінки, витягнути текст, створити знімки екрана та побудувати пошуковий індекс.
Як увімкнути ШІ та архівування всієї сторінки
Для 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, 2 GB RAM і 20–30 GB NVMe. Для великого імпорту, кількох користувачів і повного архівування виберіть 4 GB RAM і більший диск.
Karakeep можна запустити на VPS від tropic.host: постійна IP-адреса спрощує налаштування домену, а NVMe корисний для SQLite, пошукового індексу та багатьох невеликих файлів. У міру зростання архіву ресурси можна збільшити.
Ресурси локального Ollama плануйте окремо: навіть невелика мовна модель може потребувати більше пам'яті, ніж увесь основний стек Karakeep.
Висновок
Karakeep перетворює розкидані посилання на персональну бібліотеку з пошуком. Він зберігає сторінки, нотатки, зображення та PDF, підтримує OCR, списки, розширення, мобільні застосунки й необов'язкове тегування ШІ.
Щоб почати, достатньо невеликого VPS, Docker Compose, домену та HTTPS. Після встановлення закрийте реєстрацію, стежте за використанням диска та зберігайте зовнішню резервну копію.
Поширені запитання
Karakeep безкоштовний?
Self-hosted версія має відкритий код і не потребує обов'язкової підписки. Ви сплачуєте за VPS, домен, сховище резервних копій і, за потреби, зовнішній API ШІ.
Чи потрібен API-ключ для роботи Karakeep?
Ні. Збереження й індексація матеріалів, списки, нотатки, OCR і повнотекстовий пошук працюють без ШІ. Модель потрібна для автоматичних тегів, резюме та пов'язаних функцій.
Скільки RAM потребує Karakeep?
Практична відправна точка для одного користувача без Ollama — 2 GB RAM. Для великих імпортів, кількох користувачів та активної обробки зручніше мати 4 GB.
Чи можна імпортувати закладки з браузера або Pocket?
Так. Karakeep підтримує стандартний HTML-файл закладок браузера, Pocket, Omnivore та кілька інших форматів. Після імпорту Karakeep обробляє сторінки і додає їх до пошуку.
Чи залишиться стаття доступною, якщо оригінальний сайт зникне?
Karakeep зберігає витягнутий текст і знімок екрана, а при ввімкненому повному архівуванні — локальну копію або PDF. Сторінки за авторизацією та складні вебзастосунки можуть зберегтися лише частково.
