Новые релизы
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Wallabag хранит читаемые копии статей с тегами, избранным, прогрессом чтения и аннотациями. Библиотека доступна в браузере и мобильных клиентах. Рецепт использует официальный образ и SQLite, закрывает регистрацию и меняет стандартный пароль до запуска веб-сервера.
Wallabag сохраняет читаемые копии статей на потом. Теги, избранное, прогресс чтения и аннотации помогают превратить очередь чтения в полезный справочник. Официальные клиенты Android и iOS подключаются к собственному серверу; есть расширения браузера, а отдельное настольное приложение не входит в комплект.
Для общей библиотеки закладок сравните коллекции и архивирование с Linkwarden и Karakeep. Wallabag сосредоточен на чтении. Сохранение URL не гарантирует извлечение страницы за платным доступом, входом, полностью JavaScript-сайта или любой разметки издателя.
Рецепт запускает Wallabag 2.6.15 с SQLite и отдельными томами для базы/данных и кешированных изображений. Кратковременный инициализатор создаёт базу, применяет миграции и задаёт пароль администратора до запуска веб-сервера. Регистрация остаётся закрытой. Планируйте одно ядро, минимум 512 МБ RAM (рекомендуется 1 ГБ) и 2 ГБ диска плюс материалы; это ориентиры, а не результат нагрузочного теста.
Бесплатная self-hosted сборка поддерживает пароль и встроенную аутентификацию вторым фактором. TOTP, отправка почты, мобильные клиенты и внешние reverse proxy здесь не настроены и не проверены. Приложение предоставляет OAuth2 API; это не означает вход через OIDC или SAML. Вход по доверенному заголовку не настроен.
Лицензия приложения и рецепта — MIT. Карточка остаётся экспериментальной до появления более широкого опыта эксплуатации. Надёжный уровень не поддерживается: в этой конфигурации одного сервера с SQLite нет отдельной базы, мониторинга и лимитов ресурсов.
В проверенной конфигурации шаблонные данные отклоняются, стандартный пароль upstream меняется до приёма HTTP-запросов, регистрация закрыта, веб-порт привязан к loopback. Развёртывание задаёт пароль администратора wallabag из .env; изменение через интерфейс заменяется при инициализации. Допускайте к добавлению статей доверенных пользователей и ограничьте исходящий трафик. Данные и копии не защищены сквозным шифрованием. Этот обзор конфигурации не является аудитом безопасности.
Источники: проект и клиенты, официальная документация, Docker-образ и инициализация, релиз 2.6.15, OAuth API, лицензия.
Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Результат отдельного сканирования Docker-образов, а не проверки Compose.
Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.
Изменения upstream Compose относительно проверенного рецепта.
Проверка закреплённых тегов образов на наличие новых версий.
От наблюдения к действию
Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.
2.6.152.6.15Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.
Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.
Смена тегов образов сейчас не планируется.
Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.
Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.
Точная проверка уровня «Проверен полностью» для этой версии записана 2026-10-29.
Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.
Минимальная конфигурация для локальной сети или доступа через VPN.
Рецепт закрывает все требования этого уровня.
Публичная установка с защищённым доступом и резервными копиями.
Рецепт закрывает все требования этого уровня.
Конфигурация для предсказуемой эксплуатации и наблюдаемости.
Нужно добавить вручную: отдельная бд, внешний мониторинг, лимиты cpu и памяти.
Собрать под свой сервер
Ответьте на пять вопросов и скачайте готовый комплект Wallabag.
Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.
cp .env.example .envdocker compose up -ddocker compose psИспользуйте Ubuntu 22.04+ или Debian 12+, Docker Engine и Compose v2.24+. Планируйте одно ядро, минимум 512 МБ RAM (рекомендуется 1 ГБ) и 2 ГБ диска плюс статьи и изображения. Образы ARM64 и ARMv7 существуют, но в этом прогоне не проверялись.
mkdir -p ~/services/wallabag
cd ~/services/wallabag
# Скопируйте сюда все файлы рецепта, включая proxy/ и скрипты.
cp .env.example .env
chmod 600 .env
openssl rand -hex 32
openssl rand -hex 24
Запишите первое значение в WALLABAG_SECRET, второе — в WALLABAG_ADMIN_PASSWORD. Значения должны различаться. Инициализатор отклоняет шаблонный пароль, стандартный пароль upstream и пароли короче 16 символов. Шаблонный секрет приложения также отклоняется. Скрипты подключают .env как доверенную конфигурацию shell; рекомендуемым шестнадцатеричным значениям экранирование не нужно.
| Параметр | Назначение |
|---|---|
WALLABAG_VERSION |
Точный тег образа, первоначально 2.6.15. |
WALLABAG_PORT |
Порт хоста на loopback, по умолчанию 8087. |
WALLABAG_URL |
Канонический origin браузера, первоначально http://localhost:8087; за прокси задайте внешний HTTPS-origin. |
WALLABAG_SECRET |
Случайный секрет приложения и сессий; сохраняйте вместе с копией. |
WALLABAG_ADMIN_PASSWORD |
Пароль администратора, задаваемый инициализацией. Сохраняйте имя учётной записи wallabag; для смены пароля измените это поле и пересоздайте стек. |
WALLABAG_LOCALE |
Язык интерфейса по умолчанию: en или ru для этих руководств. Личные настройки могут его переопределять. |
TZ |
Часовой пояс ОС контейнера, по умолчанию Etc/UTC; PHP использует UTC для сохраняемых дат. |
WALLABAG_BACKUP_DIR |
Необязательный абсолютный каталог копий; пустое значение использует backups/ рядом с рецептом. |
Именованный том data содержит SQLite в /var/www/wallabag/data/db и другие данные приложения. images хранит кешированные изображения в /var/www/wallabag/web/assets/images. Оба тома привязаны к проекту Compose; сохраняйте имя проекта. Конфигурация контейнера и кеш пересоздаются из закреплённого образа и .env.
docker compose config --quiet
docker compose pull
docker compose up -d --wait --wait-timeout 600
curl --fail http://127.0.0.1:8087/api/info
Сервис initialize должен успешно завершиться до запуска wallabag. Он выполняет официальную команду миграции, затем меняет стандартный пароль администратора. Опубликованный веб-сервис не принимает стандартные учётные данные upstream ни на одном этапе запуска. Регистрация остаётся закрытой.
На своём компьютере выполните ssh -L 8087:127.0.0.1:8087 user@server, откройте http://localhost:8087 и войдите как wallabag с паролем из .env. Измените email администратора в настройках аккаунта. Не удаляйте и не переименовывайте эту управляемую развёртыванием учётную запись. Изменение пароля через интерфейс заменится при следующей инициализации; меняйте его в .env. Дополнительных пользователей можно создавать официальными средствами администратора/консоли.
SMTP, Redis, RabbitMQ, SSO-провайдер и мобильный клиент не настроены. Встроенный второй фактор TOTP/email требует отдельной настройки; проверьте восстановление доступа до включения. Отправка писем недоступна до настройки SMTP.
Задайте WALLABAG_URL=https://read.example.com, настройте DNS и HTTPS-прокси, затем пересоздайте стек. Разрешите в firewall только SSH, HTTP и HTTPS. Оставьте порт 8087 на loopback. Шифруйте копии и храните экземпляр вне сервера.
Используйте SSH-туннель или HTTPS-прокси, доступный из доверенной LAN/VPN. Если намеренно публикуете приватный интерфейс, ограничьте его firewall и задайте в WALLABAG_URL точный адрес пользователей. Не открывайте парольный вход по HTTP недоверенной сети.
Выберите пример прокси на хосте в proxy/. Caddy получает сертификаты; Nginx нужны пути к сертификатам; Traefik — точка входа websecure и resolver letsencrypt. Все примеры направляют запросы на 127.0.0.1:8087. Контейнерному прокси нужны общая сеть и адрес wallabag:80, а не собственный loopback.
Замените пример домена, задайте совпадающий HTTPS WALLABAG_URL и выполните docker compose up -d --wait --wait-timeout 600. Правильно передавайте Host и X-Forwarded-Proto. Пример Nginx допускает запросы до 50 МБ. Проверьте вход и получение статьи через итоговый origin; внешний прокси и выдача сертификата не проверялись в native smoke.
./backup.sh
Сначала дождитесь окончания инициализации. Скрипт останавливает веб-приложение, архивирует оба полных тома с активными .env и Compose и запускает приложение, только если оно работало. Приватный архив — backups/wallabag-<timestamp>.tar. Копируйте SQLite и WAL вместе при остановленной записи; личный экспорт статей не содержит все учётные записи, OAuth-клиенты и настройки.
Зашифруйте архив и скопируйте вне сервера. В нём приватные статьи, кешированные изображения, аккаунты, токены и управляемый развёртыванием пароль администратора.
Восстановление заменяет оба тома. Используйте доверенный архив и совпадающую версию приложения. На новом хосте скопируйте рецепт и сначала сравните архивные configuration.env и compose.yaml с активной конфигурацией. Архивная конфигурация автоматически не активируется; при инициализации задаётся пароль администратора из активного .env.
docker compose up -d --wait --wait-timeout 600
./restore.sh ./backups/wallabag-TIMESTAMP.tar
curl --fail http://127.0.0.1:8087/api/info
Скрипт проверяет состав архива, создаёт страховочную копию, заменяет полные тома данных/изображений и ждёт healthcheck. При ошибке замены приложение остаётся остановленным. Войдите, откройте приватную статью, проверьте теги и кешированные изображения либо API-доступ мобильного клиента. Smoke-тест amd64 удаляет оба исходных тома перед восстановлением и проверяет OAuth-клиент, статью, теги, отклонение анонимного доступа и маркер в томе изображений.
Прочитайте release notes, создайте копию вне сервера и измените WALLABAG_VERSION на проверенный точный тег. Затем:
docker compose pull
docker compose up -d --wait --wait-timeout 600
docker compose logs --tail=100 initialize wallabag
Инициализация применяет миграции до запуска веб-приложения и снова задаёт активный пароль администратора. После обновления проверьте вход, сохранённую статью, теги и API-клиент. Храните копию до обновления. Не используйте latest и не предполагайте, что старый образ прочитает мигрировавшую базу.
docker compose stop wallabag..env старую точную версию образа и верните подходящие изменения Compose. Скачайте старый образ.docker compose create, не запуская старый инициализатор или приложение на мигрировавшей базе../restore.sh ./backups/wallabag-BEFORE-UPDATE.tar. Инициализация и приложение запустятся только после замены. Проверьте вход, приватные статьи, теги, изображения и API-доступ.Страховочная копия читает остановленные тома без запуска старого приложения на новых данных. Восстановление данных не возвращает архивный пароль администратора автоматически: явно сравните активный .env.
docker compose down удаляет контейнеры и сохраняет тома. После проверки зашифрованной внешней копии docker compose down --volumes навсегда удаляет аккаунты, статьи, настройки, OAuth-клиенты и кешированные изображения. Удаление каталога рецепта также удаляет локальные копии и конфигурацию. Не используйте глобальную очистку Docker.
Источники: официальный Docker-образ, документация, консольные команды, OAuth API.
Сообщить о проблеме с рецептом
Рассказать, как прошло на вашем сервере
Откроется предзаполненный issue на GitHub. Нужен аккаунт GitHub; после отправки сообщение будет публичным.
Выполните docker compose ps --all и docker compose logs --tail=200 initialize wallabag. Замените оба шаблонных секрета, задайте пароль администратора не короче 16 символов и сохраняйте имя администратора wallabag. Не обходите инициализатор: он убирает известные учётные данные upstream до запуска HTTP. После исправления .env выполните docker compose up -d --wait --wait-timeout 600.
При ошибке миграции проверьте диск через df -h, RAM через free -m и точную версию образа. Не удаляйте базу ради исправления запуска. Сохраните полную копию до исследования ошибки.
Инициализатор задаёт WALLABAG_ADMIN_PASSWORD для управляемого развёртыванием администратора. Для смены пароля измените значение в .env и пересоздайте стек. Изменение только через интерфейс будет перезаписано при инициализации. Удаление или переименование этого администратора блокирует инициализацию; восстановите его из подходящей копии или официальными консольными средствами.
Проверьте совпадение WALLABAG_URL с origin браузера и передачу Host и X-Forwarded-Proto прокси. Для первого запуска используйте http://localhost:8087 через SSH-туннель. Не публикуйте полный вывод docker compose config: в нём секреты.
Платный доступ, аутентификация, полностью JavaScript-страницы, изменения издателя и неподдерживаемая разметка могут мешать извлечению. Проверьте доступность источника, логи приложения и публичную статью. Допускайте доверенных пользователей вместо открытия внутренней сети сервера каждому заданному URL. Если пропадают кешированные изображения, проверьте диск.
Создайте OAuth-клиент в настройках API/разработчика и используйте документированный OAuth2-процесс; это не OIDC single sign-on. Токены и секреты клиентов конфиденциальны. Мобильные клиенты, TOTP и SMTP не входят в проверенный сценарий; второй фактор по email не доставит письмо без работающего SMTP. Сохраняйте проверенный способ восстановления доступа до включения.
Дождитесь завершения инициализации. Нужны созданные контейнеры и доверенный архив этого рецепта. До восстановления проверьте совпадение версий образов и активных секретов; архивный .env автоматически не активируется. Прерванная замена не означает успешного восстановления. Храните исходный и страховочный архивы до проверки входа, приватных статей, тегов, изображений и API-доступа.
Источники: документация, Docker-образ, консольные команды, OAuth.
Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.
Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.