Wallabag - это самостоятельное веб-приложение PHP, позволяющее сохранять веб-страницы для последующего чтения. Он извлекает контент, чтобы вы могли прочитать его, когда у вас есть время. Эта статья объяснит установку Wallabag на систему Ubuntu 22.04.

Предпосылки

  • Сервер с Ubuntu 22.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Обновите систему

Свежая установка Ubuntu 22.04 требует обновления пакетов до последних доступных версий.

1
sudo apt-get update -y && sudo apt-get upgrade -y

Установка PHP и других зависимостей Composer

Все необходимые пакеты можно установить при помощи команды:

1
sudo apt install unzip make composer

Установка стека веб-серверов

Мы будем использовать Nginx с PHP и PostgreSQL для базы данных.

Выполните следующее для установки необходимых пакетов:

1
sudo apt install postgresql postgresql-contrib nginx

Установка часто используемых модулей.

1
sudo apt install php8.1-{bcmath,fpm,xml,zip,intl,ldap,gd,cli,tidy,bz2,dom,curl,mbstring,pgsql,opcache,soap,cgi}

Настройте PostgreSQL для Wallabag

Создайте пользователя и базу данных для Wallabag:

1
2
3
sudo -u postgres psql -c "CREATE USER wallabag WITH PASSWORD 'yourpassword';"
sudo -u postgres psql -c "CREATE DATABASE wallabag_db OWNER wallabag;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE wallabag_db TO wallabag;"

Установка Wallabag

Поскольку Wallabag размещен на GitHub, мы будем клонировать репозиторий на локальном уровне:

1
2
sudo git clone https://github.com/wallabag/wallabag.git
sudo mv ~/wallabag/ /var/www/

Затем назначьте право собственности на каталог www-data, который используется nginx.

1
sudo chown -R www-data:www-data /var/www/wallabag

Убедитесь, что правильные разрешения установлены.

1
sudo chmod -R 755 /var/www/wallabag

Не рекомендуется запускать сценарии установки как root, поэтому мы будем использовать пользователя nginx:

1
sudo -u www-data make install

Вам будет задано несколько вопросов во время установки.

Если вы хотите использовать http, введите http://wallabag.example.com, когда их попросят доменное имя и пропустите часть учебника.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
database_driver (pdo_mysql): pdo_pgsql
database_driver_class (null): Press Enter
database_host (127.0.0.1): 127.0.0.1
database_port (null): 5432
database_name (wallabag): wallabag_db
database_user (root): wallabag
database_password (null): yourpassword
database_path (null): Press Enter
database_table_prefix (wallabag_): Prefix of your choice or Press Enter for the default.
database_socket (null): Press Enter
database_charset (utf8mb4): UTF-8
domain_name ('https://your-wallabag-url-instance.com'): http://wallabag.example.com

Вам также будет предложено получить информацию о SMTP для получения почты, касающихся забытого пароля или двухфакторной аутентификации. Если вы хотите использовать стороннюю службу SMTP, такую как Mailgun или SendGrid, вы можете заполнить оставшиеся значения или просто нажать Enter. Введите False против параметра fosuser_registration, если вы не хотите, чтобы кто-то регистрировался на вашем сайте. Также измените значение секретного параметра. Если у вас есть большие данные для импорта, установите Rabbitmq или Redis и введите значения, когда их спросили.

При запросе на сброс существующей базы данных нажмите Enter, чтобы использовать опцию по умолчанию (NO). Вас также попросят создать пользователя администратора.

Если вы правильно выполнили шаги, вы успешно установили Wallabag на Ubuntu. Теперь вы должны иметь доступ к нему на http://wallabag.example.com. Для лучшей безопасности/конфиденциальности вам следует рассмотреть возможность использования доменного имени с HTTPS.

Настройка SMTP

Если вы хотите настроить базовый SMTP-сервер и не использовать сторонние сервисы SMTP, установите Mailutils.

1
sudo apt install mailutils

Настройте Nginx

Пришло время настроить нашу установку nginx, прежде чем мы продолжим фактическую установку. Предполагая, что доменное имя, которое вы используете для Wallabag - это wallabag.example.com.

Затем создайте виртуальный хост для сайта.

1
sudo nano /etc/nginx/sites-available/wallabag.conf

Вставьте следующую конфигурацию, которая работает с Wallabag.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
server {
  server_name wallabag.example.com;
  root /var/www/wallabag/web;

  location / {
    # try to serve file directly, fallback to app.php
    try_files $uri /app.php$is_args$args;
  }
  location ~ ^/app\.php(/|$) {
    fastcgi_pass unix:/run/php/php8.1-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;
}

error_log /var/log/nginx/wallabag_error.log;
access_log /var/log/nginx/wallabag_access.log;
}

Сохраните файл, нажав Ctrl + X и введя Y при запросе. Далее нам нужно включить эту конфигурацию. Для этого создайте ссылку из нее на каталог с поддержкой сайтов.

1
sudo ln -s /etc/nginx/sites-available/wallabag.conf /etc/nginx/sites-enabled/wallabag.conf

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

1
sudo nano /etc/nginx/nginx.conf

Найдите директиву server_names_hash_bucket_size и удалите символ #:

1
server_names_hash_bucket_size 64;

Сохраните файл. Далее убедитесь, что в конфигурациях nginx нет ошибок.

1
sudo nginx -t

Если нет проблем, перезапустите nginx, чтобы включить новые изменения.

1
sudo systemctl restart nginx.service

Во время установки он попросит вас выбрать тип конфигурации для Postfix. Выберите интернет-сайт и продолжайте. Введите wallabag.example.com. Вот и всё.

Настройте HTTPS

Мы будем использовать Let’s Encrypt, чтобы настроить HTTPS для нашей установки Wallabag. Добавьте следующий репозиторий для инструмента Certbot.

1
sudo add-apt-repository ppa: certbot/certbot

Установите пакет Certbot Nginx из репозитория.

1
sudo apt install python-certbot-nginx

Получите сертификат для вашего домена wallabag.example.com.

1
sudo certbot --nginx -d wallabag.example.com

Если это ваш первый раз с инструментом Certbot, вам будет предложено предоставить электронное письмо и согласиться с условиями обслуживания. Вас также спросят, хотите ли вы, чтобы ваша электронная почта была передана с EFF (электронный Frontier Foundation). Выберите N, если вы не хотите, чтобы EFF отправил вам электронное письмо по электронной почте об их новостях и кампаниях.

Если это успешно, Certbot спросит вас, как вы хотите настроить свои настройки HTTPS.

1
2
3
4
5
6
7
8
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Выберите 2, так как мы хотим, чтобы все запросы были перенаправлены на HTTPS.

Вот и всё. Ваш домен HTTPS живой. Certbot автоматически продлевает ваш домен через каждые 90 дней. Чтобы проверить процесс обновления, сделайте сухой пробег.

1
sudo certbot rebend-Dry-Run

Если вы не видите никаких ошибок, это означает, что все идеально.

Настройка Wallabag

Теперь, когда у нас есть Wallabag, откройте свой домен. Вы должны увидеть следующий экран.

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

Вы должны включить двухфакторную аутентификацию. Чтобы сделать это, нажмите кнопку «Конфигурация слева» и выберите вкладку «Пользовательская информация» на следующем экране. Включите двухфакторную аутентификацию Checkmark, чтобы включить ее.

Вы можете импортировать свои данные из Pockets, Instapaper, Pinboard и закладок из браузеров на основе Firefox и Chrome.

Wallabag предоставляет вам множество приложений для каждого браузера, мобильного или KOReader который имеет нативную интеграцию с Wallabag. Также я ранее установил минималистский веб rss-ридер Miniflux который имеет интеграцию с Wallabag и сохраняет статьи.

Обновление Wallabag

Чтобы обновить зависимости Wallabag до последней версии, используйте команду update:

1
sudo -u www-data make update

После обновления проверьте файлы composer.json и composer.lock.

Если вам понравился этот пост об установке Wallabag на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях. Спасибо.