139
BUILD_SYSTEM.md
139
BUILD_SYSTEM.md
@@ -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.
|
|
||||||

|
|
||||||
BIN
image-1.png
BIN
image-1.png
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 MiB |
Reference in New Issue
Block a user