无公网自建去中心化视频平台 PeerTube 分享创作无广告,NAS 部署联邦化视频网络。帕斯内网穿透远程访问!
作者
小编
发布时间

项目介绍
PeerTube 是一个免费、去中心化和联邦化的视频平台,作为 YouTube、Dailymotion 或 Vimeo 等集中化平台的替代方案而开发。它基于 ActivityPub 协议构建,支持视频流媒体、直播、P2P 分享负载、跨平台关注和订阅等功能。
PeerTube 的核心特色在于其去中心化的联邦网络架构,多个小型实例可以相互连接,形成一个庞大的视频网络。用户可以在任何实例上关注其他实例的创作者,无需在每个平台都注册账号。平台支持 WebRTC P2P 技术,观众之间可以共享视频流量,减轻服务器负担。同时支持实例间的视频缓存,让小型实例也能为更广泛的受众提供内容。
界面简洁美观,无广告干扰,支持自定义主题和界面。创作者可以通过支持按钮接受观众捐赠,无需依赖付费观看和广告收入。平台完全开源,遵循 AGPL 许可证。
项目地址: 点我跳转
部署安装
如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。
复制下列的配置文件
1services:23 # You can comment this webserver section if you want to use another webserver/proxy or test PeerTube in local4 webserver:5 image: chocobozzz/peertube-webserver:latest6 env_file:7 - .env8 ports:9 - '80:80'10 - '443:443'11 volumes:12 - type: bind13 source: ./docker-volume/nginx/peertube14 target: /etc/nginx/conf.d/peertube.template15 - assets:/var/www/peertube/peertube-latest/client/dist:ro16 - ./docker-volume/data:/var/www/peertube/storage17 - certbot-www:/var/www/certbot18 - ./docker-volume/certbot/conf:/etc/letsencrypt19 - ./docker-volume/nginx-logs:/var/log/nginx20 depends_on:21 - peertube22 restart: 'always'2324 # You can comment this certbot section if you want to use another webserver/proxy or test PeerTube in local25 certbot:26 container_name: certbot27 image: certbot/certbot28 volumes:29 - ./docker-volume/certbot/conf:/etc/letsencrypt30 - certbot-www:/var/www/certbot31 restart: unless-stopped32 entrypoint: /bin/sh -c 'trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; sleep 12h & wait $${!}; done;'33 depends_on:34 - webserver3536 peertube:37 image: chocobozzz/peertube:production-bookworm38 networks:39 default:40 ipv4_address: 172.18.0.4241 ipv6_address: fdab:e4b3:21a2:ef1b::4242 env_file:43 - .env44 ports:45 - '1935:1935' # Comment if you don't want to use the live feature46 volumes:47 - assets:/app/client/dist48 - ./docker-volume/data:/data49 - ./docker-volume/config:/config50 depends_on:51 - postgres52 - redis53 - postfix54 restart: 'always'5556 postgres:57 image: postgres:17-alpine58 env_file:59 - .env60 volumes:61 - ./docker-volume/db:/var/lib/postgresql/data62 restart: 'always'6364 redis:65 image: redis:8-alpine66 volumes:67 - ./docker-volume/redis:/data68 restart: 'always'6970 postfix:71 image: mwader/postfix-relay72 env_file:73 - .env74 volumes:75 - ./docker-volume/opendkim/keys:/etc/opendkim/keys76 restart: 'always'7778networks:79 default:80 enable_ipv6: true81 ipam:82 driver: default83 config:84 - subnet: 172.18.0.0/1685 - subnet: fdab:e4b3:21a2:ef1b::/648687volumes:88 assets:89 certbot-www:
同时需要创建 .env
环境变量文件:
1# Database / Postgres service configuration2POSTGRES_USER=peertube3POSTGRES_PASSWORD=your_postgres_password_here4POSTGRES_DB=peertube5PEERTUBE_DB_USERNAME=peertube6PEERTUBE_DB_PASSWORD=your_postgres_password_here7PEERTUBE_DB_SSL=false8PEERTUBE_DB_HOSTNAME=postgres910# PeerTube server configuration11PEERTUBE_WEBSERVER_HOSTNAME=your_domain.com12PEERTUBE_TRUST_PROXY=['127.0.0.1', 'loopback', '172.18.0.0/16']1314# Generate one using `openssl rand -hex 32`15PEERTUBE_SECRET=your_secret_key_here1617# E-mail configuration18PEERTUBE_SMTP_HOSTNAME=postfix19PEERTUBE_SMTP_PORT=2520PEERTUBE_SMTP_FROM=noreply@your_domain.com21PEERTUBE_SMTP_TLS=false22PEERTUBE_SMTP_DISABLE_STARTTLS=false23PEERTUBE_ADMIN_EMAIL=admin@your_domain.com2425# Postfix service configuration26POSTFIX_myhostname=your_domain.com27OPENDKIM_DOMAINS=your_domain.com28OPENDKIM_RequireSafeKeys=no
打开飞牛 NAS 或其他的 NAS 设备

项目名称可以随便填,点击创建 docker-compose.yml

点击 Compose -> 新建项目
这里需要修改 .env
文件中的以下重要配置:
- POSTGRES_PASSWORD
和 PEERTUBE_DB_PASSWORD
:设置数据库密码
- PEERTUBE_WEBSERVER_HOSTNAME
:设置你的域名
- PEERTUBE_SECRET
:使用 openssl rand -hex 32
生成密钥
- PEERTUBE_SMTP_FROM
和 PEERTUBE_ADMIN_EMAIL
:设置邮箱地址
- POSTFIX_myhostname
和 OPENDKIM_DOMAINS
:设置域名
如果提示端口被占用可以修改下面的字段,但是需要保持格式正确:
- 80:80 和 443:443 (webserver 的 HTTP/HTTPS 端口)
- 1935:1935 (直播推流端口,如不需要直播功能可以注释掉)
创建成功后可以访问 http://your_domain.com 或 https://your_domain.com
到这里就可以正常显示项目了。默认管理员用户名是 root
,密码会在容器日志中显示。
穿透公网
打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道
隧道节点可以随便选,一般选个负载低的就可以

接下来填写信息,隧道名称可以随便填写
本地 IP 默认就可以
传输协议可以选择 TCP 也可以选择 HTTP/HTTPS
HTTP 就是域名的形式,教程以使用 TCP 为演示
本项目中如果没有修改端口的话默认是 80 端口(HTTP)或 443 端口(HTTPS),这里本地 IP 就填 80 或 443
远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定
点击刚才创建好的隧道,点击获取配置文件

回到飞牛 NAS,点击应用中心下载 frpc 客户端

打开后粘贴刚才复制的配置文件,点击确定即可
复制帕斯内网穿透控制台的访问 IP 和端口
可以看到已经正常穿透成功了
本篇教程结束