跳转到内容
AudioBook Manager
简体中文
GitHub安装
尚未发布

ABM 还没有发布

我还在为 AudioBook Manager 的第一个公开版本做准备,所以这个网站上的安装步骤暂时还用不了。你可以先随便看看,想知道什么时候发布,就在 Discord 或 GitHub 上关注一下吧。

等待社区审校发现错误?帮忙改一下吧

设置

安全与登录

认证模式、API 密钥、受信任代理、本地网络和内容安全策略。

Settings > General 里的 Security 部分控制谁能用 ABM,以及怎么用。

设置 默认值 可选项
Authentication Forms (Login Page) None、Basic (Browser Popup)、Forms (Login Page)、External (Reverse Proxy)
Authentication Required Disabled for Local Addresses Enabled (Always)、Disabled for Local Addresses、Disabled (Not Recommended)
Username, New Password, Confirm New Password 密码留空则保留当前密码
Certificate Validation Enabled Enabled、Disabled for Local Addresses、Disabled (Not Recommended)
Local Networks 空 额外的 CIDR 网段,来自这些网段的客户端免登录
CORS Allowed Domains 空 允许在浏览器里调用 API 的其他来源。需要重启

Authentication Required 里你会用到的两种模式:

  • Enabled:所有人都要登录,包括你的局域网。
  • Disabled for Local Addresses(存储为 local_disabled):来自本地地址的请求免登录。回环地址、私有网段、链路本地地址和 IPv6 唯一本地地址都算本地。Local Networks 只会追加网段,永远不会替换这些。

全新安装时,在完成初始设置之前,所有请求都会被拒绝。

放在代理后面时,要设置 TRUSTED_PROXIES,让 ABM 知道该相信哪些转发头。如果带有转发头的请求来自不在这个列表里的地址,它永远不会被当成本地请求,必须登录。这是故意的。见 反向代理。

不发送任何转发头的代理看起来就像一个本地客户端。如果你用的是这种代理,请把 Authentication Required 设为 Enabled。

有些改动会再次要求你输入当前密码:保存 Security 设置,以及显示或重新生成 API 密钥。输错密码会在安全日志里记为一次失败的登录。如果还没设置密码,就不会询问。

在你确认密码之前,密钥永远不会显示。Regenerate API Key 会生成一个新密钥,只显示一次,并立即让旧密钥失效。密钥不能手动输入。如果存储的密钥无法解密(应用密钥变了),就重新生成一个。

用 X-Api-Key 请求头或 apikey 参数发送。来自局域网地址、带着密钥的请求按密钥请求处理。见 API。

浏览器发出的修改类请求会被以 cross_origin_rejected 拒绝,除非它的来源和 ABM 被访问的地址一致、和受信任代理转发的主机一致,或者是 CORS 允许的域名。用 API 密钥的请求不受影响。

除非设置了 SECURITY_HEADERS_CSP_ENABLED=false,否则 ABM 会发送 Content-Security-Policy 响应头。它把界面限制为只加载 ABM 自己的脚本和 API,图片只能来自 ABM 或 HTTPS。通过纯 HTTP 提供的封面会被拦截;无论设置如何,ABM 都不能被嵌入 iframe。API 文档页面用的是更宽松的策略,这样才能从 CDN 加载。

没有账号锁定。失败的尝试会被记录下来,在 Activity Log 里按地址合并显示,并逐行写入安全日志,方便 fail2ban 之类的工具使用。

ABM 为索引器、客户端和连接存储的密码和密钥,都用一个应用密钥加密。设置 APP_SECRET 可以让这个密钥不落在配置盘上。两者都不存在时,ABM 会生成 /config/app_secret。代理和导出目标的密码以明文存储。