前言
Owncast是我三次望而却步最后搭建完成的。第一次因技术不足看不懂文档而放弃,第二次好奇但不知道Owncast如何用怎么用而放弃,第三次因没有熟悉的docker-compose搭建方式而放弃,这次终于搭建完成。虽然搭建过程简单,且有稳定的英文教程(How to use Owncast with OBS on Ubuntu 20.04)可供参考,但我还是选择把搭建过程记录下来。
身为docker-compose安利代言人,这次我用了一键脚本源码安装。鉴于官方文档并没有采用docker-compose安装方式,且Github项目的开发者也坚定地删除了非常复杂的docker-compose.yml
文件及相关分支(具体请看这个Github issue)且改用docker,我也就没有坚持使用docker-compose安装Owncast。而为什么我没有用docker的原因,一方面是Owncast不需要数据库,不需要为了迁移方便性而套一层docker,即用即拆都是没问题的。另一方面,Owncast不是自启动应用,我实在不会让他在容器内长期运行下去。
搭建过程
在任意目录下运行以下命令(假设此目录为/your/own/path
):
cd /your/own/path
curl -s https://owncast.online/install.sh | bash
安装程序将为您的平台下载最新版本的 Owncast。 如果您当前没有安装 ffmpeg,它还会下载一份 ffmpeg 副本。
返回打印结果:
Success! Run owncast by changing to the owncast directory and run ./owncast.
The default port is 8080 and the default streaming key is abc123.
Visit https://owncast.online/docs/configuration/ to learn how to configure your new Owncast server.
运行以下命令:
cd owncast
./owncast
此命令会在/your/own/path
目录下新建一个owncast
目录,预设端口为8080
,端口上的 RTMP 服务器为1935
,管理员帐号为admin
,密码和流密钥为abc123
。如果预设的8080
端口已使用,第一次使用时不要运行 ./owncast
。以8095
端口为例,在/your/own/path/owncast
下运行:
./owncast -webserverport 8095 #将端口号改为8095
后续也可以在管理员页面中更改端口,必须重新启动Owncast才能使更改生效。
返回打印结果:
INFO[2021-12-05T18:31:19Z] Owncast v0.0.10-linux-64bit (737dbf9b1a444b0b7d415da819c16d74d3d7812e)
INFO[2021-12-05T18:31:19Z] Video transcoder started using x264 with 1 stream variants.
INFO[2021-12-05T18:31:20Z] RTMP is accepting inbound streams on port 1935.
INFO[2021-12-05T18:31:20Z] Web server is listening on IP 0.0.0.0 port 8080.
INFO[2021-12-05T18:31:20Z] The web admin interface is available at /admin.
Nginx反向代理
如果你没有域名,可以跳过这步。
首先去DNS服务商添加一条指向服务器ip,内容为域名的A记录,然后另开一个服务器会话(不要关闭之前的会话)运行以下命令:
sudo -i #切换至root用户
apt install nginx -y #安装nginx
apt install snapd
snap install core #安装snap
snap install certbot --classic #使用snap安装certbot
运行nano /etc/nginx/conf.d/owncast.conf
,内容如下:
server {
listen 80;
server_name 你的域名;
location / {
proxy_pass http://127.0.0.1:8080; #8080改为Owncast对外开放的端口,默认为8080
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
测试配置文件是否有错误(试运行):
nginx -t
若没有错误,生效新的配置文件并运行 Nginx,开机启动:
nginx -s reload
systemctl start nginx
systemctl enable nginx
运行sudo certbot --nginx
获取SSL证书。
配置为系统服务
在配置之前,先访问https://你的域名/admin
/http://服务器ip:端口号/admin
使用管理员帐号admin
和密码abc123
进入管理员页面。登录后立刻更改默认密码(Configuration
>Server Setup
>Stream Key
)。该密码兼作流媒体密钥,以避免对流媒体服务器进行随机攻击。
运行nano /etc/systemd/system/owncast.service
,填入以下内容:
[Unit]
Description=Owncast Service
[Service]
Type=simple
WorkingDirectory=/your/own/path/owncast #注意替换位置
ExecStart=/your/own/path/owncast/owncast #注意替换位置
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
更新 systemd 守护进程:
systemctl daemon-reload
启用 Owncast 以在启动时运行:
systemctl enable owncast
返回结果:
Created symlink /etc/systemd/system/multi-user.target.wants/owncast.service → /etc/systemd/system/owncast.service.
开启Owncast:
systemctl start owncast
OBS推流
在OBS官网安装OBS,在设置>服务中选择自定义(Custom),在管理员页面获取RTMP服务器链接和流密钥并填入OBS中,点击Start Streaming测试链接,开始推流。
后续更新
请至releases页面查看步骤。