Hướng Dẫn Tự Host Excalidraw Trên Docker VPS: Làm Chủ Nền Tảng Vẽ Sơ Đồ Và Cộng Tác Nội Bộ Cho Doanh Nghiệp
Giới thiệu về Excalidraw và Xu hướng Tự Host (Self-hosting)
Trong kỷ nguyên số hóa và làm việc từ xa, việc truyền tải ý tưởng một cách trực quan trở nên quan trọng hơn bao giờ hết. Các công cụ vẽ sơ đồ tư duy, phác thảo UI/UX và bảng trắng kỹ thuật số (digital whiteboard) đã trở thành trợ thủ đắc lực cho các đội ngũ phát triển sản phẩm, thiết kế và quản lý dự án. Trong số đó, Excalidraw nổi lên như một hiện tượng nhờ vào giao diện tối giản, phong cách vẽ tay (hand-drawn) thân thiện và khả năng phản hồi mượt mà.
Tuy nhiên, đối với các doanh nghiệp, tổ chức tài chính hoặc các dự án có tính bảo mật cao, việc sử dụng phiên bản đám mây công cộng (Cloud) của các bên thứ ba luôn tiềm ẩn những rủi ro về an toàn thông tin và tuân thủ pháp lý. Chính vì vậy, giải pháp tự host (self-hosting) Excalidraw trên hạ tầng VPS nội bộ (On-premises hoặc Private Cloud) sử dụng công nghệ Docker đang trở thành xu hướng tất yếu. Bài viết này sẽ hướng dẫn bạn từng bước chi tiết để triển khai hệ thống này một cách chuyên nghiệp và tối ưu nhất.
Tại sao Doanh nghiệp nên Tự Host Excalidraw trên Docker VPS?
Việc dịch chuyển từ nền tảng Cloud công cộng về hệ thống VPS nội bộ mang lại ba lợi ích cốt lõi cho doanh nghiệp:
- Bảo mật và Kiểm soát Dữ liệu Tuyệt đối: Mọi sơ đồ chiến lược, kiến trúc hệ thống bí mật hoặc quy trình vận hành nội bộ sẽ được lưu trữ hoàn toàn trên server của bạn. Không một bên thứ ba nào có quyền tiếp cận nguồn tài nguyên quý giá này.
- Tối ưu hóa Chi phí: Thay vì phải trả chi phí bản quyền theo số lượng người dùng (Per-user pricing) hàng tháng, doanh nghiệp chỉ cần đầu tư một khoản cố định cho hạ tầng VPS và có thể phục vụ cho hàng trăm, hàng nghìn nhân sự nội bộ.
- Khả năng Tích hợp và Tùy biến Cao: Khi tự vận hành, bạn có thể dễ dàng cấu hình hệ thống xác thực tập trung (SSO/LDAP), tùy chỉnh tên miền riêng (Domain doanh nghiệp) và cấu hình sao lưu dữ liệu (Backup) định kỳ theo chính sách an toàn thông tin của công ty.
Sự kết hợp giữa sức mạnh đóng gói của Docker và tính linh hoạt của Excalidraw tạo ra một môi trường làm việc cộng tác thời gian thực (Real-time collaboration) vô cùng mạnh mẽ ngay trong mạng nội bộ của doanh nghiệp.
Yêu cầu Chuẩn bị Hệ thống trước khi Triển khai
Để quá trình cài đặt diễn ra suôn sẻ, hệ thống của bạn cần đáp ứng các tiêu chuẩn kỹ thuật cơ bản sau:
- Hạ tầng VPS/Server: Hệ điều hành Ubuntu Server (khuyến nghị bản 22.04 LTS hoặc mới hơn), cấu hình tối thiểu 2 vCPU, 2GB RAM và 20GB dung lượng lưu trữ trống.
- Môi trường phần mềm: Đã cài đặt sẵn Docker và Docker Compose (phiên bản V2).
- Mạng và Tên miền: Một tên miền định danh (ví dụ:
draw.company.com) đã được trỏ IP về VPS, cùng với quyền cấu hình Firewall/Security Group để mở các cổng mạng cần thiết (80, 443).
Hướng dẫn Cài đặt Excalidraw từng bước với Docker Compose
Excalidraw bao gồm hai thành phần chính: Client (Giao diện web trực quan) và Room Server (Cơ sở hạ tầng phục vụ tính năng cộng tác thời gian thực - Collaboration). Chúng ta sẽ triển khai cả hai thành phần này thông qua một tệp cấu hình duy nhất.
Bước 1: Khởi tạo thư mục dự án
Truy cập vào VPS thông qua SSH và tạo một thư mục chuyên biệt để quản lý cấu hình Excalidraw:
mkdir -p /opt/excalidraw && cd /opt/excalidraw
Bước 2: Cấu hình tệp docker-compose.yml
Tạo một tệp cấu hình có tên là docker-compose.yml bằng trình soạn thảo văn bản (như nano hoặc vim) và thiết lập nội dung như sau:
version: '3.8'
services:
excalidraw-client:
image: excalidraw/excalidraw:latest
ports:
- "8080:80"
environment:
- REACT_APP_BACKEND_V2_GET_URL=[https://draw-api.company.com/api/v2/](https://draw-api.company.com/api/v2/)
- REACT_APP_BACKEND_V2_POST_URL=[https://draw-api.company.com/api/v2/](https://draw-api.company.com/api/v2/)
- REACT_APP_WS_SERVER_URL=wss://draw-api.company.com
restart: always
excalidraw-room:
image: excalidraw/excalidraw-room:latest
ports:
- "5001:5001"
restart: always
Lưu ý quan trọng: Hãy thay thế draw-api.company.com bằng sub-domain chính xác mà bạn dự định phân tách cho dịch vụ xử lý backend và cộng tác.
Bước 3: Khởi chạy các Container
Thực hiện lệnh sau để Docker tự động tải các Image chính thức từ Docker Hub và khởi chạy dịch vụ dưới nền:
docker compose up -d
Kiểm tra trạng thái hoạt động của các container bằng lệnh docker compose ps để đảm bảo hệ thống đã ở trạng thái Up (đang chạy).
Cấu hình Reverse Proxy Nginx và Cấp chứng chỉ bảo mật SSL (HTTPS)
Để đảm bảo tính năng cộng tác hoạt động ổn định qua giao thức WebSocket bảo mật (wss://) và người dùng có thể truy cập an toàn qua HTTPS, việc cấu hình một Reverse Proxy như Nginx là bắt buộc.
Cấu hình Nginx Virtual Host
Tạo một tệp cấu hình Nginx mới cho Excalidraw và định tuyến lưu lượng truy cập từ cổng 80/443 vào các cổng nội bộ của Docker (8080 cho frontend và 5001 cho backend room). Đảm bảo các chỉ thị Upgrade và Connection được thiết lập chính xác để hỗ trợ WebSockets.
Kích hoạt SSL miễn phí với Let's Encrypt
Sử dụng công cụ Certbot để tự động hóa quá trình cấp phát và gia hạn chứng chỉ SSL thương mại miễn phí từ Let's Encrypt:
sudo certbot --nginx -d draw.company.com -d draw-api.company.com
Sau khi hoàn tất, toàn bộ dữ liệu truyền tải giữa máy tính của nhân viên và VPS nội bộ sẽ được mã hóa theo tiêu chuẩn quân sự cao cấp, ngăn chặn hoàn toàn nguy cơ tấn công nghe lén (Man-in-the-middle).
Chiến lược Bảo mật nâng cao và Bảo trì hệ thống định kỳ
Sau khi hệ thống đã đi vào hoạt động ổn định, nhà quản trị hệ thống (Sysadmin) cần thực hiện các biện pháp sau để duy trì tính an toàn và sẵn sàng cao cho dịch vụ:
1. Giới hạn quyền truy cập bằng IP Whitelisting hoặc VPN
Nếu Excalidraw chỉ phục vụ cho nhân sự nội bộ, hãy cấu hình tường lửa (UFW) hoặc Nginx để chỉ cho phép các IP thuộc dải mạng văn phòng hoặc các kết nối đi qua mạng ảo riêng (VPN) của công ty truy cập vào hệ thống này.
2. Thiết lập quy trình Sao lưu dữ liệu (Backup)
Mặc dù Excalidraw lưu trữ trạng thái vẽ tạm thời ở LocalStorage của trình duyệt người dùng, các phiên làm việc chung (Room) và dữ liệu chia sẻ vẫn cần được bảo vệ. Hãy thiết lập một script tự động sao lưu định kỳ cấu hình Docker và các phân vùng lưu trữ (Volumes) lên một phân xưởng lưu trữ độc lập (S3 Storage hoặc NAS nội bộ).
3. Cập nhật phiên bản tự động (Keep Up-to-Date)
Đội ngũ phát triển Excalidraw cập nhật tính năng mới và vá lỗi bảo mật liên tục. Bạn có thể sử dụng công cụ như Watchtower để tự động kiểm tra và cập nhật các container Excalidraw lên phiên bản mới nhất vào khung giờ thấp điểm (đêm muộn).
Lời kết
Tự host Excalidraw trên hạ tầng Docker VPS nội bộ không chỉ là bài toán tối ưu hóa chi phí vận hành cho doanh nghiệp, mà còn là lời khẳng định về cam kết an toàn thông tin và quyền tự chủ công nghệ. Với quy trình triển khai chuẩn hóa và kiến trúc tối giản của Docker, doanh nghiệp của bạn hoàn toàn có thể sở hữu một không gian sáng tạo và thiết kế mạnh mẽ, an toàn và chuyên nghiệp nhất.
