
Хранить тысячи закладок в браузере — совершенно неблагодарная задача. Там отсутствуют даже офлайн-предпросмотр и автоматические теги, не говоря о полнотекстовом поиске и автоматическом скачивании/архивировании по RSS.
Для нормального управления закладками нужно специализированное решение. Тут много вариантов, а одно из лучших — это опенсорсное приложение Hoarder («Копилка информации»). Оно устанавливается на сервер и выступает единой БД для доступа из любых клиентов: Android, iOS, Chrome, Firefox и т. д.
Рассмотрим базовые функции этого приложения и как установить его на машине, где хранится личный информационный архив. Это может быть или домашний сервер, или VPS.
▍ Основные функции
- Хранение закладок (ссылок) и простых заметок, сохранение изображений и файлов PDF.
- AI-теги, автоматическая простановка меток для более быстрого поиска контента:
- Автоматический фетчинг названий, описаний и изображений.
- Предпросмотр контента:
- Сортировка закладок в списки:
- Полнотекстовый поиск по закладкам.
- Автоматическое распознавание текста на картинках (OCR).
- Удобный самохостинг в докер-контейнере.
- Быстрое управление закладками с помощью массовых действий.
- Тёмный режим для комфортного чтения:
▍ Установка и конфигурация
Серверную часть Hoarder проще всего установить в докер-контейнере. В свою очередь, для этого лучше всего подходит VPS с уже установленной операционной системой и Docker. В маркетплейсе этот образ называется DOCKER CE – UBUNTU 18.04. Нажимаем кнопку «Заказать», выбираем дата-центр и конфигурацию VPS. По умолчанию предлагается двухъядерный CPU на 2,2 ГГц, два гигабайта оперативной памяти и SSD 20 ГБ. Можно заменить SSD на HDD и сэкономить 200 руб. в месяц или произвести другие изменения в конфигурации:
Через несколько минут виртуальный сервер готов к работе:
Подключаемся к нему по SSH, используя клиент PuTTY:

Для начала нужно создать рабочую директорию, где будет храниться файл docker-compose.yml
и переменные окружения:
mkdir hoarder-app
Затем скачиваем этот файл и помещаем его в созданную директорию:
wget https://raw.githubusercontent.com/hoarder-app/hoarder/main/docker/docker-compose.yml

Чтобы сконфигурировать приложение, нужно создать файл .env
с переменными окружения в той же директории. Минимальное содержимое файла:
HOARDER_VERSION=release NEXTAUTH_SECRET=super_random_string MEILI_MASTER_KEY=another_random_string NEXTAUTH_URL=http://localhost:3000
Случайные строки можно сгенерировать в другом приложении, а в качестве localhost
устанавливаем наш IP-адрес 193.108.113.194
.
Генерация случайных строк:
openssl rand -base64 36
Строка HOARDER_VERSION=release
означает, что будет скачана последняя стабильная версия приложения. В случае необходимости можно прописать какую-то конкретную версию, например, HOARDER_VERSION=0.10.0
. Список контейнеров с указанием версий см. здесь.
В итоге получается такой файл:
HOARDER_VERSION=release NEXTAUTH_SECRET=6A1F9WhiiZYvFKkl8uKgeCWluDfTB3ndr5cOIyuZ3ajZ8fGB MEILI_MASTER_KEY=H1226qlFB/BxpelYldAErQZniM202uQSzpQpaPeppj4MfL+3 NEXTAUTH_URL=http://193.108.113.194:3000
В этот файл можно дописать ключ OpenAI, если таковой имеется:
OPENAI_API_KEY=<key>
Дополнительные параметры конфигурации перечислены в документации.
Затем перезапускаем Docker:
docker compose up
Образ Hoarder сразу скачивается и запускается в соответствии с настройками:
После этого сервер Hoarder доступен через интернет по адресу http://193.108.113.194:3000
. Можно к нему подключаться через браузеры или нативные клиенты со смартфонов (о них ниже).
Здесь создаём нового пользователя:
И входим на сервер.
Настройки:
Панель администратора:
Используемые модули (технический стек):
- NextJS для веб-приложения.
- Drizzle для БД и её миграций.
- NextAuth для аутентификации.
- tRPC для клиент-серверных коммуникаций.
- Puppeteer для краулинга закладок.
- OpenAI, потому что ИИ сейчас в моде и его добавляют во все программы. Здесь для простановки меток используется OpenAI, поддерживаются и локальные LLM-модели через Ollama.
- Monolith для архивации полного содержимого веб-страниц, youtube-dl для видео.
- Meilisearch для поиска по всему содержимому.
Демо-версия сервера предзагружена контентом для проверки функций приложения, но она работает в режиме ридонли, то есть на демо-сервер нельзя загружать свои закладки и файлы.
Приложения и расширения для доступа к серверу:
Расширение для браузера или клиентское приложение нужно сначала настроить, указать адрес сервера:

Указываем логин (email) и пароль, которые создали на сервере в процессе регистрации пользователя.

Плагин для Chrome выглядит таким образом:
По нажатию на иконку плагина текущая страница автоматически добавляется в хранилище на сервере:
Тут же можно прописать теги и определить закладку в один из списков. Если есть OpenAI, то теги устанавливаются автоматически.
Android-приложение выглядит так:
▍ Альтернативы
Автор программы упоминает следующие альтернативы, которые опробовал:
- Memos: очень удобное приложение, которое можно установить на домашнем сервере, однако оно не архивирует страницы и не даёт предпросмотр ссылок. Кроме того, ему не хватает какой-нибудь автоматической маркировки контента. Другими словами, Hoarder можно рассматривать как улучшенную версию Memos с доработкой недостатков. Онлайн-демо.
- Mymind — ближайшая альтернатива Hoarder, откуда автор черпал вдохновение. Однако это коммерческий продукт, то есть платный и проприетарный, его нельзя поставить на свой сервер.
- Raindrop: функциональный и качественный менеджер закладок с открытым исходным кодом, поддерживает ссылки, изображения и файлы. Но тоже не устанавливается на свой хостинг. Хотя есть бесплатный тариф с ограничениями (до 100 МБ нового контента в месяц, без полнотекстового поиска и др.), но это не полноценная замена своему качественному серверу без всяких ограничений.
- Менеджеры закладок (в основном для ссылок):
- Pocket — здесь хорошо реализована идея «сохранить для последующего прочтения», но без серверной части, то есть тут немножко другая архитектура.
- Linkwarden — опенсорсный менеджер закладок на своём хостинге. Ориентирован в основном на ссылки и поддерживает совместные коллекции.
- Omnivore — довольно крутое опенсорсное приложение для «последующего чтения». К сожалению, оно сильно зависит от облачной инфраструктуры Google, что делает самохостинг сложным. В их блоге есть статья, как захостить Omnivore в минимальном виде, но там многого не хватает. Самохостинг не является приоритетом для разработчиков. Да и вообще на официальном сайте сейчас висит заглушка с сообщением, что разработка приостановлена.
- Wallabag — достойное опенсорсное приложение для «отложенного чтения» с хорошими отзывами, написано на PHP. Единственный недостаток, что пользовательский интерфейс кажется слегка устаревшим, но по функциональности оно даже выигрывает у Hoarder.
- Shiori — клон Pocket с открытым исходным кодом, на языке Go. Соответствует всем требованиям, хотя в нём нет сложной системы тегов на основе ИИ.
Из аналогичных приложений с функцией самохостинга можно упомянуть Shaarli (демо), LinkAce (демо) и Linkding.
Сохранение архива на личном сервере имеет преимущества перед облачными сервисами. В первую очередь это конфиденциальность и контроль над информацией.
Скачивание контента удобнее простого хранения ссылок: во-первых, даёт возможность работать в офлайне, во-вторых, защищает от удаления контента или других видов ограничения доступа к нему. Видео тоже автоматически архивируется с помощью youtube-dl.
Персональный менеджер контента и закладок — это способ сохранить не только контент, но и воспоминания, которые неизбежно стираются из памяти. Если посмотреть свои закладки за прошлые десятилетия, то примерно 90% информации оттуда уже совершенно забылось. То же относится к логам чатов в мессенджерах, которые тоже неплохо сохранять на будущее (разумеется, в зашифрованном виде), иначе можно забыть и сами разговоры, и даже собеседников.
P. S. В качестве офтопика. Любопытно, что приложения для организации информации и персонального архива особенно помогают людям с СДВГ.
© 2025 ООО «МТ ФИНАНС»
Telegram-канал со скидками, розыгрышами призов и новостями IT
ссылка на оригинал статьи https://habr.com/ru/articles/896082/
Добавить комментарий