Yêu cầu trước khi bắt đầu
Trên VPS:
- 1 VPS Linux (Ubuntu/Debian khuyến nghị), đã cài Docker + Docker
Compose plugin (
docker compose versionchạy được). - 1 domain thật, đã trỏ DNS A record về IP VPS (bắt buộc cho bước TLS ở §4 — DNS phải propagate xong trước khi xin chứng chỉ).
- Quyền SSH vào VPS.
age,Python3vàrsync(gói córrsync) cho backup/kiểm tra/kéo backup;rclonechỉ cần nếu bậtOFFSITE_REMOTE(§9).- Port 80 và 443 phải mở ra Internet ở CẢ 2 tầng: firewall của nhà
cung cấp cloud (Security Group trên AWS, Network Security Group trên
Azure, Firewall rules trên GCP…) và firewall trong hệ điều hành
(
ufw/iptablesnếu có bật). VPS mặc định thường chỉ mở sẵn port 22 (SSH) ở tầng cloud — dễ quên mở thêm 80/443, khiến bước §4 luôn thất bại với lỗiConnection refuseddù mọi thứ trong VPS đều đúng. Kiểm tra trước khi qua §4:Terminal window curl -I http://<domain-hoặc-ip> # từ máy khác, KHÔNG PHẢI từ trong VPS - Dung lượng đĩa: ngoài Postgres còn có volume ảnh (icon vật phẩm, avatar, ảnh gói). Ảnh đã nén WebP nên thường nhỏ, nhưng nên để trống tối thiểu vài GB và theo dõi (§10).
Không cần Git/Node.js/uv hay mã nguồn ứng dụng trên VPS — VPS chỉ
docker load image đã build sẵn rồi chạy. Python3 hệ thống được dùng bởi
các script backup để ghi/đọc manifest và tạo thông báo Slack.
Trên máy dev (máy build image):
- Docker (để
docker build/docker save). - Git (script build dùng
git rev-parse --short HEADđể ghi lại đúng commit vàoversion.json). - Python3 (script build dùng để đọc/ghi
version.json).
Áp dụng cho Portal v1.2.2