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

Установка 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
Автор
Редакция

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

Как снять блокировку Steam при слишком многих попытках входа
Советы

Как снять блокировку Steam при слишком многих попытках входа

Запуск Nmap без sudo с Linux capabilities
Linux

Запуск Nmap без sudo с Linux capabilities

Ошибка "Unable to find the Ubisoft Game Launcher" — решение
Игровая поддержка

Ошибка "Unable to find the Ubisoft Game Launcher" — решение

Где найти список для чтения в Chrome и как его восстановить
Браузеры

Где найти список для чтения в Chrome и как его восстановить

Как создать пользовательские свойства в Word
Microsoft Word

Как создать пользовательские свойства в Word

Как устранить проблемы с FPS в GTA 5 на Windows
Игры

Как устранить проблемы с FPS в GTA 5 на Windows