Đưa source lên VPS. Giữ nguyên cấu trúc dist/, local/, START-VPS.sh và scripts/.
Tạo file môi trường riêng. Không commit mã ghép nối, API key hoặc token Cloudflare vào GitHub.
Tạo Named Tunnel. Token tunnel lưu thành file riêng, permission 600. Tunnel trỏ hostname AI về bridge localhost.
Cài autostart. Chạy script systemd đi kèm để 9router và Kỳ Môn bridge tự lên sau reboot.
Kiểm tra. Chỉ coi là hoàn tất khi systemd active, /api/status trả đúng protocol và app đổi trạng thái thành ✓.
Biến cấu hình chính
Không đặt bí mật vào mã website
QIMEN_PAIRING_TOKEN=... # mã ghép nối riêng
QIMEN_AI_ROUTER=9router
QIMEN_MODEL=qimen-smart
QIMEN_REASONING_EFFORT=auto
OPENAI_BASE_URL=http://127.0.0.1:20128/v1
OPENAI_API_KEY=... # khóa nội bộ router, chỉ ở VPS
QIMEN_TUNNEL_HOSTNAME=ai-origin.kymon.pp.ua
CLOUDFLARE_TUNNEL_TOKEN_FILE=~/.config/kymon-vps/cloudflare-tunnel.token
Tên biến là cấu hình của repo hiện tại. Giá trị thật phải nằm trong file môi trường riêng trên VPS, không dán vào giao diện công khai.
Lệnh vận hành
Systemd
cd /duong-dan/KY-MON-DON-GIAP
bash scripts/install-vps-autostart.sh
sudo systemctl status 9router.service
sudo systemctl status kymon-vps.service
# Sau khi thay source/config:
sudo systemctl restart kymon-vps.service
Nếu app báo ×: kiểm tra theo thứ tự bridge → 9router → Named Tunnel → mã ghép nối → protocol. Không khắc phục bằng cách mở trực tiếp cổng 8765 ra Internet hoặc tắt kiểm tra Host/Origin.
Cập nhật
Khi app web đã đổi protocol
Luôn cập nhật toàn bộ bộ kết nối tương ứng, không chỉ sửa số version trên server cũ. Sau cập nhật, restart bridge rồi kiểm tra lại bằng biểu tượng ↵ trên app. Bộ tải xuống hiện hành được build cùng source của website.