跳至主要内容

将 Owncast 作为后台服务运行

您可以在 systemd 下运行 Owncast,这样它在计算机启动时会自动启动,如果它崩溃则会自行重启。 此页面适用于运行 systemd 的 Linux 服务器。 如果您在容器中运行 Owncast,请改用 Docker 的 restart: unless-stopped 策略(参见 在容器中运行 Owncast)。 在 macOS 中,相应的是一个 launchd 代理。

创建服务文件

/etc/systemd/system/owncast.service 创建一个文件,内容如下。 更改 WorkingDirectoryExecStartUserGroup 以匹配 Owncast 的安装位置和要运行的帐户。

[Unit]
Description=Owncast
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/owncast
ExecStart=/opt/owncast/owncast
User=owncast
Group=owncast
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

WorkingDirectory 是持有 owncast 二进制文件及其 data/ 目录的文件夹。 ExecStart 是二进制文件的完整路径。 请勿以 root 身份运行 Owncast。 创建一个专用用户(例如 sudo useradd --system --home-dir /opt/owncast owncast)并将 User/Group 指向该用户。

启用并启动它

重新加载 systemd 以便它能够解析新文件,然后一步到位启用并启动该服务:

sudo systemctl daemon-reload
sudo systemctl enable --now owncast

enable --now 会立即启动 Owncast 并设置其在每次启动时启动。

确认它正在运行

systemctl status owncast

您应该看到 active (running)。 要实时跟踪日志:

journalctl -u owncast -f

一旦它运行,您可以在浏览器中访问服务器,端口为 8080 以确认它正在提供服务。

加固(可选)

该项目提供了一个 示例服务文件,该文件添加了 systemd 沙箱选项:

ReadWritePaths=/opt/owncast
NoNewPrivileges=true
SecureBits=noroot
ProtectSystem=strict
ProtectHome=read-only

ProtectSystem=strict 会使大部分文件系统变为只读,因此 ReadWritePaths 必须指向您的 Owncast 目录,否则服务器无法写入其 data/。 如果您希望将这些添加到 [Service] 部分,可以自行选择。

Owncat suggests

contrib 目录 包含更多用户提供的示例(包括 Windows 相关的说明)。 这些文件是社区贡献的,并不官方支持,但它们是本页未涵盖设置的一个良好起点。


Improve this page

See something missing or incorrect? Edit this page and improve the documentation for everyone.

Contributors to this documentation