Tài liệu này hướng dẫn cách triển khai hệ thống VietQR Gateway Service lên môi trường Linux (Ubuntu, Debian, CentOS, RHEL, Alpine) theo chuẩn PaaS/SaaS với tên miền riêng và chứng chỉ SSL Let’s Encrypt tự động.
Tạo file .env từ file mẫu tại deploy/docker/.env.example:
cd deploy/docker
cp .env.example .env
nano .env
Nội dung .env:
DOMAIN=qr.yourdomain.com
PORT=8080
SCHEME=https
ACME_EMAIL=admin@yourdomain.com
VIETQR_API_KEYS=sk_live_tenant_prod_1,sk_live_tenant_prod_2
docker-compose -f docker-compose.prod.yml up -d
Container Caddy sẽ tự động trỏ đến Let’s Encrypt để đăng ký chứng chỉ SSL cho domain qr.yourdomain.com và chuyển tiếp yêu cầu đến Gateway Rust chạy tại cổng 8080.
Kiểm tra trạng thái:
docker-compose -f docker-compose.prod.yml ps
docker-compose -f docker-compose.prod.yml logs -f
Hệ thống cung cấp script tự động nhận diện kiến trúc CPU (x86_64, aarch64/ARM64, armv7l) và tải bản binary phát hành từ GitHub Release.
sudo bash deploy/linux/install.sh --domain qr.yourdomain.com --scheme https
Script sẽ tự động:
vietqr./opt/vietqr và copy tài nguyên assets, font./etc/vietqr/vietqr.env.vietqr.service.# Kiểm tra trạng thái
sudo systemctl status vietqr
# Khởi động lại
sudo systemctl restart vietqr
# Xem log thời gian thực
sudo journalctl -u vietqr -f
Nếu máy chủ của bạn đã có sẵn Nginx:
sudo cp deploy/reverse-proxy/nginx/vietqr.conf /etc/nginx/sites-available/vietqr.conf
sudo ln -s /etc/nginx/sites-available/vietqr.conf /etc/nginx/sites-enabled/
qr.yourdomain.com bằng tên miền của bạn:
sudo sed -i 's/qr.yourdomain.com/tenmien.cua.ban/g' /etc/nginx/sites-available/vietqr.conf
sudo certbot --nginx -d tenmien.cua.ban
sudo systemctl reload nginx
Truy cập qua trình duyệt hoặc cURL:
https://qr.yourdomain.com/healthhttps://qr.yourdomain.com/studiohttps://qr.yourdomain.com/image/970436-1234567890-compact2.png?amount=50000&addInfo=Testhttps://qr.yourdomain.com/qr/pay?bin=970436&acc=1234567890&amount=50000