Cách cài đặt phần mềm lập ngân sách thực tế trên máy chủ Debian 12

theanh

Administrator
Nhân viên
Actual Budget là phần mềm quản lý tài chính nguồn mở tập trung vào quyền riêng tư và được xây dựng dựa trên "Envelope Style Budgeting". Actual được viết bằng Node.js và có thể cài đặt cục bộ trong thời gian ngắn. Nó hỗ trợ đồng bộ hóa nhiều thiết bị và tùy chọn mã hóa đầu cuối.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Actual Budgeting System trên máy chủ Debian 12. Bạn sẽ cài đặt Actual với Nginx làm proxy ngược và bảo mật nó bằng HTTPS thông qua Certbot và Letsencrypt.

Điều kiện tiên quyết​

Để bắt đầu với hướng dẫn này, hãy đảm bảo bạn có:
  • Máy chủ Debian 12
  • Người dùng không phải root có quyền quản trị viên
  • Tên miền được trỏ đến địa chỉ IP của máy chủ

Cài đặt Node.js và Yarn​

Trước khi cài đặt Actual, bạn phải đảm bảo rằng trình quản lý gói Node.js, Git và Yarn đã được cài đặt trên hệ thống của bạn. Hiện tại, Actual yêu cầu Node v18 trở lên, có thể cài đặt từ kho lưu trữ Debian chính thức.

Trước tiên, hãy chạy lệnh 'apt' bên dưới để cập nhật chỉ mục gói Debian của bạn và cài đặt các gói cơ bản như Node.js, NPM và Git. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo apt update
sudo apt install nodejs npm git

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22315%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy cài đặt trình quản lý gói Yarn bằng lệnh 'npm' bên dưới. Trong ví dụ này, bạn sẽ cài đặt Yarn trên toàn cầu hoặc trên toàn hệ thống.
Mã:
npm install --global yarn
Khi hoàn tất, hãy kiểm tra phiên bản Node.js và Yarn bằng lệnh bên dưới.
Mã:
node --version
yarn --version
Trong kết quả bên dưới, bạn có thể thấy Node.js 18 và Yarn 1.22 đã được cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22560%22%20height=%22354%22%3E%3C/svg%3E

Tải xuống mã nguồn Actual Budget​

Sau khi các phần phụ thuộc được cài đặt, bạn đã sẵn sàng tải xuống mã nguồn Actual, cài đặt các phần phụ thuộc thông qua Yarn, cấu hình Actual bằng tệp 'config.json', sau đó chạy Actual thông qua dòng lệnh. Ngoài ra, bạn cần một người dùng chuyên dụng để cài đặt và chạy Actual trên hệ thống của bạn.

Đăng nhập vào người dùng của bạn bằng lệnh bên dưới.
Mã:
su - username
Tải xuống mã nguồn Actual Budget bằng lệnh 'git' bên dưới.
Mã:
git clone https://github.com/actualbudget/actual-server.git

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22275%22%3E%3C/svg%3E


Đi đến thư mục 'actual-server' và cài đặt các phụ thuộc JavaScript bằng lệnh 'yarn' bên dưới.
Mã:
cd actual-server
yarn install
Bạn có thể xem bên dưới quá trình cài đặt các phụ thuộc JavaScript thông qua trình quản lý gói Yarn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22281%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy tạo tệp mới 'config.json' bằng trình chỉnh sửa 'nano'.
Mã:
nano config.json
Chèn cấu hình bên dưới để chạy Actual trên địa chỉ IP cục bộ với cổng mặc định 5006.
Mã:
{
 "hostname": "127.0.0.1",
 "port": 5006
}
Lưu tệp và thoát khỏi trình chỉnh sửa.

Cuối cùng, chạy lệnh 'yarn start' bên dưới để khởi động phần mềm thực tế. Thao tác này sẽ mở cổng 5006 trên máy chủ cục bộ của bạn hoặc địa chỉ '127.0.0.1' sẽ được ứng dụng sử dụng.
Mã:
yarn start
Nhấn Ctrl+c để kết thúc quá trình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22737%22%20height=%22187%22%3E%3C/svg%3E

Chạy Actual ở chế độ nền như một dịch vụ Systemd​

Bây giờ bạn đã cài đặt và cấu hình Actual, hãy tạo một tệp dịch vụ systemd mới để chạy Actual ở chế độ nền như một dịch vụ systemd.

Tạo một tệp dịch vụ systemd mới '/etc/systemd/system/actual.service' với 'nano' sau editor.
Mã:
sudo nano /etc/systemd/system/actual.service
Chèn cấu hình bên dưới để chạy Actual ở chế độ nền như một dịch vụ systemd. Đảm bảo thay đổi 'User' và 'Group' mặc định bằng tên người dùng của bạn, sau đó thay đổi 'WorkingDirectory' bằng đường dẫn phù hợp của bạn.
Mã:
[Unit]
Description=Actual-Server (https://actualbudget.org)
After=network.target

[Service]
User=flash
Group=flash
WorkingDirectory=/home/flash/actual-server/
ExecStart=/usr/local/bin/yarn start
Restart=on-watchdog

[Install]
WantedBy=multi-user.target
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Bây giờ hãy chạy lệnh 'systemctl' bên dưới để tải lại trình quản lý systemd và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl daemon-reload
Sau đó, khởi động và kích hoạt 'actual.service' bằng lệnh sau. Lệnh này sẽ khởi động 'actual.service' ở chế độ nền và cho phép nó tự động chạy khi hệ thống khởi động.
Mã:
sudo systemctl enable --now actual.service

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22194%22%3E%3C/svg%3E


Kiểm tra trạng thái 'actual.service' bằng lệnh bên dưới. Bạn sẽ thấy rằng 'actual.service' đang chạy và được bật trên hệ thống của bạn.
Mã:
sudo systemctl status actual.service

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E

Thiết lập Nginx dưới dạng Reverse Proxy​

Lúc này, Actual đang chạy ở chế độ nền như một dịch vụ systemd. Trong phần này, bạn sẽ cài đặt Nginx và cấu hình nó như một proxy ngược cho Actual. Sau đó, bạn sẽ tạo chứng chỉ SSL cho triển khai Actual của mình thông qua Certbot và Letsencrypt.

Trước tiên, hãy chạy lệnh 'apt' bên dưới để cài đặt Nginx, Certbot và plugin Python3 Certbot Nginx. Nhập 'Y' để tiếp tục cài đặt.
Mã:
sudo apt install nginx certbot python3-certbot-nginx -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22448%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy tạo tệp khối máy chủ Nginx mới '/etc/nginx/sites-available/actual-budget' với trình soạn thảo 'nano'.
Mã:
sudo nano /etc/nginx/sites-available/actual-budget
Chèn cấu hình bên dưới và đảm bảo thay đổi tham số 'server_name' bằng tên miền của bạn.
Mã:
server {
listen 80;
server_name budget.howtoforge.local;

location / {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;

set $upstream_app 127.0.0.1;
set $upstream_port 5006;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình soạn thảo.

Bây giờ hãy chạy lệnh bên dưới để kích hoạt 'actual-budget' khối máy chủ và xác minh cấu hình Nginx của bạn. Nếu không có lỗi, bạn sẽ nhận được đầu ra như 'cú pháp ok - thử nghiệm thành công'.
Mã:
sudo ln -s /etc/nginx/sites-available/actual-budget /etc/nginx/sites-enabled/
sudo nginx -t

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22184%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh bên dưới để khởi động lại và xác minh trạng thái dịch vụ Nginx. Đảm bảo rằng máy chủ web Nginx đang chạy.
Mã:
sudo systemctl restart nginx
sudo systemctl status nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh 'certbot' bên dưới để tạo chứng chỉ SSL và bảo mật cài đặt phần mềm thực tế của bạn. Đảm bảo thay đổi tên miền và địa chỉ email trong lệnh sau.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email  -d budget.howtoforge.local
Khi quá trình hoàn tất, cài đặt Actual của bạn sẽ được bảo mật bằng HTTPS thông qua Certbot và Letsencrypt. Chứng chỉ SSL của bạn có sẵn trong thư mục '/etc/letsencrypt/live/domain.com' và HTTPS được tự động bật trên tệp khối máy chủ của bạn.

Truy cập Actual Budget thông qua Trình duyệt web​

Truy cập tên miền của cài đặt Actual của bạn như https://budget.howtoforge.local. Nếu thành công, bạn sẽ thấy thông báo chào mừng đến Actual và được yêu cầu thiết lập mật khẩu.

Nhập mật khẩu mới của bạn và lặp lại, sau đó nhấp vào 'OK'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22537%22%20height=%22452%22%3E%3C/svg%3E


Sau khi cấu hình xong mật khẩu, hãy nhập mật khẩu của bạn để đăng nhập vào Bảng điều khiển Actual.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22622%22%20height=%22308%22%3E%3C/svg%3E


Lần đầu tiên, bạn sẽ được yêu cầu xem dữ liệu demo hoặc bắt đầu lại.

Nếu bạn đã quen với Actual, bạn có thể nhấp vào 'Bắt đầu lại', nhưng nếu bạn mới sử dụng Actual, hãy nhấp vào 'Xem bản demo' để nắm được cách sử dụng cơ bản của Actual.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22630%22%20height=%22456%22%3E%3C/svg%3E


Dưới đây là ví dụ về dữ liệu demo từ Hệ thống lập ngân sách thực tế.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22367%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt Actual, một phần mềm tài chính tập trung vào quyền riêng tư, trên máy chủ Debian 12. Bạn đã chạy Actual như một dịch vụ systemd ở chế độ nền, chạy trên proxy ngược Nginx. Hơn nữa, bạn cũng đã bảo mật Actual bằng HTTPS thông qua Certbot và Letsencrypt.
 
Back
Bên trên