Lorca文档

中继

你的设备通过 Lorca 的中继同步,中继读不到你的聊天。你也可以自己运行一个。

你的设备通过 Lorca 位于 relay.lorca.app 的中继同步。它存储并转发设备之间交换的加密数据,也负责给你的手机发送通知。关注 pull request和例行任务的 Webhook收到的请求也由它接收,它把每个请求加密后交给你的电脑。应用一开始就在用它,不需要任何设置:新配对的设备会从配对码里得知它的地址。

一切都在上传前加密,所以中继读不到你的聊天、智能体、文件或服务商密钥。它能看到什么,见安全。

限制

  • 每个附件最大 100 MiB。消息和其他数据,加密后每条最大 4 MiB。
  • 一个账户如果整整一年没有任何活动(没有设备连接,也没有任何同步),会从中继上删除。你的设备仍保留本地数据,第一台重新连接的设备会重新注册这个账户。

自己运行中继

Lorca 的中继就是你可以自己运行的同一个程序:单个可执行文件 lorca-relay,内置 SQLite。之后你的设备就改为通过你的服务器同步。

lorca-relay --bind 0.0.0.0:8787 --db lorca-relay.db

用 Caddy 或 nginx 这类反向代理为它加上 HTTPS(WebSocket 升级必须能通过),并加上 --trust-proxy,让限流看到真实的客户端地址。

让 Lorca 使用它

在第一台设备上、配对其他设备之前,设置 设置 › 高级 › 中继 URL;只有命令行的电脑则设置 LORCA_RELAY_URL 环境变量。之后配对的设备会从配对码里得知这个地址。从你的中继作为链接分享的智能体,链接里会带上中继地址,lorca.app 会从那里打开它。

选项

选项作用
--bind监听的地址和端口。
--dbSQLite 文件路径,或 postgres:// URL。
LORCA_RELAY_SECRET用来签发会话令牌。设置它,令牌才能在重启后继续有效。
--quota-bytes每个身份的存储上限,默认 5 GiB。0 表示不限。
--concurrent-uploads同时处理的超过 1 MiB 的附件数量(默认 3),用来限制附件占用的内存。
--files-dir附件密文存放的位置。默认是数据库旁边的一个文件夹。
--s3-bucket、--s3-endpoint改为把附件存到 S3、R2 或 MinIO。
--min-protocol拒绝使用更旧中继协议的 Lorca 版本,这些版本的应用会提示更新。
--inactive-days账户在这么多天内没有任何活动就会被删除(默认 365,0 表示永不删除)。各设备上的本地数据不受影响。
--ip-per-minute、--identity-per-second限流。
LORCA_RELAY_METRICS_TOKEN设置后,携带此 Bearer 令牌即可从 GET /metrics 读取 Prometheus 格式的指标。

pull request 关注与 Webhook

Lorca 的中继托管了关注 pull request和例行任务的 Webhook的接收端。你自己的中继也可以:LORCA_RELAY_PUBLIC_URL 设为中继自己的公网地址,就会开启 Webhook(<地址>/webhooks/<id>);再用 crates/relay/github-app.json 注册一个你自己的 GitHub 应用,把其中的地址改成你中继的地址(/webhooks/github 和 /webhooks/github/callback),并设置 LORCA_RELAY_GITHUB_APP_ID、LORCA_RELAY_GITHUB_APP_SLUG、LORCA_RELAY_GITHUB_CLIENT_ID、LORCA_RELAY_GITHUB_CLIENT_SECRET、LORCA_RELAY_GITHUB_WEBHOOK_SECRET 和 LORCA_RELAY_GITHUB_PRIVATE_KEY,就会开启关注。

没有这些设置时,这类例行任务会显示 你的网关,事件要通过你在自己电脑上运行的网关送达。智能体会告诉你例行任务的订阅 id;用 lorca events route <id> route.json 导出它的路由,然后:

  • 关注 pull request:用 --github-secret-file <secret> --routine 运行网关,并在仓库里添加一个 webhook:填你的公网地址、JSON 格式、同一个密钥,事件选 Pull requests、Pull request reviews、Pull request review comments 和 threads、Issue comments、Check runs、Check suites、Statuses 和 Workflow runs。
  • Webhook:用 --webhook-key-file <key> 运行网关(至少 32 个字符的随机密钥)。它监听 127.0.0.1:8984/hook,以 Authorization: Bearer <key> 接收密钥。

Postgres

使用 postgres:// URL,可以让多个中继进程共用一个数据库,实现无间断部署。它们必须共用 LORCA_RELAY_SECRET,并把附件存在 S3 兼容的存储桶里。

推送通知

要给手机应用发推送,需要给中继配置 APNs 密钥(--apns-key、--apns-key-id、--apns-team-id)或 Firebase 服务账号(--fcm-service-account)。每个密钥既可以是文件路径,也可以直接是密钥内容,所以在没有磁盘存放文件的环境里,可以用 LORCA_RELAY_APNS_KEY 和 LORCA_RELAY_FCM_SERVICE_ACCOUNT 变量直接传入。不配置的话其他功能照常,只是手机收不到推送。

监控

设置 LORCA_RELAY_METRICS_TOKEN 后,抓取方携带该 Bearer 令牌访问 GET /metrics,即可得到 Prometheus 文本格式的指标:身份和设备数量、各类数据块的数量与字节数、打开的同步连接、按路由和状态码统计的请求、被限流的请求、推送的成功与失败,以及清理任务删除的内容。中继无法读取自己存储的内容,所以这些数字就是全部可观察的信息。

模型目录和市场

各设备会到 lorca.app 检查有没有更新的模型目录和市场。要用你自己托管的版本,让命令行指向它们:

变量设置什么
LORCA_MODELS_URLLorca 检查新模型目录的地址。默认 https://lorca.app/models/v1.json。
LORCA_MARKETPLACE_URLLorca 检查新市场的地址。默认 https://lorca.app/marketplace/v1.json。

本页目录