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

Предварительные условия

  • Ubuntu 20.04 VPS.
  • Корневой доступ к вашему серверу (через пользователя с привилегиями sudo.)
  • Веб-сервер с PHP (инструкции ниже.)
  • База данных PostgreSQL (инструкции ниже.)

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

Обновите свою систему и установите необходимое программное обеспечение.

Сначала обновите индекс пакетов:

sudo apt update && sudo apt upgrade -y

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

sudo apt install unzip make composer

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

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

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

sudo apt install -y postgresql postgresql-contrib nginx php7.4-fpm php7.4-pgsql php7.4-cli php7.4-mbstring php7.4-curl php7.4-dom php7.4-gd php7.4-intl php7.4-tidy

Убедитесь, что Nginx и PostgreSQL включены и работают:

sudo systemctl enable --now nginx.service postgresql.service

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

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

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

Настройте Nginx

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

sudo mkdir -p /var/www/example.com/html

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

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

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

server {
    server_name example.com;
    root /var/www/example.com/html/web;

    location / {
        try_files $uri /app.php$is_args$args;
    }
    location ~ ^/app\.php(/|$) {
        # replace php7.4-fpm with whichever php 7.x version you are using
        fastcgi_pass unix:/run/php/php7.4-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 и удалите символ #:

server_names_hash_bucket_size 64;

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

sudo nginx -t

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

sudo systemctl restart nginx.service

Установка Wallabag

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

cd /var/www/example.com
sudo git clone https://github.com/wallabag/wallabag.git html

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

sudo chown -R www-data:www-data /var/www/example.com

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

sudo -u www-data make install

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

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

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): wallabagdb
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://example.com 

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

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

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

Настройка SMTP

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

sudo apt install mailutils

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

Настройте HTTPS

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

sudo add-apt-repository ppa: certbot/certbot

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

sudo apt install python-certbot-nginx

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

sudo certbot --nginx -d example.com

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

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

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 дней. Чтобы проверить процесс обновления, сделайте сухой пробег.

sudo certbot rebend-Dry-Run

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

Настройка Wallabag

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

1

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

2

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

3

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

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

4

Обновление Wallabag

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

sudo -u www-data make update

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