Vận hành hằng ngày — dành cho SysAdmin
Đối tượng: SRE / deployer / Arkon admin — người dựng và giữ sống 11 containers production. Phạm vi: hạ tầng +
Employee.role=admin(ALL_PERMISSIONS),org:settings:manage,org:employees:manage,org:audit:read. Nguồn chi tiết: Cài đặt · Vận hành & backup.
Trách nhiệm của bạn
- Giữ sống:
agentjira_server(127.0.0.1:8080, loopback only) +agentjira_clientnginx (:8081, mặt tiền duy nhất) +agentjira_db+arkon_api(:5055) +arkon_frontend(:3119) +arkon_postgres(pgvector) +arkon_redis+arkon_minio(:9002/:9003) + workers. - Giữ 3 chốt an toàn: Cloudflare Access JWT (server verify RS256, bỏ qua
x-forwarded-role) · nginx stripX-Forwarded-*ở client · server bind loopback. - Quản trị Arkon hệ thống: Employees + MCP token, Model Catalog, audit log, backup 3 stores.
Không bao giờ republish 8080 ra 0.0.0.0
Từng là lỗ hổng approve giả mạo (P0-A/B): ai chạm được port đó kèm header giả là approve được. Chi tiết: Kiến trúc tổng thể.
Đọc log
[preflight] WARN sau MỌI deployCác lỗi cấu hình ở đây đều chết âm thầm: Wiki tắt lặng, Planner lỗi, provisioning 500.
Ba biến bắt buộc ở MỌI môi trường có Arkon trong container
| Biến | Vì sao |
|---|---|
ARKON_SSO_SHARED_SECRET (AgentJira) = SSO_SHARED_SECRET (Arkon) | POST /api/auth/sso chỉ tin loopback hoặc secret này; ngay cả npm run dev trên host qua cổng published cũng thành IP gateway bridge — thiếu → provisioning 403 → tạo Space 500 |
ARKON_ENCRYPTION_KEY | Mã hoá MCP token persona at-rest; production thiếu thì từ chối boot |
MINIO_ENDPOINT không dấu _ | Dấu _ vào Host header → MinIO InvalidRequest, mọi upload/ảnh wiki chết; dùng alias minio:9000 |
./scripts/dev.sh init sinh + đồng bộ 2 giá trị đầu; deps up/up tự kiểm tra mỗi lần chạy.
Cấu hình bắt buộc production
Server từ chối boot nếu thiếu:
ARKON_ENCRYPTION_KEY;ARKON_SSO_SHARED_SECRET(+SSO_SHARED_SECRETbên Arkon);CF_ACCESS_AUD+CF_ACCESS_TEAM_DOMAINhoặcTRUST_PROXY_IDENTITY=1+TRUSTED_PROXY_IPS.
Nên đặt thêm:
| Biến | Thiếu thì sao |
|---|---|
ALLOWED_HOSTS | WS 403 → Board mất realtime |
ARKON_API_URL | Mặc định về loopback = chính server → Wiki chết lặng |
AGENTBOARD_LLM_MODE=live + key + model | Planner lỗi mọi ý tưởng |
AGENTBOARD_BOOTSTRAP_OWNERS | Không ai quản trị được Space nào (fail-closed) |
ALLOWED_REPO_ROOTS | Agent chạm được $HOME, /tmp |
Deploy / rollback / backup (tóm tắt)
- Deploy: CI (
cd.yml, pushmain) hoặc tay (ssh,docker compose.prod.yml up -d). Rollback theo runbook. - Sau deploy: đọc
[preflight]→ kiểm health 4 mặt (:8081,:8080loopback,:3119,:5055) → thử approve 1 task mẫu. - Backup 3 stores độc lập:
agentjira_db+arkon_postgres+arkon_minio. Lệnh đầy đủ ở runbook §5. Nhớ luân chuyển secret và git locking theo runbook.
Quản trị người dùng, token, audit
- Board: bootstrap owner qua
AGENTBOARD_BOOTSTRAP_OWNERS(idempotent — vừa init vừa break-glass). Space không member → inaccessible + warn (chủ ý). - Arkon:
POST /api/employees {name,email,password,role,global_role,department_ids[]}(cầnorg:employees:manage); reconcile dept quaPUT /api/employees/{id},POST/DELETE /{id}/departments; cấp tokenPOST/DELETE /api/employees/{id}/token; user tự phục vụ ở/profile. Token HMAC-SHA256,MCP_TOKEN_PEPPERbắt buộc. - Audit:
GET /api/audit/log(filter principal/action/decision/resource) + riêngmcp_query_log. Theo dõiaudit.deniedtăng đột biến trên Dashboard.
Đọc tiếp: Model Catalog & OpenRouter · Sự cố & checklist go-live.