FAQ / 故障排查
启动子进程报 command not found(pnpm / go / nvm)?
AT Term 以登录交互式 shell 启动会话,拿到完整 PATH。如果仍找不到命令,检查该命令是否在你的 shell 配置文件(.zshrc / .bash_profile)里配置了 PATH,而不是只在非交互 rc 里。
浏览器打不开 relay 登录页 / OPAQUE 登录失败?
OPAQUE 登录用浏览器 WebCrypto,只在安全上下文(HTTPS 或 localhost)可用。公网 IP 上的明文 HTTP 无法登录。解决:
- 前置反代(Caddy/nginx/Cloudflare/Tailscale)终止 TLS,反代到 relay 的
:8080。 - 或 relay 直接跑 HTTPS(
ATTERM_TLS_CERT/ATTERM_TLS_KEY+--https-addr :8443)。 - 仅本机临时用:
ssh -L 8080:127.0.0.1:8080 <host>后开http://localhost:8080(loopback 是安全上下文)。
详见 部署 Relay。
relay 启动就退出 / 拒绝启动?
公网监听默认 fail-closed:必须提供 ATTERM_BOOTSTRAP_ADMIN_EMAIL 和 ATTERM_ORIGINS,缺失则拒绝启动。本地开发可加 --dev-insecure 跳过这些校验(不要在公网生产用)。
没看到 claim token?
只有设置了 ATTERM_BOOTSTRAP_ADMIN_EMAIL 时,relay 才会在每次启动打印一次性 claim token(docker compose logs atterm-relay 里找 bootstrap-admin: claim token …)。token 7 天有效、单次使用,只能用于注册新账号;若该邮箱已注册,改用 SQL 直接提权:UPDATE users SET is_admin=1 WHERE email='you@…';。
桌面端连不上 relay?
- 确认 relay URL 用的是 HTTPS/WSS 域名(桌面端默认拒绝非 loopback 的明文
ws://)。 - 可信内网用明文时,在 Settings 手动开启 insecure mode。
- 检查 relay 的
ATTERM_ORIGINS是否包含你的访问来源。
远程能看到会话但不能输入?
远程 attach 默认是 viewer 模式,按空格 take over 才能写。此外要看桌面端为该 session 设的 remote_permission:view 只读、control 可输入、full 才能粘贴图片 / 文件 / 用远程文件浏览器。见 端到端加密与安全 的权限表。
命令完成通知没弹出?
- 系统通知:确认浏览器 / 系统授予了通知权限。
- Web Push:需要先在 web / PWA 端订阅;iOS 有平台限制(详见项目
docs/web-push.md)。 - 飞书:确认
internal/feishu已在桌面 Settings → Feishu 配置并绑定。
忘记密码怎么办?
没有密码找回。忘记密码只能由 admin reset,相当于换一把新 account_key,旧会话的 E2EE sealed 内容永久不可解 —— 这是单用户自托管定位下的有意设计。
恢复对话框太烦?
Settings → General 可关闭恢复对话框,关掉后下次启动直接走 startNewTab。