Гид по технологиям

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

7 min read Самохостинг Обновлено 24 Nov 2025
Установка Wallabag на Ubuntu — пошагово
Установка Wallabag на Ubuntu — пошагово

Главная иллюстрация Wallabag на сервере

Коротко о Wallabag

Wallabag — приложение «прочитать позже» с открытым исходным кодом. Оно сохраняет веб-страницы в удобном формате, удаляя лишний шум (реклама, скрипты). 1-line определение: Wallabag — приватный сервис для сохранения и чтения статей позднее.

Преимущества самохостинга:

  • Данные под вашим контролем — никто не закроет сервис и не удалит ваши записи.
  • Локальная интеграция (резервное копирование, экспорт, интеграции с почтой и внешними сервисами).

Важно: руководство рассчитано на Ubuntu 18.04 и выше и предполагает, что у вас есть пользователь с sudo.

Что потребуется перед началом

  • Сервер с Ubuntu 18.04+ и учётной записью не-root с правами sudo.
  • Доменное имя (например, example.com) для HTTPS и корректной работы сертификатов.
  • Make (установим при необходимости).

Установка make:

$ sudo apt install make

Быстрый план действий

  1. Установить системные пакеты: git, Nginx, MariaDB, PHP-FPM, Composer, Mailutils (опционально).
  2. Настроить базу данных MariaDB и пользователя для wallabag.
  3. Клонировать репозиторий wallabag и запустить make install.
  4. Настроить Nginx и PHP-FPM (указать правильную сокет-версию PHP).
  5. Настроить SMTP (Postfix/Mailutils) при необходимости.
  6. Получить HTTPS-сертификат через Let’s Encrypt (Certbot).
  7. Включить двухфакторную аутентификацию и безопасность.

Установка 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.

Страница приветствия 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, если вы выбрали так) и войдите под учётной записью администратора, созданной в процессе установки.

Экран входа Wallabag

После входа рекомендуем включить двухфакторную аутентификацию:

  • Откройте Config → USER INFORMATION.
  • Включите Two-factor authentication.

Параметры Wallabag — двухфакторная аутентификация

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

Как пользоваться Wallabag — инструкции и интеграции

Обновление 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.

Краткая методология обновления

  1. Сделайте бэкап БД и файлов.
  2. Выполните make update от имени www-data.
  3. Прогоните тесты/проверьте веб-интерфейс.
  4. Откат — восстановите БД и файлы из бэкапа, если нужно.

Краткое резюме

Wallabag — удобный инструмент для хранения статей и чтения без рекламы. Самохостинг даёт контроль и приватность, но требует базовых навыков администрирования: настройки веб‑сервера, базы данных, SSL и бэкапов. Следуя этому руководству, вы получите рабочую инстанцию Wallabag на Ubuntu, готовую к использованию и обновлению.

Important: после установки включите двухфакторную аутентификацию и регулярно делайте резервные копии.

Короткое содержание (повтор): самохостинг Wallabag — приватный, управляемый вами сервис. Установите Nginx, MariaDB, PHP-FPM и Composer; настройте Nginx и HTTPS; включите безопасность и бэкапы. Удачи!

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство