Tôi có một yêu cầu tìm một phần mềm self-hosted local, chuyên để tạo các bảng biểu hoặc sơ đồ, lưu trữ nội bộ và đương nhiên phải miễn phí. Tất nhiên, nếu phần mềm đó cài được trên một máy tính đơn bo mạch (SBC) như Orange Pi thì càng tốt. Còn gì tốt hơn so với việc dành hẳn một PC tốn điện bụi bặm và hay lỗi cho việc host phần mềm đó bằng một máy tính đơn bo mạch nhỏ gọn, ít tốn điện mà lại bền bỉ chạy 24/7 không biết mệt mỏi.
Đầu tiên, tôi tìm đến Draw.io. Đây là giải pháp dành cho mọi tình huống – từ vẽ kiến trúc hệ thống phức tạp đến… phác thảo sơ đồ ngồi trong buổi liên hoan công ty. 🍻
Tại sao Draw.io lại đỉnh?
- Đa năng như một IDE hoàn hảo
- Cần vẽ sơ đồ mạng? Có sẵn các biểu tượng router, switch, và server.
- Vẽ ERD (Entity Relationship Diagram)? Cũng có!
- Thiết kế luồng dữ liệu, sơ đồ quy trình (BPMN)? Chỉ cần kéo và thả!
- Self-hostable dành cho dân Dev
Bạn muốn tự kiểm soát dữ liệu và không phụ thuộc vào dịch vụ bên thứ ba? Clone repo từ Docker Hub, chạy lệnh:docker run -d --name=drawio -p 8080:8080 jgraph/drawio
Và bạn đã có một ứng dụng vẽ hoàn chỉnh chạy trên Orange Pi của mình – không bị giới hạn tài nguyên hay lo về bảo mật. Truy cập nó từ http://IP_của_ORANGEPI là xong
- Tích hợp mượt mà với mọi công cụ
- GitHub: Lưu sơ đồ dưới dạng file
.drawio
trong repo của bạn. - Google Drive & OneDrive: Đồng bộ hóa sơ đồ để dễ dàng cộng tác với team.
- Confluence & Jira: Tích hợp để thêm sơ đồ trực tiếp vào tài liệu hoặc task.
- GitHub: Lưu sơ đồ dưới dạng file
- Giao diện trực quan nhưng không “cục súc”
Dễ dùng như Google Docs nhưng mạnh mẽ như Visio. Bạn có thể vẽ nhanh một sơ đồ UML mà không cần phải lục lại tài liệu hướng dẫn.
Tuy nhiên, cảm quan tôi cảm thấy phần mềm này vẫn hơi đơn điệu, không nhiều màu sắc, không đáp ứng lắm.
Vì thế tôi tìm đến Excalidraw. Và đây là chân ái của yêu cầu bên trên.
Excalidraw: Công cụ vẽ tay chất lượng lập trình viên, dành cho những người ghét phức tạp 🎨👨💻
Bạn là lập trình viên? Bạn cần vẽ nhanh một sơ đồ kiến trúc phần mềm, một flow chart đơn giản, hay chỉ là muốn “nghịch ngợm” chút với đồng nghiệp trên một canvas? Excalidraw chính là vũ khí bí mật bạn cần – vừa tiện lợi, vừa tối giản, mà lại còn… self-hostable! 🚀
Excalidraw có gì mà dân dev thích?
- UI tối giản, chỉ tập trung vào vẽ
Không cần phải lạc lối giữa rừng menu và popup phức tạp. Excalidraw chỉ có canvas trống và vài công cụ cơ bản: đường, hình, văn bản, và mũi tên – đúng thứ bạn cần để vẽ mọi thứ từ API flow đến microservices! - Hỗ trợ teamwork chuẩn real-time
Muốn cùng đồng đội brainstorm một diagram CI/CD pipeline? Cứ quăng link Excalidraw vào Slack hoặc Discord, và cùng nhau “vẽ bậy” mà không sợ ai làm gãy flow. - Open Source, tự host dễ dàng
Dev thích gì? Kiểm soát mọi thứ! Với Excalidraw, bạn có thể tự host trên server của mình. Clone repo, chạy lệnhdocker-compose up
, và thế là bạn đã có một phiên bản Excalidraw xịn xò của riêng mình – không lo bị “rate limit” hay mất dữ liệu! - Hỗ trợ cho lập trình viên bận rộn
- Copy/paste JSON để lưu và chỉnh sửa lại sau.
- Export hình ảnh ra PNG hoặc SVG, nhanh gọn như viết một hàm
hello_world()
. - Dễ dàng tích hợp vào các project lớn hoặc nhúng vào web app riêng của bạn.
Cách lập trình viên dùng Excalidraw:
- Thiết kế nhanh: Lên kiến trúc microservices, luồng dữ liệu, hoặc thậm chí cấu trúc database chỉ với vài nét vẽ nguệch ngoạc.
- Diễn giải ý tưởng: Cần giải thích cách
async/await
hoạt động cho đồng nghiệp? Chỉ cần một mũi tên và vài hình chữ nhật! - Troll đồng đội: Vẽ một cái sơ đồ “nghịch ngợm” rồi giả bộ nghiêm túc thuyết trình – ai bảo lập trình viên không có khiếu hài hước? 😏
Làm thế nào để thử Excalidraw?
- Truy cập excalidraw.com nếu bạn muốn dùng ngay bản online thử
- Hoặc tự host bản của riêng bạn trên Orange Pi. Vì Excalidraw chưa có bản build docker ARM64 cho Orange Pi, nên tôi đã build 1 bản và đặt trên dockerhub. Giờ bạn chỉ cần tải về file docker-compose trên gist sau: https://gist.github.com/thanhtantran/40289693bb8c75b43d8d8494fd79a34f
Sau đó, mở trình duyệt và truy cập: http://IP_của_ORANGEPI là xong
Excalidraw không phải là phần mềm vẽ đẹp nhất, nhưng nó là công cụ nhanh, mạnh, và đủ xài – đúng chuẩn triết lý KISS (Keep It Simple, Stupid) của dân lập trình. Hãy thử ngay hôm nay để thấy rằng vẽ sơ đồ không nhất thiết phải phức tạp như debug code trong production! 😄
So sánh vui: Draw.io vs Excalidraw
- Draw.io: Dành cho những người muốn hoàn thành công việc – chính xác, gọn gàng, và chuyên nghiệp.
- Excalidraw: Dành cho những ai thích sự phóng khoáng, vui vẻ, và vẽ “méo cũng thành hay”.
Video demo 2 phần mềm miễn phí này trên Orange Pi 5 MAX