互动播客方案Castopod的安装

什么是 Castopod ?

Castopod 是一种免费的开源播客托管解决方案,专为希望与观众互动的播客而设计。Castopod 目前处于测试阶段,但已经相当稳定并被世界各地的播客使用!

命令行安装

安装并不复杂,但是容器比较多,其中官方的镜像就有 3 个:

此外,Castopod 需要一个与 MySQL 兼容的数据库。还可以添加 Redis 数据库作为缓存处理程序

前期准备

先要准备好域名 ,因为老苏发现用 http://群晖IP:8782 访问会被强制转为 https://群晖IP:8782,然后返回错误:ERR_SSL_PROTOCOL_ERROR

域名 局域网地址 备注
https://cp.laosu.ml http://192.168.0.197:8782 Castopod 的访问地址

用 Nginx Proxy Manager 做反代处理;实际访问时,因为老苏没有备案,所以是 https://cp.laosu.ml:444

其中:

  • 192.168.0.197 为群晖的 IP
  • 8772 是准备分配给 Castopod 的端口

SSL 设置里一般没啥问题的话都是全部勾选

docker-compose 安装

基于以上,所以在群晖上还是继续采用 docker-compose 安装,请将下面的内容保存为 docker-compose.yml 文件

官方原始的 docker-compose.yml 和变量说明可以在: https://docs.castopod.org/getting-started/docker.html 找到,老苏做了细微的调整;如果你要在 portainer 中直接运行,还需要把卷改为绝对路径;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
version: "3.7"

services:
app:
image: castopod/app:1.1.2
container_name: "castopod-app"
restart: unless-stopped
volumes:
- ./media:/opt/castopod/public/media
environment:
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: ERDZQi6Lfg8S
CP_BASEURL: "https://cp.laosu.ml:444"
CP_ANALYTICS_SALT: changeme
CP_CACHE_HANDLER: redis
CP_REDIS_HOST: redis

web-server:
image: castopod/web-server:1.1.2
container_name: "castopod-web-server"
restart: unless-stopped
ports:
- 8782:80
volumes:
- ./media:/var/www/html/media

mariadb:
image: mariadb:10.6
container_name: "castopod-mariadb"
restart: unless-stopped
volumes:
- ./data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: C8NuQ38js3Ds
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: ERDZQi6Lfg8S

redis:
image: redis
container_name: "castopod-redis"
volumes:
- ./cache:/data

# this container is optional
# add this if you want to use the videoclips feature
video-clipper:
image: castopod/video-clipper:1.1.2
container_name: "castopod-video-clipper"
volumes:
- ./media:/opt/castopod/public/media
environment:
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: ERDZQi6Lfg8S
restart: unless-stopped

环境变量

这里只列出了老苏用到的环境变量,没用到的可以去看官网的文档说明:https://docs.castopod.org/getting-started/docker.html#environment-variables

  • mariadb:10.6
可变
MYSQL_ROOT_PASSWORD root 用户的密码,需要修改为你自己的
MYSQL_DATABASE 数据库库名, 设为了 castopod
MYSQL_USER 数据库用户,设为了 castopod
MYSQL_PASSWORD 数据库用户 castopod 对应的密码, 需要修改为你自己的
  • castopod/video-clipper:1.1.2

需保持和 mariadb:10.6 的设置一致;

可变
MYSQL_DATABASE 数据库库名
MYSQL_USER 数据库用户
MYSQL_PASSWORD 数据库用户 castopod 对应的密码
  • castopod/app:1.1.2

需保持和 mariadb:10.6 的设置一致;

可变
MYSQL_DATABASE 数据库库名
MYSQL_USER 数据库用户
MYSQL_PASSWORD 数据库用户 castopod 对应的密码
CP_BASEURL 应用的 web 地址,需要改成你自己的地址,有端口也要带上
CP_ANALYTICS_SALT 买搞明白是啥,感觉像是个密码类型的
CP_CACHE_HANDLER 可选 fileredis,设为 redis
CP_REDIS_HOST redis数据库主机名,设为 redis

开始启动

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 castopod 和 子目录
mkdir -p /volume2/docker/castopod/{cache,data,media}

# 进入 castopod 目录
cd /volume2/docker/castopod

# 修改 media 目录权限
chmod 777 media

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

  • /media文件夹必须是可读的,否则你在创建新的博客上会遇到 mkdir(): Permission denied 错误

运行

在浏览器中输入 https://cp.laosu.ml:444

程序默认支持中文,不需要另外设置;

如果没有自动跳转的话,就手动打开 https://cp.laosu.ml:444/cp-install 设置管理员账号

登录成功之后的主界面

可以创建一个新的播客

注意:博客封面必须是方形的图片,而且要超过 1400px

创建成功

还要发布播客

发布成功后,Castopod 会为你创建一个社交页面

你的播客将拥有自己的页面,其中包含许多可以自定义的设置

最后看看版本信息

参考文档

ad-aures/castopod: Castopod is an open-source hosting platform made for podcasters who want engage and interact with their audience. Synchronized read-only mirror of https://code.castopod.org/adaures/castopod
地址:https://github.com/ad-aures/castopod

Official Docker images | Castopod documentation
地址:https://docs.castopod.org/getting-started/docker.html