commit 9b37efc0a1fe1e6b486913d796b0c4ee3afb0ea1 Author: Tran Tien Dung Date: Wed May 13 08:14:36 2026 +0000 Upload files to "/" diff --git a/BUILD_SYSTEM.md b/BUILD_SYSTEM.md new file mode 100644 index 0000000..158349a --- /dev/null +++ b/BUILD_SYSTEM.md @@ -0,0 +1,139 @@ +# BUILD_SYSTEM.md + +# Linux Package Installer System + +**Server IP:** 172.20.235.176 + +Mục tiêu: xây dựng hệ thống cài đặt, quản lý package `.deb` cho ứng dụng web trên Linux với luồng **Web Server → Web Client → Local Installer Agent → Web Service**. + +--- + +## 1. Thành phần hệ thống + +1. **Web Server** (`server.package.robot`) + - Node.js + Express + - Chức năng: + - Lưu trữ các file `.deb` + - Metadata JSON về package: version, dependency, mô tả + - API download package + - Admin upload package + +2. **Web Client** (`client.package.robot`) + - Frontend: React + - Backend: Node.js + - Chức năng: + - Hiển thị danh sách package + - Cho người dùng chọn Install / Modify / Update / Remove + - Relay lệnh tới Local Installer Agent + - Hiển thị tiến trình / status realtime + +3. **Local Installer Agent** + - Python + - Chạy ngầm trên Linux client + - Chức năng: + - Tải package từ Web Server + - Kiểm tra checksum / chữ ký + - Cài / gỡ / update bằng dpkg/apt + - Start / restart các service systemd + - Báo tiến trình / status về Web Client + +--- + +## 2. Flow hệ thống + + +Admin / Developer +│ Upload .deb và metadata +▼ +Web Server (172.20.235.176) +│ Serve .deb + metadata +▼ +Web Client (React + Node.js) +│ Hiển thị package list +│ User chọn Install/Modify/Update/Remove +▼ +Local Installer Agent (Python) +│ Download .deb từ server +│ Verify checksum +│ Install / Remove / Update +│ Start/Restart systemd service +▼ +Web Service / Package Service +│ Chạy sẵn +▼ +User mở browser → truy cập service + + +--- + +## 3. Cấu trúc project + + +project-root/ +├── server/ +│ ├── packages/ # .deb files +│ ├── metadata/ # JSON metadata +│ └── src/ # Node.js + Express +│ ├── routes/ +│ └── controllers/ +│ +├── client/ +│ ├── frontend/ # React UI +│ └── backend/ # Node.js relay tới Agent +│ +├── agent/ +│ ├── bin/ # Python executable / script +│ ├── service/ # systemd service file +│ └── lib/ # logic install/update/remove/status +│ +└── packages/ # Build các .deb trước khi upload + + +--- + +## 4. Metadata JSON mẫu + +```json +{ + "applications": [ + { + "id": "sample-app", + "name": "Sample Package", + "version": "1.0.0", + "packages": [ + {"id": "sample-core", "required": true, "version": "1.0.0", "file": "sample-core_1.0.0_amd64.deb"}, + {"id": "sample-web", "required": false, "version": "1.0.0", "file": "sample-web_1.0.0_amd64.deb", "depends": ["sample-core"]}, + {"id": "sample-api", "required": false, "version": "1.0.0", "file": "sample-api_1.0.0_amd64.deb", "depends": ["sample-core"]} + ] + } + ] +} +5. Flow Install / Modify / Update / Remove +User mở Web Client +Web Client fetch metadata từ Web Server +User chọn package muốn Install/Modify/Update/Remove +Web Client gửi JSON request tới Local Installer Agent +Local Agent: +Download package từ Web Server +Verify checksum +Install / Remove / Update package +Start / Restart systemd service +Báo tiến trình / status về Web Client +Sau khi cài xong, service chạy sẵn +User mở browser → truy cập Web Service +6. Công nghệ & ngôn ngữ +Thành phần Ngôn ngữ / Framework +Web Server Node.js + Express +Web Client Frontend React +Web Client Backend Node.js +Local Installer Agent Python +Web Service Tùy ứng dụng +7. Quy trình triển khai từ đầu +Build package .deb cho ứng dụng web, chia thành các package nhỏ nếu cần. +Upload package + metadata lên Web Server. +Web Client fetch metadata, hiển thị package list. +Cài đặt Local Installer Agent lần đầu trên Linux client. +User chọn package → Install / Modify / Update / Remove. +Local Installer Agent thực hiện cài/gỡ/update ngầm. +Web Service chạy sẵn, người dùng truy cập browser. +![alt text](image-1.png) \ No newline at end of file diff --git a/image-1.png b/image-1.png new file mode 100644 index 0000000..5b31dc1 Binary files /dev/null and b/image-1.png differ