This commit is contained in:
2026-05-14 15:24:41 +07:00
parent 9b37efc0a1
commit 184f9e8ede
2 changed files with 0 additions and 139 deletions

View File

@@ -1,139 +0,0 @@
# 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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB