feat: expose BookOrbit through HK edge

This commit is contained in:
Codex
2026-09-27 22:05:43 -07:00
parent 2d45a6dfe2
commit f2921fa9f6
10 changed files with 124 additions and 2 deletions
@@ -0,0 +1,10 @@
# BookOrbit HK 公网边缘
该项目运行 FRP 服务端,接收 `media-core` 主动建立的加密隧道。BookOrbit 只映射到容器网络 `hk-web` 的 `bookorbit-frps:13000`,不直接发布该业务端口;Caddy 负责 `https://books.kais.cloud` 的 TLS 和反向代理。
- 公网隧道控制端口:TCP `7000`
- 内部 BookOrbit 端口:TCP `13000`,仅 `hk-web` 可见
- 密钥:Arcane Project Environment 中的 `FRP_TOKEN`,不得写入 Git
- 镜像:FRP `0.71.0`,固定 OCI index digest
`FRP_TOKEN` 必须和 `servers/media-core/bookorbit-edge` 项目一致。该项目不启用 FRP Dashboard,也不允许客户端申请 `13000` 以外的远端端口。
@@ -0,0 +1,35 @@
x-arcane:
icon: book-open
urls:
- https://books.kais.cloud/
services:
frps:
image: ghcr.io/fatedier/frps:v0.71.0@sha256:cd8b947ba61678b200baa4f71ccc33f3c52e4e2cc0059700ba3b8354e36af7c3
container_name: bookorbit-frps
restart: unless-stopped
command: ["-c", "/etc/frp/frps.toml"]
environment:
FRP_TOKEN: ${FRP_TOKEN}
ports:
- "7000:7000"
volumes:
- ./frps.toml:/etc/frp/frps.toml:ro
networks:
- hk-web
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
labels:
com.getarcaneapp.arcane.icon: book-open
logging:
driver: json-file
options:
max-size: 2m
max-file: "3"
networks:
hk-web:
external: true
name: hk-web
@@ -0,0 +1,11 @@
bindAddr = "0.0.0.0"
bindPort = 7000
auth.method = "token"
auth.token = "{{ .Envs.FRP_TOKEN }}"
transport.tls.force = true
allowPorts = [
{ start = 13000, end = 13000 }
]
+4
View File
@@ -28,3 +28,7 @@ api.opfo.xyz {
gitea.kais.cloud {
reverse_proxy gitea-hk:3000
}
books.kais.cloud {
reverse_proxy bookorbit-frps:13000
}
+1
View File
@@ -7,4 +7,5 @@
- Caddy HTTPS 只在 Docker 网络内由 HAProxy 转发,宿主机另发布 HTTP 80;HTTP/3 已关闭,将 UDP 443 留给 Hysteria2。
- `api.opfo.xyz` 由 Caddy 通过共享外部网络 `hk-web` 反向代理到 `litellm-api:1049`;LiteLLM 自身使用 `LITELLM_MASTER_KEY` 校验 Bearer token,Caddy 不重复保存或校验该密钥。
- `gitea.kais.cloud` 由 Caddy 转发到共享外部网络 `hk-web` 上的 `gitea-hk:3000`;Gitea 本体属于独立 Git Sync 项目。
- `books.kais.cloud` 由 Caddy 转发到 `hk-web` 上的 `bookorbit-frps:13000`。该端口来自 media-core 主动建立的 FRP 隧道,Caddy 不增加 Basic Auth 或登录代理,以兼容 BookOrbit 的 KOReader、OPDS 和设备 API。
- `metacubexd` 与 `metube` 不迁移。