PeerTube项目Docker部署完全指南
前言
PeerTube是一个基于ActivityPub协议的去中心化视频平台,采用Docker部署可以大大简化安装和配置过程。本文将详细介绍如何使用Docker容器化技术部署PeerTube服务。
准备工作
系统要求
在开始部署前,请确保您的系统满足以下要求:
- 已安装Docker引擎(社区版即可)
- 已安装Docker Compose V2或更高版本
- 拥有一个可用的域名(PeerTube启动后域名不可更改)
您可以通过以下命令验证Docker Compose版本:
docker compose version
安装步骤
1. 创建工作目录
建议创建一个专门的工作目录用于PeerTube部署:
mkdir -p /your/peertube/directory
cd /your/peertube/directory
2. 获取配置文件
PeerTube提供了标准的Docker Compose配置文件和环境变量模板:
获取docker-compose.yml文件:
curl -O https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/docker/production/docker-compose.yml
获取环境变量文件:
curl -O https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/docker/production/.env
3. 配置文件修改
docker-compose.yml调整
使用文本编辑器打开并检查docker-compose.yml文件:
nano docker-compose.yml
主要检查以下服务配置:
- peertube主服务
- postgresql数据库
- redis缓存
- nginx反向代理
- certbot证书管理
环境变量配置
编辑.env文件进行关键配置:
nano .env
必须修改以下变量:
POSTGRES_USER
:PostgreSQL用户名POSTGRES_PASSWORD
:PostgreSQL密码PEERTUBE_WEBSERVER_HOST
:您的域名(不带https://)PEERTUBE_ADMIN_EMAIL
:管理员邮箱PEERTUBE_SECRET
:应用密钥(建议使用长随机字符串)
4. Web服务器配置
PeerTube Docker部署包含集成的Nginx配置。如果您计划使用其他Web服务器,可以注释掉相关部分。
获取Nginx模板
mkdir -p docker-volume/nginx docker-volume/nginx-logs
curl -o docker-volume/nginx/peertube https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/nginx/peertube
初始SSL证书获取
使用Certbot获取Let's Encrypt证书:
mkdir -p docker-volume/certbot
docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot certonly --standalone
证书续订将由Docker Compose中的专用容器自动处理。
启动与验证
启动服务
使用以下命令启动所有容器:
docker compose up -d
获取管理员凭据
PeerTube启动时会自动创建管理员账户,密码会输出在日志中:
docker compose logs peertube | grep -A1 root
您也可以重置管理员密码:
docker compose exec -u peertube peertube npm run reset-password -- -u root
配置DKIM记录
PeerTube使用OpenDKIM进行邮件签名验证,获取您的DKIM公钥:
cat ./docker-volume/opendkim/keys/*/*.txt
将输出的TXT记录添加到您的DNS配置中。
升级指南
升级步骤
- 拉取最新镜像:
docker compose pull
- 停止并删除旧容器:
docker compose down -v
- 更新Nginx配置:
mv docker-volume/nginx/peertube docker-volume/nginx/peertube.bak
curl -o docker-volume/nginx/peertube https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/nginx/peertube
- 重新启动服务:
docker compose up -d
自定义构建
生产环境构建
如需自定义构建PeerTube镜像:
git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
cd /tmp/peertube
docker build . -f ./support/docker/production/Dockerfile.bookworm
常见问题
-
域名变更问题:PeerTube启动后不支持更改域名,请确保首次配置时使用最终域名。
-
端口冲突:确保80和443端口未被其他服务占用。
-
证书续订失败:检查certbot容器日志,确认DNS解析和网络连接正常。
-
性能优化:对于高负载实例,建议调整PostgreSQL和Redis的资源限制。
通过本文的详细指导,您应该能够顺利完成PeerTube的Docker部署。PeerTube的去中心化特性使其成为替代传统视频平台的优秀选择,而Docker化部署则大大降低了运维复杂度。