Quay lại danh sách
Tin tức công nghệ

Hướng dẫn tự host Docuseal trên VPS kết hợp Cloudflare R2: Giải pháp ký số nội bộ tối ưu chi phí và bảo mật

4 tháng 6, 2026

Giới thiệu về xu hướng số hóa tài liệu và ký số nội bộ

Trong kỷ nguyên số hóa mạnh mẽ ngày nay, việc chuyển đổi từ quy trình ký duyệt tài liệu giấy sang ký số không còn là một lựa chọn, mà đã trở thành yêu cầu bắt buộc đối với các doanh nghiệp muốn tối ưu hóa hiệu suất vận hành. Tuy nhiên, việc sử dụng các dịch vụ ký số thương mại dùng chung (SaaS) thường đi kèm với những thách thức lớn về chi phí bản quyền theo số lượng người dùng và nguy cơ rò rỉ dữ liệu nhạy cảm.

Để giải quyết bài toán này, xu hướng tự lưu trữ (self-hosting) các nền tảng mã nguồn mở đang được nhiều doanh nghiệp ưu tiên lựa chọn. Trong đó, Docuseal nổi lên như một giải pháp thay thế hoàn hảo cho các nền tảng lớn như DocuSign hay Adobe Sign. Bài viết này sẽ hướng dẫn bạn chi tiết cách triển khai nền tảng ký số Docuseal trên máy chủ ảo cá nhân (VPS), kết hợp cùng dịch vụ lưu trữ đối tượng Cloudflare R2 để tạo nên một hệ thống ký số nội bộ mạnh mẽ, bảo mật và tiết kiệm chi phí tối đa.

Tại sao nên kết hợp Docuseal và Cloudflare R2?

Docuseal cung cấp một giao diện trực quan, dễ sử dụng cho phép tạo mẫu, gửi và ký các tài liệu PDF một cách nhanh chóng. Việc tự triển khai Docuseal kết hợp với Cloudflare R2 mang lại nhiều lợi ích chiến lược:

  • Làm chủ hoàn toàn dữ liệu: Toàn bộ hợp đồng, tài liệu nhân sự, hóa đơn và thông tin ký kết của doanh nghiệp được lưu trữ riêng biệt, không phụ thuộc vào nhà cung cấp bên thứ ba.
  • Tối ưu hóa chi phí lưu trữ: Cloudflare R2 có chính sách miễn phí hoàn toàn chi phí băng thông truyền tải dữ liệu (Egress fees) và cung cấp hạn mức lưu trữ miễn phí lên tới 10GB, giúp doanh nghiệp tiết kiệm khoản ngân sách lớn khi quy mô tài liệu tăng lên.
  • Hiệu suất và độ ổn định cao: Tách biệt phần xử lý logic ứng dụng (trên VPS) và phần lưu trữ file tài liệu (trên Cloudflare R2) giúp giảm tải cho máy chủ, đảm bảo hệ thống vận hành mượt mà ngay cả khi có nhiều người truy cập cùng lúc.

Các bước chuẩn bị trước khi cài đặt

Trước khi bắt đầu quá trình cấu hình, bạn cần chuẩn bị sẵn các tài nguyên sau:

  1. Một máy chủ ảo (VPS) chạy hệ điều hành Ubuntu (khuyến nghị phiên bản 22.04 LTS hoặc mới hơn) với cấu hình tối thiểu từ 1 vCPU và 2GB RAM.
  2. Một tên miền (Domain) đã được trỏ về IP của VPS và được quản lý qua Cloudflare để thiết lập SSL/TLS mã hóa kết nối an toàn.
  3. Tài khoản Cloudflare đã kích hoạt dịch vụ R2 Storage và đã tạo sẵn một Bucket chuyên dụng cho Docuseal.
  4. Docker và Docker Compose đã được cài đặt sẵn trên VPS để đơn giản hóa quy trình triển khai ứng dụng.

Hướng dẫn triển khai chi tiết từng bước

Bước 1: Cấu hình Cloudflare R2 Bucket

Đầu tiên, bạn truy cập vào bảng điều khiển Cloudflare, chọn mục R2 Overview và tiến hành tạo một Bucket mới (ví dụ tên là docuseal-storage). Sau đó, bạn cần tạo một API Token với quyền Edit đối với Bucket này. Hãy lưu lại các thông tin quan trọng sau:

  • Access Key ID
  • Secret Access Key
  • Endpoint URL (đường dẫn S3 API dành riêng cho tài khoản của bạn)
Lưu ý bảo mật: Không bao giờ chia sẻ công khai các chuỗi mã khóa này vì chúng nắm quyền kiểm soát toàn bộ kho tài liệu ký số của bạn.

Bước 2: Tạo cấu trúc thư mục và file Docker Compose trên VPS

Kết nối vào VPS thông qua SSH bằng quyền tài khoản có khả năng thực thi lệnh sudo. Tiến hành tạo một thư mục riêng cho dự án và di chuyển vào thư mục đó:

mkdir -p ~/docuseal && cd ~/docuseal

Tiếp theo, tạo file docker-compose.yml bằng trình soạn thảo văn bản nano hoặc vim để định nghĩa môi trường chạy cho Docuseal:

nano docker-compose.yml

Dán đoạn nội dung cấu hình chuẩn dưới đây vào file. Đoạn cấu hình này thiết lập container Docuseal kết nối trực tiếp đến kho lưu trữ Cloudflare R2 thông qua giao thức tương thích S3:

version: '3.8'
services:
  docuseal:
    image: docuseal/docuseal:latest
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=sqlite3:///data/docuseal.db
      - STORAGE_PROVIDER=s3
      - S3_BUCKET=docuseal-storage
      - S3_ACCESS_KEY_ID=your_cloudflare_r2_access_key_id
      - S3_SECRET_ACCESS_KEY=your_cloudflare_r2_secret_access_key
      - S3_ENDPOINT=https://your_cloudflare_account_id.r2.cloudflarestorage.com
      - S3_REGION=auto
      - S3_FORCE_PATH_STYLE=true
      - SECRET_KEY_BASE=your_generated_long_random_string
    volumes:
      - ./data:/data
    restart: always

Hãy chắc chắn rằng bạn đã thay thế các chuỗi your_... bằng thông tin thực tế từ tài khoản Cloudflare của mình. Chuỗi SECRET_KEY_BASE nên là một đoạn ký tự ngẫu nhiên dài để đảm bảo an toàn cho phiên đăng nhập.

Bước 3: Khởi động hệ thống Docuseal

Sau khi lưu file cấu hình, tiến hành kích hoạt container chạy ngầm bằng lệnh:

docker compose up -d

Bạn có thể kiểm tra trạng thái hoạt động của hệ thống bằng lệnh docker compose ps. Nếu mọi thứ hiển thị trạng thái Up, ứng dụng đã sẵn sàng tiếp nhận kết nối trên cổng 3000.

Bước 4: Cấu hình Nginx Reverse Proxy và chứng chỉ SSL

Để đảm bảo tính chuyên nghiệp và tính bảo mật bắt buộc của hệ thống ký số, bạn cần cấu hình một Reverse Proxy để người dùng truy cập thông qua tên miền dạng HTTPS (ví dụ: kyso.congty.com) thay vì dùng địa chỉ IP kèm cổng kết nối thô.

Cài đặt Nginx và Certbot (để lấy chứng chỉ SSL Let's Encrypt miễn phí):

sudo apt update
sudo apt install nginx certbot python3-certbot-nginx -y

Tạo file cấu hình virtual host cho tên miền của bạn và trỏ proxy ngược về địa chỉ http://localhost:3000. Cuối cùng, chạy lệnh sudo certbot --nginx để tự động cấu hình chứng chỉ bảo mật SSL, mã hóa toàn bộ luồng truyền tải dữ liệu giữa trình duyệt của người dùng và máy chủ VPS.

Kiểm tra và vận hành thực tế hệ thống ký số

Truy cập vào tên miền đã cấu hình trên trình duyệt web. Ở lần truy cập đầu tiên, hệ thống sẽ yêu cầu bạn khởi tạo tài khoản quản trị viên tối cao (Admin account). Sau khi đăng nhập thành công, bạn có thể thực hiện kiểm tra các tính năng chính:

  • Tải tài liệu lên: Hãy thử tải lên một file tài liệu PDF mẫu và tiến hành kéo thả các trường thông tin như: Chữ ký, Họ tên, Ngày ký, Văn bản tùy chọn.
  • Gửi yêu cầu ký: Nhập thông tin email của người nhận để kiểm tra tính năng gửi luồng ký tự động.
  • Kiểm tra lưu trữ trên Cloudflare R2: Sau khi tài liệu được tải lên hoặc ký hoàn tất, hãy quay lại giao diện quản trị Cloudflare R2 để xác minh xem các file PDF đã được tự động lưu trữ đồng bộ sang Bucket hay chưa. Nếu file xuất hiện trên Bucket, cấu hình kết nối của bạn đã hoàn toàn chính xác.

Kết luận và các lưu ý về bảo mật

Việc kết hợp Docuseal và Cloudflare R2 mang lại một giải pháp tự host ký số nội bộ cực kỳ mạnh mẽ, linh hoạt và tối ưu chi phí cho các doanh nghiệp đang trên đà chuyển đổi số. Hệ thống không chỉ giúp loại bỏ hoàn toàn chi phí bản quyền định kỳ mà còn đảm bảo toàn quyền kiểm soát dữ liệu nội bộ nghiêm ngặt.

Để hệ thống vận hành an toàn lâu dài, doanh nghiệp cần chú ý thực hiện định kỳ việc sao lưu (backup) thư mục dữ liệu trên VPS, thiết lập cơ chế xác thực hai lớp (2FA) cho các tài khoản quản trị và thường xuyên cập nhật phiên bản mới nhất của Docker Image Docuseal nhằm vá các lỗ hổng bảo mật phát sinh nếu có.