Cài đặt wallabag lên Ubuntu Server

Giới thiệu

wallabag là một ứng dụng mã nguồn mở để lưu các bài viết trên web và cho phép đọc chúng sau. Sử dụng được trên điện thoại thông minh, máy tính bảng hoặc máy đọc sách của bạn.

Ưu điểm

  • Có ứng dụng cho di động. Hỗ trợ Offline.
  • extension cho trình duyệt.
  • Miễn phí, miễn phí và miễn phí,
  • Mã nguồn mở.
  • Self Hosted.
    Mình khoái chú này vì chạy khá nhanh, hỗ trợ Offline trên điện thoại nên khi có bài nào hay, mình cứ lưu lại để rảnh rang đọc sau, cực kỳ tiện.

Yêu cầu hệ thống

  • Ubuntu Server.
  • PHP.
  • Nginx để làm Reverse Proxy.
  • Tên miền với chứng chỉ SSL đã được lấy miễn phí từ Let's Encrypt.
  • Cơ sở dữ liệu MariaDB (cũng có thể dùng Sqlite hoặc PortgreSQL).

Cài đặt

Tạo cơ sở dữ liệu

Đăng nhập vào tài khoản root

sudo mysql -u root -p

Tạo cơ sở dữ liệu wallabag và tài khoản wallabagdb, tên cơ sở dữ liệu và tài khoản cũng như mật khẩu tùy bạn

CREATE USER 'wallabag' IDENTIFIED BY 'password';
CREATE DATABASE wallabagdb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
GRANT ALL PRIVILEGES ON bookstackdb.* TO 'wallabag';
FLUSH PRIVILEGES;
exit;

Cài cái gói cần thiết

Ngoài PHP đã cài sẵn, cần cài thêm một số gói như sau

php-session, php-ctype, php-dom, php-hash, php-simplexml, php-json, php-gd, php-mbstring, php-xml, php-tidy, php-iconv, php-curl, php-gettext, php-tokenizer, php-bcmath, php-intl, php-fpm

tùy thuộc loại cơ sở dữ liệu mà thêm một trong ba gói

pdo_mysql, pdo_pgsql, pdo_sqlite

Tiến hành cài đặt

Clone git repo

git clone https://github.com/wallabag/wallabag.git

Chuyển toàn bộ về thư mục var/www

sudo mv wallabag /var/www/wallabag.com

Truy cập vào thư mục đó và cài đặt.

cd /var/www/wallabag
make install

Trong quá trình cài đặt, ứng dụng sẽ yêu cầu bạn nhập vào thông tin về cơ sở dữ liệu đã tạo ở trên, thông tin về tài khoản đăng nhập (email, tên đăng nhập, mật khẩu ...). Ngoài ra, nếu phát sinh thiếu gói nào thì hãy cài gói đó vào.
Chỉnh sửa file permissions

sudo chown -R www-data:www-data wallabag.com
sudo chmod -R 755 wallabag.com

Cấu hình Nginx

Tạo file cấu hình cho Nginx

sudo nano /etc/nginx/sites-available/wallabag.com

Và nhập vào nội dung sau

server {
    listen 80;
    server_name wallabag.com;
    return 301 https://$server_name$request_uri;
}
server {
	listen 443 ssl;
    server_name wallabag.com;
    root /var/www/wallabag.com/web;
    location / {
        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;
    }
    location ~ \.php$ {
        return 404;
    }
	ssl_certificate /etc/letsencrypt/live/wallabag.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wallabag.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    error_log /var/log/nginx/wallabag_error.log;
    access_log /var/log/nginx/wallabag_access.log;
}

Ánh xạ, kiểm tra cấu hình không lỗi thì khởi động lại Nginx

sudo ln -s /etc/nginx/sites-available/wallabag.com /etc/nginx/sites-enabled/wallabag.com
sudo nginx -t
sudo systemctl restart nginx

Xong, giờ chúng ta truy cập vào Tên miền, đăng nhập với tài khoản đã nhập lúc cài đặt. Chúc các bạn thành công.

Đổi mật khẩu khi quên

Khi mình cài, gõ nhầm mật khẩu nên sau đó không thể đăng nhập được. Để đổi mật khẩu, chúng ta làm như sau.
Trong thư mục /var/www/wallabag gõ lệnh

bin/console --env=prod fos:user:change-password

sau đó gõ tài khoản cần đổi mật khẩu và mật khẩu mới là xong.