跳转到内容

便携版

设置

在 Linux 或 Windows 上把 HolyArrs 当作普通程序运行,不用 Docker。Docker 仍然是主要的运行方式。

  • 构建机器上要有 Python 3、Git 和 Docker。
  • 一份由正常项目构建填好的 Go 模块缓存,以及按 app/frontend/package-lock.json 安装好的前端依赖。
  • 构建好的 Web 应用已经提交。构建只用已提交的源码;未提交的改动不会包含在内。
  1. 在检出的代码文件夹里构建压缩包:

    Terminal window
    python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/mod

    输出要用代码文件夹之外的一个新文件夹。你应该会看到每个目标平台一个压缩包,外加一个 SHA256SUMS 文件。

  2. 用 SHA256SUMS 核对压缩包。

  3. 把它解压到一个新文件夹。程序和配置分别放在不同的文件夹里。

  4. 用你自己的配置路径启动:

    Terminal window
    ./holyarrs -config /srv/holyarrs/config -addr :6262

    在 Windows PowerShell 里:

    Terminal window
    .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262'
  5. 打开 http://your-server:6262。你应该会看到首次运行的设置向导。马上创建所有者账户;第一个访问的人会成为所有者。

用哪个用户运行

用哪个用户运行 的链接

用专门的账户运行 HolyArrs,只给它配置文件夹和媒体的写入权限。

  • 在容器之外以 root 运行、又没有设置 PUID 和 PGID 时,它会停下并提示“started as root outside a container”(在容器之外以 root 启动)。
  • 设置了 PUID 和 PGID 时,它会把配置文件夹交给那个用户,并切换到那个用户。
  • 在 Windows 上,用针对该账户的 NTFS 权限保护配置文件夹。

压缩包不会安装任何服务。请在你自己的服务管理器(systemd、NSSM、Task Scheduler)里设置自动重启和内存硬限制。应用内重启和恢复备份都会让程序退出,并指望有人把它重新启动。

  1. 停止应用之前,先核对新压缩包。
  2. 停止 HolyArrs,复制整个配置文件夹,包括主密钥。或者做一次应用内备份,并把它的密钥另外保存。
  3. 把新程序解压到另一个文件夹。留着旧程序和旧配置的副本。
  4. 用你的配置启动新程序。你应该能登录,/health 应该显示 running。

见备份。

现象 原因 解决办法
“started as root outside a container” 以 root 启动了 用专门的用户运行,或者设置 PUID 和 PGID。
恢复之后应用退出了 恢复会先把数据准备好,然后以退出码 75 退出 再启动一次让它生效。把你的服务管理器设成自动重启它。
在 Linux 上 HTTPS 请求失败 没有系统 CA 证书 安装证书。
构建提示输出已存在 已存在的输出文件夹会被拒绝 换一个新文件夹。
构建选项
选项 作用 默认
--targets 用逗号分隔,只构建其中一部分目标 linux-amd64,linux-arm64,linux-armv7,windows-amd64
--low-resource 每个构建容器分到 1 个 CPU、2 GiB 和 256 个进程;Go 一次只构建一个包。打包仍在主机上运行,不受这些限制。 关闭

构建在项目固定版本的 Go 构建镜像里运行,网络是关闭的,所以不会下载任何东西。模块缓存以只读方式挂载。只要有一个目标失败,就不会留下输出文件夹。提交号会加到版本号里,并内置到程序中;应用和它的备份都会报告这个版本。

压缩包里有什么

程序、许可证、第三方声明、指南、一份源码清单和包标识。另有一个单独的源码压缩包,里面是项目源码和 Go 依赖;把它和二进制文件放在一起。

SHA256SUMS 能证明文件一致。它不是签名。同样的提交、版本和输入会得到同样的压缩包,所以你可以重新构建来核对。

运行时说明
主题 详情
配置路径 默认 /config。始终传入 -config,并放在本地磁盘上。
内存目标 没有 GOMEMLIMIT 时是 384 MiB。把它设成你分配的内存的 80% 左右。这是目标,不是硬限制。
低内存模式 在 Linux 上,内存在 2.5 GiB 左右或更少时自动开启;目标降到内存的四分之一,在 192 到 384 MiB 之间。HOLYARRS_LOW_MEMORY=1 或 0 可以直接指定。
Node 运行时不需要。
硬链接 把下载内容和媒体库文件夹放在同一个文件系统上。

HolyArrs 是免费的。如果它帮你省了时间,欢迎在 GitHub 上点个 Star、赞助它或请我喝杯咖啡。