Установка Wallabag на сервер с Ubuntu: пошаговое руководство

Коротко о Wallabag
Wallabag — приложение «прочитать позже» с открытым исходным кодом. Оно сохраняет веб-страницы в удобном формате, удаляя лишний шум (реклама, скрипты). 1-line определение: Wallabag — приватный сервис для сохранения и чтения статей позднее.
Преимущества самохостинга:
- Данные под вашим контролем — никто не закроет сервис и не удалит ваши записи.
- Локальная интеграция (резервное копирование, экспорт, интеграции с почтой и внешними сервисами).
Важно: руководство рассчитано на Ubuntu 18.04 и выше и предполагает, что у вас есть пользователь с sudo.
Что потребуется перед началом
- Сервер с Ubuntu 18.04+ и учётной записью не-root с правами sudo.
- Доменное имя (например, example.com) для HTTPS и корректной работы сертификатов.
- Make (установим при необходимости).
Установка make:
$ sudo apt install makeБыстрый план действий
- Установить системные пакеты: git, Nginx, MariaDB, PHP-FPM, Composer, Mailutils (опционально).
- Настроить базу данных MariaDB и пользователя для wallabag.
- Клонировать репозиторий wallabag и запустить make install.
- Настроить Nginx и PHP-FPM (указать правильную сокет-версию PHP).
- Настроить SMTP (Postfix/Mailutils) при необходимости.
- Получить HTTPS-сертификат через Let’s Encrypt (Certbot).
- Включить двухфакторную аутентификацию и безопасность.
Установка git
Git нужен для клонирования репозитория wallabag.
$ sudo apt install git
$ git config --global user.name "Your name"
$ git config --global user.email "[email protected]"Установка Nginx
$ sudo apt install nginxЕсли используете ufw (файрвол Ubuntu), откройте HTTP:
$ sudo ufw allow "Nginx HTTP"
$ sudo ufw statusПример вывода:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)Попробуйте открыть IP сервера в браузере — появится страница приветствия Nginx.

Установка MariaDB и базовая настройка
MariaDB — совместимая замена MySQL.
$ sudo apt install mariadb-server
$ sudo mysql_secure_installationДействие mysql_secure_installation поможет задать root-пароль, удалить анонимных пользователей и др. Если вы хотите, чтобы сторонние приложения (например phpMyAdmin) могли подключаться как root, потребуется отключить plugin-аутентификацию, поскольку по умолчанию MariaDB позволяет вход системному root без пароля.
Отключение plugin-аутентификации:
$ sudo mysql -u rootВнутри mysql:
use mysql;
update user set plugin='' where User='root';
flush privileges;
exitПерезапустите сервис:
$ sudo systemctl restart mariadb.serviceПодключение к MariaDB впоследствии:
$ sudo mysql -u root -pНастройка базы данных для Wallabag
Предполагается, что далее вы будете входить как root (или используете sudo при подключении).
$ sudo mysql -u rootВ prompt MySQL выполните:
create database wallabag;
create user wallabaguser@localhost;
set password for wallabaguser@localhost= password("yourpassword");
grant all privileges on wallabag.* to wallabaguser@localhost identified by "yourpassword";
flush privileges;
exitЗамените “yourpassword” на надёжный пароль и сохраните его в менеджере паролей.
Установка PHP и Composer
Wallabag работает на PHP (рекомендуется PHP 7.4+ или версия, указанная в требованиях текущей версии Wallabag). Устанавливаем PHP-FPM и необходимые расширения.
$ sudo apt install php-fpm php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-gettext php-tokenizer
$ sudo apt install composerПримечание: в конфигурации Nginx нужно указать корректный путь к сокету PHP-FPM, например /run/php/php7.4-fpm.sock или /run/php/php8.1-fpm.sock в зависимости от установленной версии. Проверьте, какая версия PHP-FPM у вас установлена.
Конфигурация Nginx для Wallabag
Создайте директорию для сайта (замените example.com на ваш домен):
$ sudo mkdir -p /var/www/example.com/html
$ sudo chown -R www-data:www-data /var/www/example.com/html
$ sudo chmod -R 755 /var/www/example.comСоздайте виртуальный хост:
sudo nano /etc/nginx/sites-available/example.comВставьте конфигурацию (внимание: при использовании другой версии PHP замените php7.2-fpm.sock на ваш сокет):
server {
server_name example.com www.example.com;
root /var/www/example/html/web;
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
# replace php7.2-fpm with whichever php 7.x/8.x version you are using
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/wallabag_error.log;
access_log /var/log/nginx/wallabag_access.log;
}Сохраните (Ctrl+X, Y) и включите сайт:
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/Иногда появляется ошибка из‑за размера хэш-таблицы имён серверов. Отредактируйте nginx.conf:
$ sudo nano /etc/nginx/nginx.confНайдите директиву server_names_hash_bucket_size и раскомментируйте, установите 64:
server_names_hash_bucket_size 64;Проверка конфигурации и перезапуск:
$ sudo nginx -t
$ sudo systemctl restart nginxУстановка Wallabag (клонирование и make install)
Переключитесь на пользователя www-data (у него права на веб-директорию), клонируйте репозиторий и запустите установку:
$ sudo -u www-data /bin/bash
$ cd /var/www/example.com
git clone https://github.com/wallabag/wallabag.git html
$ cd html
$ make installВ процессе make install вас попросят ввести параметры подключения к базе, домен, SMTP и другие опции.
Пример ответов (если используете HTTP вместо HTTPS, укажите http://example.com):
database_driver (pdo_mysql): pdo_mysql
database_host (127.0.0.1): 127.0.0.1
database_port (null): 3306
database_name (wallabag): wallabag
database_user (root): wallabaguser
database_password (null): wallabagpassword
# ...
domain_name ('https://your-wallabag-url-instance.com'): http://example.comЕсли не хотите, чтобы регистрация была открыта для всех, при параметре fosuser_registration ответьте no.
При больших объёмах импортируемых данных рекомендуют поставить Redis или RabbitMQ — установите и укажите при установке, если потребуется фоновая обработка.
По окончании выйдите из учётки www-data:
$ exitНастройка SMTP (Postfix и Mailutils)
Если вы предпочитаете локальный SMTP (только для уведомлений и сброса пароля), установите mailutils и настройте Postfix как Internet Site.
$ sudo apt install mailutilsВо время установки выберите “Internet Site” и введите System mail name = example.com.
Альтернатива: используйте внешние SMTP-провайдеры (SendGrid, Mailgun, Gmail/Workspace) — укажите их параметры в процессе установки или в конфиге Wallabag позже.
Настройка HTTPS с Let’s Encrypt (Certbot)
Добавьте репозиторий и установите Certbot для Nginx:
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install python-certbot-nginxПолучение сертификата:
$ sudo certbot --nginx -d example.com -d www.example.comВо время первого запуска вас попросят email и согласие с условиями. Certbot предложит вариант перенаправления HTTP → HTTPS — выберите перенаправление (Redirect), чтобы включить безопасный режим.
Тест обновления сертификата (dry-run):
$ sudo certbot renew --dry-runЕсли ошибок нет, автоматическое обновление настроено корректно.
Конфигурация Wallabag и первые шаги
Откройте https://example.com (или http, если вы выбрали так) и войдите под учётной записью администратора, созданной в процессе установки.

После входа рекомендуем включить двухфакторную аутентификацию:
- Откройте Config → USER INFORMATION.
- Включите Two-factor authentication.

Wallabag поддерживает импорт из Pocket, Instapaper, Pinboard, а также закладки из браузеров и различные приложения/клиенты. В разделе “How to” доступны инструкции и Bookmarklet.

Обновление Wallabag
Чтобы обновить до последней версии:
$ sudo -u www-data /bin/bash
$ cd /var/www/example.com/html
$ make updateПосле обновления проверьте работу сайта и бэкапы.
Безопасность, резервное копирование и обслуживание
- Регулярно обновляйте систему и пакеты:
sudo apt update && sudo apt upgrade. - Делайте бэкап базы данных и директории /var/www/example.com:
# DB dump
$ mysqldump -u root -p wallabag > wallabag-$(date +%F).sql
# Архив веб-данных
$ tar czf wallabag-www-$(date +%F).tar.gz /var/www/example.com- Права: файлы под www-data, права 755 для директорий и 644 для файлов.
- Ограничьте доступ к серверу по SSH (используйте ключи, отключите вход по паролю).
- Мониторьте логи: /var/log/nginx/wallabag_error.log и /var/log/nginx/wallabag_access.log.
- Включите автоматическое обновление сертификатов Certbot (cron/systemd уже настраивается при установке).
Отладка и распространённые ошибки
- 502 Bad Gateway: проверьте, что служба php-fpm работает и путь к сокету в Nginx совпадает (например /run/php/php7.4-fpm.sock).
- Ошибки подключения к базе: убедитесь, что имя БД, пользователь и пароль совпадают, и что MariaDB слушает локально.
- Ошибки прав доступа к файлам: проверьте владельца и права (www-data).
- Проблемы с отправкой почты: проверьте Postfix logs (/var/log/mail.log) и настройки SMTP в Wallabag.
Полезные команды диагностики:
# Проверить статус сервисов
$ systemctl status nginx
$ systemctl status php7.4-fpm
$ systemctl status mariadb
# Просмотреть последние строки логов
$ tail -n 200 /var/log/nginx/wallabag_error.log
$ tail -n 200 /var/log/syslogКогда самохостинг Wallabag не подходит (кейс-отрицание)
- У вас нет возможности поддерживать сервер (обновления/бэкапы/безопасность) — лучше использовать облачный SaaS.
- Необходима высокая доступность и масштабирование для большого количества пользователей — потребуется кластеризация и дополнительные компоненты.
Альтернативы: Pocket, Instapaper, сервисы с хостингом (платные). Wallabag выигрывает приватностью и контролем.
Рекомендации по масштабированию и оптимизации
- Для больших объёмов импорта и фоновой обработки используйте Redis или RabbitMQ.
- Разнесите БД и веб-сервер на разные машины для производительности.
- Настройте мониторинг (Prometheus, Grafana) и бэкапы с retention policy.
Чек-листы для ролей
Чек-лист для системного администратора:
- Настроить домен и DNS (A/AAAA записи).
- Установить Nginx, PHP-FPM, MariaDB, Composer.
- Настроить права /var/www и сокет PHP-FPM.
- Настроить SSL с Certbot и проверить автопродление.
- Настроить бэкапы базы и файлов, протестировать восстановление.
Чек-лист для разработчика/интегратора:
- Проверить совместимость версии PHP с Wallabag.
- Настроить Redis/RabbitMQ при необходимости.
- Настроить логирование и мониторинг приложения.
Чек-лист для конечного пользователя (админ сайта):
- Создать администратора и протестировать вход.
- Включить двухфакторную аутентификацию.
- Настроить почту для восстановления пароля.
Критерии приёмки
- Сайт открывается по HTTPS и корректно перенаправляет HTTP → HTTPS.
- Вход администратора проходит и можно создать/просмотреть сохранённые статьи.
- Импорт из Pocket/Instapaper или загрузка Bookmarklet работает.
- Регулярные бэкапы выполняются и восстановление тестировалось.
Быстрая шпаргалка команд (cheat sheet)
- Установка базовых пакетов:
sudo apt install git nginx mariadb-server php-fpm composer - Создать БД: использовать
mysqlи SQL-скрипт выше. - Клонировать Wallabag:
git clone https://github.com/wallabag/wallabag.git html - Установить Wallabag:
make installв каталоге html от имени www-data. - Обновить:
make updateот имени www-data. - Получить SSL:
sudo certbot --nginx -d example.com -d www.example.com
Факто‑бокс — ключевые параметры
- Рекомендуемая PHP-версия: 7.4+ (проверяйте требования текущей версии Wallabag).
- Порт БД: 3306.
- Certbot: сертификаты действуют 90 дней, автоматическое продление настроено.
- Права файлов: директории 755, файлы 644, владелец www-data.
Краткая методология обновления
- Сделайте бэкап БД и файлов.
- Выполните
make updateот имени www-data. - Прогоните тесты/проверьте веб-интерфейс.
- Откат — восстановите БД и файлы из бэкапа, если нужно.
Краткое резюме
Wallabag — удобный инструмент для хранения статей и чтения без рекламы. Самохостинг даёт контроль и приватность, но требует базовых навыков администрирования: настройки веб‑сервера, базы данных, SSL и бэкапов. Следуя этому руководству, вы получите рабочую инстанцию Wallabag на Ubuntu, готовую к использованию и обновлению.
Important: после установки включите двухфакторную аутентификацию и регулярно делайте резервные копии.
Короткое содержание (повтор): самохостинг Wallabag — приватный, управляемый вами сервис. Установите Nginx, MariaDB, PHP-FPM и Composer; настройте Nginx и HTTPS; включите безопасность и бэкапы. Удачи!
Похожие материалы
Как снять блокировку Steam при слишком многих попытках входа
Запуск Nmap без sudo с Linux capabilities
Ошибка "Unable to find the Ubisoft Game Launcher" — решение
Где найти список для чтения в Chrome и как его восстановить
Как создать пользовательские свойства в Word