Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Продуктивность и планирование

Linkwarden

Менеджер закладок, который сохраняет страницу целиком: снимок, PDF и работающую копию HTML. Поставили версию 2.16.3 на Fatmetal Cloud Server, уронили сервер массовым импортом и нашли ловушку, которая отбирает вход в собственный сервис.

Проверено на версии 2.16.3, 29 сентября 2026 ~11 минут чтения Fatmetal Team
Закладки с веб-архивом Лицензия: AGPL-3.0 Статус: запущен у нас, 2.16.3

Вердикт

Подходит
  • команде от двух человек: общие коллекции с правами на каждого участника
  • тем, кому нужна копия страницы на дату, а не адрес: юристам, журналистам, исследователям
  • тем, кто уже терял библиотеку вместе с закрывшимся сервисом
Не подходит
  • одному человеку с сотней ссылок: облако вендора обойдется дешевле сервера
  • любителям минимализма: в поставке едет headless-браузер
  • тем, у кого сервер на 2 ГБ памяти: первый же импорт его положит
Что это

Что это и какую задачу решает

Обычная закладка хранит адрес. Через год адрес ведет на страницу 404, на редизайн без нужного текста или на платную стену.

Linkwarden хранит саму страницу. На каждую сохраненную ссылку он кладет рядом четыре файла: снимок экрана, PDF, работающую копию HTML и вычищенный текст для чтения. Плюс по желанию отправляет копию в archive.org.

История, из-за которой этот вопрос перестал быть теоретическим, свежая. Pocket, самый известный сервис «прочитать позже», Mozilla выключила 8 июля 2025 года, а 8 октября удалила данные тех, кто не успел выгрузить архив. Библиотеки за десять лет не стало у людей, которые ничего не нарушали.

Свойства сохраненной ссылки в Linkwarden: блок сохраненных форматов со снимком экрана, PDF, веб-страницей и видом для чтения
Свойства одной ссылки. Внизу - то, ради чего все затевалось: четыре формата копии и снимок на archive.org

Лицензия - AGPL-3.0 на весь код, без урезанной бесплатной версии. Вход через внешние системы (около пятидесяти провайдеров, включая Яндекс, VK и Mail.ru) в самостоятельной установке работает бесплатно: платная стена стоит в облаке вендора, а не в коде.

Что внутри копии

Что именно сохраняется и сколько это весит

Мы сохранили статью «Вымирание ссылок» из Википедии и разобрали архив по файлам.

ФорматЧто этоВес одной страницы
Веб-страницакопия HTML со всем содержимым внутри одного файла2,39 МБ
PDFпечатная версия страницы2,20 МБ
Снимок экранакартинка страницы целиком604 КБ
Вид для чтенияочищенный текст, на нем держатся поиск и цитаты4,4 КБ
Снимок archive.orgссылка на копию в Wayback Machine, по желанию-

Итого около 6 МиБ на одну сохраненную страницу. Тысяча ссылок - примерно 6 ГБ, и это единственная цифра, которую надо держать в голове при выборе диска.

Копия рабочая, а не декоративная: она открывается в интерфейсе как обычная страница, со всеми картинками и версткой, только отдает ее ваш сервер.

Сохраненная копия страницы Википедии, которую отдает сам Linkwarden, с переключателем формата в верхней панели
Это не сайт Википедии, а копия на нашем сервере. В шапке - переключатель между форматами
i

Архив растет, и его можно вынести. Linkwarden умеет складывать копии в S3-хранилище: в образе лежат переменные SPACES_KEY, SPACES_ENDPOINT, SPACES_BUCKET_NAME. Это дешевле, чем докупать диск к серверу.

Замеры

Что мы намерили после запуска

Все цифры сняты на тарифе CPU2-RAM4-DISK50 за 500 рублей в месяц.

Официальный минимум RAM4 ГБ, 2 ядра
Память в простое, весь стек382 МиБ
из них само приложение351 МиБ
Память под массовым импортом2353 МиБ - пик
Главный образ на диске2,48 ГБ
Занято после установки5,4 ГБ из 48
Скачивание образов46 с
От чистой машины до рабочего входаоколо 3 минут
Архивация одной страницы30-40 с
Отклик интерфейса100 мс
Тариф FatmetalCPU2-RAM4-DISK50 - 500 ₽/мес

Вендор обещает простой около 350 МБ - и это честная цифра, наш замер дал 351 МиБ у приложения. Заодно проверьте свои ожидания по диску: на странице документации образ назван «примерно 1,5 ГБ», на диске он занимает 2,48.

Инфопанель Linkwarden на русском языке: счетчики ссылок, коллекций и меток, лента недавних сохранений
Интерфейс переведен на русский полностью - 565 строк из 565. Английской остается только страница входа
Где ломается

Импорт, на котором у нас лег сервер

Это главная засада продукта, и она случается в первый же день.

Мы загрузили файл с 200 закладками - обычный перенос из другого сервиса. Сам импорт занял 2 секунды и ответил «Success».

Дальше за дело взялся фоновый обработчик. На каждую ссылку он поднимает headless-браузер, и таких браузеров одновременно оказалось десять.

память приложения: 349 МиБ → 2353 МиБ свободно на машине: 751 МиБ из 3915 заархивировано: 19 из 204 - и сервер перестал отвечать

Порт SSH принимал соединение, но дальше приветствия дело не шло, интерфейс отдавал таймаут. Через восемь минут машина сама не вернулась. Мягкая перезагрузка не помогла - понадобилось выключить и включить питание.

Причина простая: на образе VPS нет файла подкачки вообще, и упереться пику было не во что.

i

Лечится двумя строчками, и это проверено. Файл подкачки на 4 ГБ плюс ограничение числа обработчиков - MAX_WORKERS=2 в настройках. После этого та же очередь разгреблась, а интерфейс все время отвечал исправно: память гуляла до 3,6 ГБ, подкачка доходила до 900 МБ.

В нашей карточке маркетплейса подкачка уже настроена. Ставите руками - сделайте это до первого импорта, а не после.

Ловушка

Почта, которая отбирает вход

Пока почтовый сервер не настроен, Linkwarden разрешает зарегистрироваться вообще без адреса - только логин и пароль. Так и делает большинство: сервис личный, письма не нужны.

Через месяц вы решаете пригласить коллегу, и для приглашений прописываете почтовый сервер. С этого момента вход в ваш собственный сервис закрыт.

Что происходит на самом деле

Настроенная почта включает проверку адреса задним числом. Все аккаунты, где адрес не подтвержден, получают на входе ошибку «Email not verified». А у аккаунта без адреса подтверждать нечего - он заперт навсегда.

Мы проверили причину в обе стороны: убрали настройки почты - вход сразу заработал, вернули - снова отказ.

i

Как выбраться, если уже заперты. Одна команда в базе отмечает адрес подтвержденным, и вход возвращается при включенной почте:
UPDATE "User" SET email='вы@пример.ру', "emailVerified"=now() WHERE id=1;

Простое правило на будущее: указывайте почту при регистрации сразу, даже если почтовый сервер вам пока не нужен.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе - не придется повторять установку из разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный сертификат и файл с доступами.

Рекомендуемая конфигурация: CPU2-RAM4-DISK50

В маркетплейс →
Установка

Развертывание на Fatmetal

Три контейнера и обратный прокси. От чистой машины до входа - около трех минут.

  1. Создать сервер

    Ubuntu 24.04, тариф CPU2-RAM4-DISK50. Диск меньше 50 ГБ не берите: архив растет на 6 МиБ со страницы.

  2. Поставить Docker и файл подкачки

    Docker из официального репозитория, подкачка на 4 ГБ - до первого запуска, а не после.

  3. Задать три разных секрета

    Пароль базы, ключ подписи сессий и ключ поиска. Именно разных: документация требует этого, и требует не зря.

  4. Указать публичный адрес

    Адрес сервиса прописывается в настройках с суффиксом /api/v1/auth и обязан совпадать с тем, что видит браузер. Иначе вход ломается без внятной ошибки.

  5. Выпустить сертификат

    Обратный прокси получает сертификат Let's Encrypt автоматически. У нас на это ушло меньше 25 секунд.

  6. Зарегистрироваться первым

    Регистрация открыта: первый, кто откроет адрес, станет владельцем. Сделайте это сразу и закройте регистрацию.

i

Образ живет только в одном реестре. На Docker Hub Linkwarden не публикуется вовсе, зеркала нет. Если скачивание встает - дело не в реестре, проверяйте сеть до него.

Требование безопасности, о котором молчат все обзоры

Сохраненный HTML чужих страниц документация просит отдавать с отдельного адреса - переменная NEXT_PUBLIC_USER_CONTENT_DOMAIN. Второй сервер не нужен, оба имени смотрят на ту же машину. Без этого чужая страница из архива исполняется там же, где живет ваша сессия.

Тонкая настройка

Как сделать его легче

Вендор сам ведет страницу про это - редкая честность, и ей стоит воспользоваться.

Тяжесть у продукта ровно одна и осмысленная: в поставке едет headless-браузер, потому что кто-то должен открыть страницу и сделать снимок. Выключается это по частям.

Что сделатьЧто теряетеЭффект
Выключить PDF и веб-страницукопию документа, останется снимок и текстбольшой
Оставить только вид для чтениякартинку и версткубольшой
Выключить архивацию целикомвсе копии, останутся закладки, теги и поиск по заголовкаммаксимальный
Сохранять из своего браузераничего, работа уходит с сервера на ваш компьютербольшой
Настройки архивации страниц в Linkwarden: пять форматов сохранения галочками и правила по тегу
Форматы выключаются галочками, а правила по тегу позволяют хранить полный архив только для избранного

Правила по тегу - самое разумное: полная копия для того, что действительно важно, и только текст для всего остального.

i

Автоматические теги. Linkwarden умеет расставлять метки моделью по содержимому страницы. Ключ провайдера выбираете вы сами, а обращения к нему идут через прокси к внешним API - он уже входит в сервер Fatmetal, настраивать ничего не надо.

Деньги

Сервер против подписки

Скажем сразу неудобное: одному человеку облако вендора дешевле своего сервера. Подписка стоит 3 доллара за человека в месяц при годовой оплате - это около 253 рублей против 500 за тариф.

Сколько человекОблако вендораСвой серверКто дешевле
1≈253 ₽/мес500 ₽/месоблако
2≈506 ₽/мес500 ₽/меспоровну
5≈1265 ₽/мес500 ₽/мессвой сервер
10≈2530 ₽/мес500 ₽/мессвой сервер

Точка окупаемости - второй пользователь. Дальше разрыв растет линейно: сервер за 500 рублей не дорожает от того, что на нем стало десять аккаунтов.

Есть и вторая арифметика. Платные функции Raindrop, Instapaper и Pinboard - это ровно веб-архив, полнотекстовый поиск и заметки по тексту. То, что здесь входит в установку.

i

Аргумент, который весит больше цифр. Любая из этих подписок - регулярный платеж зарубежному сервису и зависимость от чужого решения, жить ему дальше или нет. Pocket показал, чем это кончается.

Соседи

Чем отличается от wallabag и Karakeep

Оба продукта мы тоже ставили и замеряли, поэтому сравнение честное.

LinkwardenwallabagKarakeep
Что сохраняетстраницу: снимок, PDF, HTMLтекст статьиснимок и текст
Заметки по текстуестьнетнет
Копия в archive.orgестьнетнет
Память в простое382 МиБ108 МиБоколо 720 МиБ
Своя командаправа на участниканетнет

Коротко: wallabag легче втрое и бережет текст, а не вид страницы. Karakeep ближе всего по духу, но тяжелее и без заметок по тексту.

Вид для чтения в Linkwarden: очищенный текст статьи и инструмент выделения в верхней панели
Вид для чтения с инструментом выделения. Цитаты остаются в вашей копии, даже если оригинал перепишут
Ограничения

Когда это НЕ ваш выбор

Вам нужен только список ссылок

Если копии страниц не нужны, вы платите памятью и диском за то, чем не пользуетесь. Возьмите что-нибудь легче.

У вас сервер на 2 ГБ

В простое влезет, но первый массовый импорт положит машину. Наш замер: пик 2,35 ГБ.

Safari - ваш основной браузер

Расширения для Safari у продукта нет. Есть для Chrome и Firefox, есть приложения для iOS и Android.

Вам важна страховка на случай ухода автора

Проект почти целиком делает один человек: 2541 коммит из примерно 2900. Лицензия AGPL-3.0 защищает от закрытия кода, но не от остановки разработки.

FAQ

Частые вопросы

Сколько занимает одна сохраненная страница?

Около 6 МиБ со всеми форматами. Тысяча ссылок - примерно 6 ГБ. Если это много, выключите PDF и копию HTML или вынесите архив в S3.

Хватит ли 4 ГБ памяти?

Для работы - с большим запасом: в простое весь стек занимает 382 МиБ. Для массового импорта обязательно добавьте файл подкачки.

Интерфейс на русском?

Да, перевод полный - 565 строк из 565, включается в настройках пользователя. Английской остается страница входа и несколько заголовков в настройках.

Можно перенести библиотеку из другого сервиса?

Да, импорт понимает выгрузки Pocket, wallabag, Omnivore и обычный файл закладок из браузера. Перед импортом добавьте подкачку.

Почему после настройки почты меня не пускают?

Включилась проверка адреса, а ваш не подтвержден. Указывайте почту при регистрации; если уже заперты - отметьте адрес подтвержденным в базе.

Нужен ли ключ от модели для работы?

Нет. Автоматические теги - необязательная функция, без ключа работает все остальное.

Что бэкапить?

Три каталога: базу, архив страниц и поисковый индекс. База без архива даст закладки без копий.

Проверено на версии 2.16.3, сентябрь 2026. На новых версиях результаты могут отличаться.

Итог

Linkwarden - это не список ссылок, а личный веб-архив, и за это он берет память и диск: 382 МиБ в простое, 6 МиБ на каждую сохраненную страницу. Две засады стоят того, чтобы знать о них заранее: массовый импорт без файла подкачки кладет сервер, а настройка почты отбирает вход у аккаунтов без подтвержденного адреса. Обе лечатся до того, как случатся. Взамен вы получаете библиотеку, которая переживет закрытие любого сервиса - включая тот, чьими закладками пользуетесь сейчас.

Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи