Nền tảng
Bản quyền và hai bản
Bản cộng đồng và bản doanh nghiệp khác gì, cách nạp token bản quyền, hoạt động ngoại tuyến, trạng thái token và bảng giá tóm tắt.
Trong trang này
O3O Office Online có hai bản chạy trên cùng một bộ cài: bản cộng đồng miễn phí và bản doanh nghiệp tính theo số kết nối. Không cần cài lại khi nâng cấp: chỉ cần nạp token bản quyền.
Hai bản khác nhau thế nào#
| Hạng mục | Bản cộng đồng | Bản doanh nghiệp |
|---|---|---|
| Giá | Miễn phí | Theo số kết nối, xem bảng giá bên dưới |
| Token bản quyền | không | có |
| Kết nối soạn thảo đồng thời | 50 | Đúng bằng conns trong token, kể cả khi nhỏ hơn 50; đơn mua tối thiểu 50 |
| Nhúng trình soạn thảo và callback lưu | có | có |
| Endpoint DocBuilder | 10 endpoint, không có điền mẫu | Đủ 11 endpoint (token có api_full) |
| Tần suất DocBuilder | 10/phút, 200/ngày | 60–3.000/phút theo số kết nối, không giới hạn ngày |
| Cỡ tệp DocBuilder tối đa | 10 MB | 300 MB |
| Callback khi job xong | không | có (token có callback) |
| Nhãn trắng | không | Sắp có, chỉ với image O3O dựng từ nguồn |
| Vượt mềm | không | Sắp có |
Chi tiết từng hạn mức: Hạn mức theo gói. Cách đếm kết nối: Kết nối được đếm thế nào.
Nạp token bản quyền#
Gate và DocBuilder cùng đọc token theo thứ tự: biến O3O_LICENSE_TOKEN nếu khác rỗng, rồi tới tệp O3O_LICENSE_FILE (mặc định /etc/o3o/license.token) nếu tồn tại, cuối cùng là không có token (bản cộng đồng). Khoảng trắng và xuống dòng ở đầu và cuối bị cắt. Tệp được đọc lại mỗi 60 giây, nên thay tệp không cần khởi động lại; đổi biến môi trường thì cần tạo lại container.
Đặt token
Hoặc dán vàoO3O_LICENSE_TOKENtrongonline/.env, hoặc lưu thành tệp và gắn vào cảo3o-gatelẫno3o-docbuildertại/etc/o3o/license.token.Nạp
Với biến môi trường:docker compose ... up -d. Với tệp: chờ tối đa 60 giây.Kiểm
GET /o3o/statusphải báolicense.state = "valid",edition = "enterprise"vàconnections.limitbằng số kết nối đã mua;GET /v1/limitsphải báoedition = "enterprise".
# Cách 1: biến môi trường trong online/.env (token rút gọn cho dễ đọc)
O3O_LICENSE_TOKEN=eyJ2IjoxLCJrZXkiOiJPT1NZLTdLMk05LVE0WEJDLUQ4SEpOLVIzVFdaIiwicGxhbiI6InllYXIiLCJwcm9kIjoibzNvLW9ubGluZSIs...base64...==.W2m7...base64...==
# Cách 2: tệp; để trống O3O_LICENSE_TOKEN
O3O_LICENSE_TOKEN=
O3O_LICENSE_FILE=/etc/o3o/license.token
# Kiểm sau khi nạp
curl -s http://localhost:8080/o3o/status | jq '{edition, license: .license.state, limit: .connections.limit}'
curl -s http://localhost:8080/v1/limits -H "Authorization: Bearer O3O_DEMO_KEY" | jq .edition# docker/compose.license.yml, dùng kèm: -f docker/compose.dev.yml -f docker/compose.license.yml
# ./license.token tính từ thư mục của tệp compose đầu tiên (online/docker/)
services:
o3o-gate:
volumes:
- ./license.token:/etc/o3o/license.token:ro
o3o-docbuilder:
volumes:
- ./license.token:/etc/o3o/license.token:roĐịnh dạng token#
Token là base64(payload_json) + "." + base64(chữ_ký): Base64 chuẩn có đệm = (bảng chữ +/), đúng một dấu chấm, chữ ký Ed25519 trên đúng chuỗi byte của payload. Gate và DocBuilder kiểm bằng khoá công khai của máy chủ bản quyền O3O (O3O_LICENSE_PUBKEY). Trường lạ trong payload bị bỏ qua.
{
"v": 1,
"key": "OOSY-7K2M9-Q4XBC-D8HJN-R3TWZ",
"plan": "year",
"prod": "o3o-online",
"mid": "",
"cust": "Công ty TNHH An Phát",
"exp": "2027-09-30",
"upd": "2027-10-07",
"iat": 1790000000,
"lid": 123,
"kind": "enterprise",
"conns": 200,
"feat": [
"api_full",
"callback"
]
}Trường của payload
vnumberbắt buộcPhiên bản định dạng:1hoặc2.prodstringbắt buộcPhải lào3o-online.kindstringbắt buộcenterprisehoặccommunity; chỉenterprisemới nâng gói.connsintegerbắt buộcSố kết nối đã mua, từ 1 trở lên. Với token doanh nghiệp hợp lệ, trần kết nối đúng bằng số này, kể cả khi nhỏ hơn 50 của bản cộng đồng.planstringbắt buộcyear(thuê bao năm) hoặclife(vĩnh viễn).expstringtuỳ chọnYYYY-MM-DD, bắt buộc vớiyear; có hiệu lực tới HẾT ngày đó theo giờ UTC+7.updstringtuỳ chọnYYYY-MM-DD: hết quyền nhận cập nhật. Image dựng sau ngày này không nhận token. Với gói năm, máy chủ bản quyền đặtupd = exp + 7 ngày(bằng thời gian ân hạn, khớp với gate).featarraytuỳ chọnMặc định:[]Tính năng:whitelabel,api_full(DocBuilder đầy đủ),callback(callback của DocBuilder).midstringtuỳ chọnMã instance được gắn; rỗng, vắng hoặc*là không gắn.keystringbắt buộcMã bản quyền, dạngOOSY-XXXXX-XXXXX-XXXXX-XXXXX(thuê bao năm) hoặcOOSL-…(vĩnh viễn). Gate không kiểm dạng mã;/o3o/statuschỉ hiện 5 ký tự cuối (key_hint).custstringtuỳ chọnTên khách hàng.iatnumberbắt buộcThời điểm ký, giây Unix.lidnumbertuỳ chọnMã nội bộ của máy chủ bản quyền; gate và DocBuilder bỏ qua.aidnumbertuỳ chọnMã lần kích hoạt nội bộ, chỉ có khi token gắn với một lần kích hoạt; gate và DocBuilder bỏ qua.
Trạng thái token#
license.state | Nghĩa | Gói hiệu lực |
|---|---|---|
none | Không có token. | cộng đồng |
valid | Chữ ký đúng, còn hạn. | doanh nghiệp (khi kind = enterprise) |
grace | Gói năm đã qua exp không quá 7 ngày; grace_days_left là số ngày còn lại. | doanh nghiệp |
expired | Quá 7 ngày sau exp. | cộng đồng |
invalid | Hỏng định dạng, sai chữ ký, sai trường bắt buộc, hoặc khoá THỬ khi không ở chế độ DEV. | cộng đồng |
wrong_product | prod khác o3o-online. | cộng đồng |
update_expired | Image dựng sau ngày upd. | cộng đồng |
instance_mismatch | Token gắn với instance khác (mid). | cộng đồng |
Hoạt động khi không có mạng#
- Token được xác minh hoàn toàn NGOẠI TUYẾN bằng khoá công khai Ed25519 có sẵn trong cấu hình; máy chủ O3O của bạn không gọi về office.o3o.vn và không gửi số liệu sử dụng đi đâu.
- Máy chủ trong mạng kín vẫn nhận đủ bản doanh nghiệp cho tới
exp, cộng 7 ngày ân hạn với gói năm. - Bản vĩnh viễn không hết hạn; quyền nhận cập nhật kết thúc ở
upd: các image dựng trước ngày đó tiếp tục dùng token mãi mãi. - Muốn gắn token vào đúng một máy chủ, yêu cầu token có
midbằnginstance_idtrong/o3o/status. Khi dùng token gắn instance, đặtO3O_GATE_INSTANCE_IDtường minh trong.envđể gate và DocBuilder cùng một mã;scripts/gen-secrets.sh(hoặcgen-secrets.ps1) sinh sẵn mã này khi tạo.envmới.
Kích hoạt trực tuyến bằng mã bản quyền, báo nhịp và thu hồi bản quyền qua máy chủ office.o3o.vn. v1 chỉ xác minh ngoại tuyến.
Gia hạn và mua thêm kết nối#
O3O ký và giao token mới khi đơn hàng hoàn tất. Thay token theo đúng cách đã nạp; gate nhận token mới trong vòng 60 giây (tệp) hoặc sau khi tạo lại container (biến môi trường). Phiên đang mở không bị ảnh hưởng.
Bảng giá tóm tắt#
Giá niêm yết bằng USD. Đơn giá áp cho TOÀN BỘ số kết nối của đơn (không luỹ tiến theo bậc). Tối thiểu 50 kết nối mỗi đơn. Bản vĩnh viễn kèm 3 năm cập nhật.
| Số kết nối | Thuê bao năm (USD/kết nối/năm) | Vĩnh viễn kèm 3 năm cập nhật (USD/kết nối) |
|---|---|---|
| 50 – 200 | 5 USD | 10 USD |
| 201 – 500 | 4,5 USD | 9 USD |
| từ 501 | 3,5 USD | 8 USD |
Quy tắc không bao giờ đắt hơn#
tiền_thu(n) = min(m × đơn_giá(m)) với mọi m ≥ n và m ≥ 50. Khi giá rẻ nhất rơi vào m > n, khách trả tiền của mốc m và ĐƯỢC CẤP m kết nối. Nhờ vậy mua nhiều hơn không bao giờ phải trả nhiều hơn tại ranh giới bậc.
Hoá đơn ghi và token cấp đúng số kết nối của mốc được tính, không phải số khách nhập. Ví dụ thuê bao năm: chọn 190 kết nối thì hoá đơn tính 201 kết nối × 4,5 USD = 904,5 USD, và token có conns = 201.
| Gói | Khoảng số kết nối | Số tiền thu | Tính và cấp theo |
|---|---|---|---|
| Thuê bao năm | 181 – 200 | 904,5 USD | 201 |
| Thuê bao năm | 390 – 500 | 1.753,5 USD | 501 |
| Vĩnh viễn | 181 – 200 | 1.809 USD | 201 |
| Vĩnh viễn | 446 – 500 | 4.008 USD | 501 |
| Kết nối | Năm: niêm yết | Năm: thu | Năm: cấp | Vĩnh viễn: niêm yết | Vĩnh viễn: thu | Vĩnh viễn: cấp |
|---|---|---|---|---|---|---|
| 50 | 250 USD | 250 USD | 50 | 500 USD | 500 USD | 50 |
| 120 | 600 USD | 600 USD | 120 | 1.200 USD | 1.200 USD | 120 |
| 190 | 950 USD | 904,5 USD | 201 | 1.900 USD | 1.809 USD | 201 |
| 200 | 1.000 USD | 904,5 USD | 201 | 2.000 USD | 1.809 USD | 201 |
| 201 | 904,5 USD | 904,5 USD | 201 | 1.809 USD | 1.809 USD | 201 |
| 300 | 1.350 USD | 1.350 USD | 300 | 2.700 USD | 2.700 USD | 300 |
| 450 | 2.025 USD | 1.753,5 USD | 501 | 4.050 USD | 4.008 USD | 501 |
| 500 | 2.250 USD | 1.753,5 USD | 501 | 4.500 USD | 4.008 USD | 501 |
| 501 | 1.753,5 USD | 1.753,5 USD | 501 | 4.008 USD | 4.008 USD | 501 |
| 800 | 2.800 USD | 2.800 USD | 800 | 6.400 USD | 6.400 USD | 800 |
Thanh toán bằng VNĐ: tỷ giá USD sang VNĐ được chốt và lưu lúc TẠO đơn; mã QR thanh toán giữ đúng số tiền đó. Đơn hết hạn mà chưa thanh toán thì tạo đơn mới, tính theo tỷ giá tại thời điểm tạo đơn mới.