Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
ПРОДУКТИВНОСТЬ И ПЛАНИРОВАНИЕ

wallabag

Свой сервис отложенного чтения: сохраняет не ссылку, а текст статьи, и отдает его потом в браузере, в мобильном приложении и на читалке. Развернули wallabag 2.6.14 на тарифе за 500 рублей, перевезли архив в формате Pocket и проверили на русских сайтах то, о чем не пишет ни один обзор.

Проверено на версии 2.6.14, 28 сентября 2026 ~9 минут чтения Fatmetal
MIT PHP / Symfony 3 контейнера 111 МиБ в простое Android и iOS ePUB, PDF, RSS

Вердикт

Подходит
  • тем, у кого остался выгруженный архив Pocket и его некуда деть
  • тем, кто хочет читать статьи офлайн: с телефона, планшета или читалки
  • редакции или команде - архив общий, пользователей сколько угодно
  • тем, кому неудобно платить за зарубежную подписку картой
Не подходит
  • одному человеку ради экономии: официальный хостинг стоит 11 € в год, это дешевле сервера
  • если нужен разбор сохраненного искусственным интеллектом - этого здесь нет
  • если нужен менеджер закладок с папками и совместной работой
  • если важны частые обновления: последний релиз вышел в октябре 2025 года
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: medium Время запуска: 51 с после скачивания образов Главный риск: на современном PostgreSQL установка падает и сама не повторяется Прод-готовность: да, с обратным прокси и TLS
Что это

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

Вы нашли статью, читать некогда. Нажали кнопку - wallabag скачал страницу, вырезал из нее текст и сложил к себе. Вечером вы открываете его с телефона и читаете без рекламы, всплывающих окон и интернета.

Ключевое отличие от менеджера закладок: сохраняется не адрес, а сам текст. Статью переверстали, закрыли платной подпиской или удалили - ваша копия осталась читаемой.

Проект французский, живет с 2013 года, лицензия MIT на все. Платных модулей и урезанной бесплатной версии нет: в свою установку вы получаете продукт целиком.

Список непрочитанных статей в wallabag: карточки с обложками, источником и временем чтения
Список непрочитанных: обложка, источник, время чтения и теги. Интерфейс русский, переключается в настройках
Переезд

Что делать, если у вас архив из Pocket

Pocket выключили 8 июля 2025 года, выгрузить архив разрешали до 12 ноября. Дальше данные удалили. Если файл вы тогда скачали - он еще пригодится.

Пункт менюЧто он делаетРаботает ли сейчас
Pocketзабирает данные через программный интерфейс Pocketнет: сервиса и интерфейса больше не существует
Pocket CSVчитает таблицу из выгрузкида, это основной путь
Pocket HTMLчитает html-файл из выгрузкида, запасной вариант

Документация при этом до сих пор описывает первый путь: «создайте приложение на сайте разработчиков Pocket». Выполнить это уже невозможно.

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

Замерили на 41 ссылке. Файл в формате выгрузки Pocket загрузился и разобрался за 16,4 секунды - 0,4 секунды на ссылку. Быстро потому, что страницы качаются пачками, а не по одной.

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

Страница импорта wallabag: двенадцать источников, среди них три варианта Pocket
Страница импорта: двенадцать источников. У части описания не переведены на русский - видно голые служебные ключи
Форма загрузки файла выгрузки Pocket в wallabag
Сюда упирается весь переезд: выбрать файл выгрузки и нажать кнопку
Неприятная деталь. У wallabag есть очередь, которая переносит долгий импорт в фон. Мы спросили у самого продукта, какие источники она принимает: Instapaper, Omnivore, закладки браузеров - и ни одного из двух рабочих путей Pocket. Очередь досталась импорту, которым уже нельзя пользоваться.
Проверка

Вытащит ли он текст с русских сайтов

Вопрос, на который не отвечает ни документация, ни англоязычные обзоры. Мы сохранили 41 статью с девяти сайтов и посмотрели, что легло в базу.

Текст из страницы достает библиотека graby. Для известных сайтов у нее есть правила - какой кусок страницы считать статьей. Правил 2043, и только 22 из них относятся к зоне .ru.

Казалось бы, приговор. На деле все интереснее: где правила нет, включается общий алгоритм, и чаще всего он срабатывает.

Группа сайтовСтатейЧистоС браком
есть правило: habr.com, vc.ru, lenta.ru, lifehacker.ru20200
правила нет: 3dnews.ru, ixbt.com, nplus1.ru, ria.ru, opennet.ru21138

Брак бывает двух видов. У 3dnews.ru к статье приклеивается блок «читайте также» - текст на месте, снизу лишнее. У ria.ru в трех случаях из пяти вместо статьи сохранилась форма входа на сайт.

Вывод для читателя простой. Хабр, vc.ru, Лента, Лайфхакер сохраняются идеально. Сайт без правила - лотерея с хорошими шансами, и результат видно сразу при сохранении.

Статья в wallabag: извлеченный текст, время чтения, панель действий сбоку
Сохраненная статья: чистый текст без рекламы, время чтения, слева - архив, избранное, теги, экспорт и печать
Возможности

Что еще он умеет

Читать где угодно. Официальные приложения для Android и iOS, расширения для Firefox и Chrome, выгрузка статьи или целой подборки в ePUB, PDF, JSON и CSV.

Отдавать статьи читалке. wallabag публикует личные ленты - непрочитанное, избранное, архив, отдельный тег. Их подхватывает читалка или программа для e-ink, и статьи приезжают туда сами.

Пометки на полях. Выделяете кусок текста и пишете заметку. Она видна при чтении в wallabag и уезжает вместе со статьей в ePUB.

Статьи за платной подпиской. Можно сохранить свои логин и пароль от сайта, и wallabag будет заходить под ними. Пароли шифруются в базе, но документация предупреждает: администратор сервера при желании их достанет.

Свой программный интерфейс. Есть полноценный API с авторизацией - через него wallabag подключают к сторонним приложениям и сценариям автоматизации.

Список тегов в wallabag с числом статей в каждом
Теги: проставляются руками, правилами автотегирования или приезжают из выгрузки вместе со статьями

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

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

wallabag есть в маркетплейсе - можно не повторять установку из этого разбора. Заказываете сервер, через пару минут получаете рабочий сервис на своем домене, валидный сертификат и файл с доступами. Все четыре поломки из раздела выше в рецепте уже обойдены.

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

Развернуть в 1 клик →
Вопросы

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

Можно ли еще выгрузить свой архив из Pocket?

Нет. Сервис выключили 8 июля 2025 года, выгрузку закрыли 12 ноября, данные удалили. Импорт пригодится, только если файл вы скачали тогда.

Что будет с картинками из статей?

По умолчанию они остаются ссылками на исходный сайт. Скачивание включается в настройках администратора, но тогда архив растет примерно на 3 МБ со статьи.

Нужен ли Redis?

Для повседневной работы нет. Он нужен фоновому импорту из Instapaper, Omnivore и браузерных закладок. Для переезда с Pocket он бесполезен: этот тип импорта очередь не поддерживает.

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

Базу PostgreSQL - в ней статьи, теги и пометки. Плюс каталог с картинками, если вы включили их скачивание, и файл с переменными окружения.

Сколько человек поместится на CPU2-RAM4-DISK50?

Ограничение не в пользователях, а в одновременных сохранениях: каждое качает страницу. Для десятка читающих людей тарифа CPU2-RAM4-DISK50 достаточно.

Работает ли восстановление пароля по почте?

Да, проверяли письмом: приходит за секунды. Учтите поведение продукта - повторный запрос письма не отправляет, но показывает тот же экран «проверьте почту».

Можно ли обойтись без PostgreSQL?

Да, образ по умолчанию работает на SQLite - это проще для одного человека. Мы взяли PostgreSQL, потому что архив многопользовательский и импорт пишет тысячами записей.

Итог

wallabag 2.6.14 делает одно дело и делает его хорошо: забирает текст статьи себе и отдает его вам где угодно - в браузере, на телефоне, на читалке. Три контейнера занимают 111 МиБ и живут на машине за 500 рублей в месяц. Переезд с Pocket работает, хотя и не тем способом, который описан в документации. Русские сайты сохраняются лучше, чем можно было ожидать от 22 правил на зону. Главное, за что стоит браться, - архив перестает зависеть от чужого решения закрыться.

Установка

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

Официальный способ - три контейнера: сам wallabag, база и Redis. От скачанных образов до рабочего интерфейса 51 секунда, но два шага придется сделать руками.

  1. Поставить Docker

    Образ Ubuntu 24.04 приходит без него. Установка из официального репозитория заняла 58 секунд.

  2. Описать три сервиса

    services:
      wallabag:
        image: wallabag/wallabag:2.6.14
        environment:
          - SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql
          - SYMFONY__ENV__DATABASE_HOST=db
          - SYMFONY__ENV__DOMAIN_NAME=https://read.example.com
          - SYMFONY__ENV__SECRET=<замените>
          - SYMFONY__ENV__FOSUSER_REGISTRATION=false
        ports:
          - "127.0.0.1:8080:80"
        volumes:
          - /opt/wallabag/images:/var/www/wallabag/web/assets/images
      db:
        image: postgres:16-alpine
      redis:
        image: redis:7-alpine

    Адрес в DOMAIN_NAME должен быть ровно тем, по которому вы открываете сервис. Порт наружу не выставляем - перед ним обратный прокси с сертификатом.

  3. Отдать базу приложению

    docker exec wallabag-db psql -U postgres \
      -c "ALTER DATABASE wallabag OWNER TO wallabag;"

    Без этой строки на PostgreSQL 15 и новее установка падает. Подробности ниже, в разделе про поломки.

  4. Запустить установку

    docker exec wallabag /var/www/wallabag/bin/console \
      wallabag:install --env=prod --no-interaction

    Четыре шага, шестнадцать таблиц, около сорока секунд.

  5. Сменить пароль администратора

    docker exec -u nobody wallabag /var/www/wallabag/bin/console \
      fos:user:change-password wallabag '<новый пароль>' --env=prod

    Из коробки логин и пароль - wallabag и wallabag. Менять обязательно.

Замеры

Что измерили

СтендCPU2-RAM4-DISK50, Ubuntu 24.04.4, Docker 29.8.1
Версия и образwallabag 2.6.14, wallabag/wallabag:2.6.14
Скачивание образов66 с, 965 МБ на три образа
Память в простое111 МиБ на три контейнера: 83 + 25 + 3
Память под работой144 МиБ; машина целиком 676 МБ из 3915
Первый ответ интерфейса42 мс на страницу входа
Импорт 41 ссылки16,4 с, все 41 записи созданы
Место на статью17 КБ в базе; 10 000 статей ≈ 170 МБ
То же с картинками3,1 МБ на статью; 10 000 статей ≈ 31 ГБ

Тарифа CPU2-RAM4-DISK50 хватает с многократным запасом: продукт занимает около десятой доли доступной памяти. Тяжелая операция здесь одна - загрузка страниц при импорте, и она упирается в сеть, а не в железо.

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

Где может сломаться

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

SQLSTATE[42501]: permission denied for schema public

Установка падает на создании таблиц. Образ заводит базу, но оставляет ее во владении служебной учетной записи, а PostgreSQL с версии 15 разрешает создавать таблицы только владельцу. Лечится строкой ALTER DATABASE wallabag OWNER TO wallabag до первого запуска. В примере из документации апстрима стоит PostgreSQL 9.6 - там этого ограничения еще нет, поэтому проблема и не видна.

Postgres database is already configured

Если установка один раз упала, сама она больше не повторится: контейнер проверяет, существует ли база, а не заполнена ли она. Сервис будет бесконечно отдавать ошибку 500 и не починится ни перезапуском, ни пересозданием. Запускайте установку командой вручную.

Контейнер говорит «здоров», когда сервис не работает. Встроенная проверка стучится в служебный адрес, который отвечает и без базы. Семь минут подряд система показывала зеленый статус у мертвого сервиса. Ориентируйтесь на страницу входа, а не на статус контейнера.

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

И одна не про wallabag. В облаке путь наружу бывает уже, чем объявляет сетевая карта, и контейнеры этого не знают: страницы качаются в ноль байт, а выглядит это как «продукт не умеет разбирать сайты». В нашей карточке маркетплейса это учтено в рецепте.

Деньги

Сколько это стоит против подписок

ВариантЦена в годПримечание
Свой сервер на Fatmetal6000 ₽пользователей сколько угодно
wallabag.it, хостинг разработчика11 €один аккаунт, оплата картой за рубеж
Raindrop.io Pro27,99 $хранит ссылку, а не текст статьи
Instapaper Premium59,99 $закрытый код, данные у вендора
Readwise Reader119,88 $дороже всех, зато с разбором прочитанного

Одному человеку свой сервер ради экономии не нужен. Одиннадцать евро в год у самих разработчиков дешевле любого тарифа.

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

Границы

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

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

Вы ждете свежих версий. Версия 2.6.14 вышла 7 октября 2025 года. Разработка идет активно, но выпуск следующей версии откладывается уже почти год.

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

Внутренние настройки wallabag: разделы импорта, статей и оформления
Внутренние настройки администратора: здесь включается фоновый импорт и доступ к статьям за платной подпиской
Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

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

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