228d4d14df4dbfe30e4745d3d60568ec02e462f6
DH-HIS Quản Lý Giao Ban Hằng Ngày (Golang Standalone)
Ứng dụng độc lập (Single Binary Executable) viết bằng Golang, nhúng toàn bộ giao diện Web, cơ chế quản trị kết nối CSDL PostgreSQL bảo mật mã hóa AES-256, khay hệ thống (System Tray) cho Windows, và chức năng tự động kiểm tra/cập nhật phiên bản từ Gitea Package/Release.
🌟 1. Điểm nổi bật & Tính năng chính
- Chỉ 1 file duy nhất (Single Binary Executable):
- Toàn bộ giao diện HTML, CSS, JavaScript, icon được nhúng trực tiếp vào file nhị phân qua
//go:embed. - Không cần cài Node.js, không cần thư mục
node_moduleshay web server bên ngoài. - Dung lượng nhẹ: ~7.3 MB trên Windows (
.exe) và ~6.8 MB trên Linux.
- Toàn bộ giao diện HTML, CSS, JavaScript, icon được nhúng trực tiếp vào file nhị phân qua
- Khay hệ thống (System Tray):
- Chạy trên Windows có icon khay hệ thống, không hiện cửa sổ console đen (
-H windowsgui). - Menu gồm:
- 🌐 Mở Báo Cáo Giao Ban
- ⚙️ Quản Trị & Cấu Hình
- 📜 Xem Nhật Ký / Log App
- 🔄 Kiểm Tra Cập Nhật
- ❌ Thoát Ứng Dụng
- Chạy trên Linux Server tự động chuyển sang chế độ Daemon / Service nền ổn định.
- Chạy trên Windows có icon khay hệ thống, không hiện cửa sổ console đen (
- Trang Quản Trị & Cấu Hình Kết Nối (
/admin):- Tùy chỉnh Cổng Web (Port), đường dẫn quản trị.
- Cấu hình kết nối PostgreSQL: Host, Port, User, Password, CSDL mặc định.
- Mã hóa AES-256-GCM: Mật khẩu và Token được tự động mã hóa dạng
ENC(...)khi lưu vàoconfig.json, không lộ bản rõ. - Nút "Thử Kết Nối (Test Connection)" kiểm tra thông suốt CSDL ngay trên web.
- Bảng quản lý danh sách CSDL các bệnh viện hiển thị trên dropdown.
- Nhật Ký Thời Gian Thực (Live Log Viewer):
- Ring buffer 500 dòng log gần nhất lưu trong bộ nhớ và ghi ra
logs/app.log. - Xem log trực tiếp trên trang quản trị có lọc theo cấp độ (INFO, WARN, ERROR, SQL) và tự động cuộn (Auto-scroll).
- Ring buffer 500 dòng log gần nhất lưu trong bộ nhớ và ghi ra
- Tự động kiểm tra & cập nhật phiên bản (Gitea Self-Update):
- Kết nối với Gitea Releases / Generic Package Registry qua Token cá nhân.
- Phát hiện phiên bản mới, xem ghi chú phát hành (Release Notes), tải và tự thay thế file binary đang chạy (in-place binary replacement).
🚀 2. Hướng dẫn biên dịch (Build)
Chạy script biên dịch có sẵn:
./build.sh
Kết quả sinh ra 2 file:
web-giao-ban: File thực thi standalone cho Linux.web-giao-ban.exe: File thực thi standalone cho Windows (chỉ cần copy sang máy Windows là click đúp chạy).
💻 3. Hướng dẫn sử dụng trên Windows
- Copy file
web-giao-ban.exevào thư mục bất kỳ trên máy Windows (Ví dụ:D:\DH-HIS\GiaoBan\). - Nhấp đúp vào
web-giao-ban.exeđể chạy. - Icon chữ thập y tế màu xanh sẽ xuất hiện ở Khay hệ thống (System Tray) góc dưới bên phải màn hình.
- Nhấp chuột phải vào icon khay hệ thống:
- Bấm "Mở Báo Cáo Giao Ban" để mở trình duyệt xem số liệu.
- Bấm "Quản Trị & Cấu Hình" để đổi thông số IP máy chủ hoặc CSDL.
- Bấm "Xem Nhật Ký / Log App" để kiểm tra log hoạt động.
- Bấm "Kiểm Tra Cập Nhật" để cập nhật phần mềm mới từ Gitea.
- Bấm "Thoát" để dừng ứng dụng.
🐧 4. Quản lý dịch vụ trên Linux (Systemd Service)
- Xem trạng thái:
./status.shhoặcsudo systemctl status web-giao-ban - Khởi động:
./start.shhoặcsudo systemctl start web-giao-ban - Dừng dịch vụ:
./stop.shhoặcsudo systemctl stop web-giao-ban - Khởi động lại:
./restart.shhoặcsudo systemctl restart web-giao-ban
🔒 5. Cấu trúc file cấu hình config.json
File config.json được tự động sinh lần đầu tiên và mã hóa bảo mật:
{
"server": {
"port": 3000,
"admin_path": "/admin",
"admin_password": "ENC(...)"
},
"database": {
"host": "192.168.50.79",
"port": 5437,
"user": "postgres",
"password": "ENC(...)",
"default_db": "an_omon_full_04052026",
"databases": [
{ "id": "an_omon_full_04052026", "name": "BVĐK Ô Môn - Cần Thơ (33 GB - Chuẩn khoa phòng)" },
{ "id": "tuan_dbgovap_full", "name": "BVĐK Gò Vấp - TP.HCM (65 GB - Dữ liệu lớn)" },
{ "id": "binh_bvq12_062026052026042026032026022026", "name": "BV Quận 12 - TP.HCM (21 GB)" },
{ "id": "bvq12_697", "name": "BV Quận 12 - Bản 697 (17 GB)" },
{ "id": "an_dalieu_full_05082026", "name": "BV Da Liễu (31 GB)" }
]
},
"updater": {
"enabled": true,
"gitea_url": "https://i.dh-his.com",
"owner": "ongtrieuhau",
"repo": "web-giao-ban",
"token": "ENC(...)",
"current_version": "v1.0.0"
}
}
📦 6. Package & Release trên Gitea
- Repository: https://i.dh-his.com/ongtrieuhau/web-giao-ban
- Generic Package: https://i.dh-his.com/ongtrieuhau/-/packages/generic/web-giao-ban/1.0.1
- Release Assets: https://i.dh-his.com/ongtrieuhau/web-giao-ban/releases/tag/v1.0.1
web-giao-ban.exe(Windows x64)web-giao-ban-linux-amd64(Linux x64)
Releases
2
Languages
JavaScript
35.4%
HTML
33.7%
Go
29%
Shell
1.4%
CSS
0.5%