PassNAT LogoPassNAT

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

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

PeerTube 是一个免费、去中心化和联邦化的视频平台,作为 YouTube、Dailymotion 或 Vimeo 等集中化平台的替代方案而开发。它基于 ActivityPub 协议构建,支持视频流媒体、直播、P2P 分享负载、跨平台关注和订阅等功能。

PeerTube 的核心特色在于其去中心化的联邦网络架构,多个小型实例可以相互连接,形成一个庞大的视频网络。用户可以在任何实例上关注其他实例的创作者,无需在每个平台都注册账号。平台支持 WebRTC P2P 技术,观众之间可以共享视频流量,减轻服务器负担。同时支持实例间的视频缓存,让小型实例也能为更广泛的受众提供内容。

界面简洁美观,无广告干扰,支持自定义主题和界面。创作者可以通过支持按钮接受观众捐赠,无需依赖付费观看和广告收入。平台完全开源,遵循 AGPL 许可证。

项目地址: 点我跳转

部署安装

如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。

复制下列的配置文件

1services:
2
3 # You can comment this webserver section if you want to use another webserver/proxy or test PeerTube in local
4 webserver:
5 image: chocobozzz/peertube-webserver:latest
6 env_file:
7 - .env
8 ports:
9 - '80:80'
10 - '443:443'
11 volumes:
12 - type: bind
13 source: ./docker-volume/nginx/peertube
14 target: /etc/nginx/conf.d/peertube.template
15 - assets:/var/www/peertube/peertube-latest/client/dist:ro
16 - ./docker-volume/data:/var/www/peertube/storage
17 - certbot-www:/var/www/certbot
18 - ./docker-volume/certbot/conf:/etc/letsencrypt
19 - ./docker-volume/nginx-logs:/var/log/nginx
20 depends_on:
21 - peertube
22 restart: 'always'
23
24 # You can comment this certbot section if you want to use another webserver/proxy or test PeerTube in local
25 certbot:
26 container_name: certbot
27 image: certbot/certbot
28 volumes:
29 - ./docker-volume/certbot/conf:/etc/letsencrypt
30 - certbot-www:/var/www/certbot
31 restart: unless-stopped
32 entrypoint: /bin/sh -c 'trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; sleep 12h & wait $${!}; done;'
33 depends_on:
34 - webserver
35
36 peertube:
37 image: chocobozzz/peertube:production-bookworm
38 networks:
39 default:
40 ipv4_address: 172.18.0.42
41 ipv6_address: fdab:e4b3:21a2:ef1b::42
42 env_file:
43 - .env
44 ports:
45 - '1935:1935' # Comment if you don't want to use the live feature
46 volumes:
47 - assets:/app/client/dist
48 - ./docker-volume/data:/data
49 - ./docker-volume/config:/config
50 depends_on:
51 - postgres
52 - redis
53 - postfix
54 restart: 'always'
55
56 postgres:
57 image: postgres:17-alpine
58 env_file:
59 - .env
60 volumes:
61 - ./docker-volume/db:/var/lib/postgresql/data
62 restart: 'always'
63
64 redis:
65 image: redis:8-alpine
66 volumes:
67 - ./docker-volume/redis:/data
68 restart: 'always'
69
70 postfix:
71 image: mwader/postfix-relay
72 env_file:
73 - .env
74 volumes:
75 - ./docker-volume/opendkim/keys:/etc/opendkim/keys
76 restart: 'always'
77
78networks:
79 default:
80 enable_ipv6: true
81 ipam:
82 driver: default
83 config:
84 - subnet: 172.18.0.0/16
85 - subnet: fdab:e4b3:21a2:ef1b::/64
86
87volumes:
88 assets:
89 certbot-www:

同时需要创建 .env 环境变量文件:

1# Database / Postgres service configuration
2POSTGRES_USER=peertube
3POSTGRES_PASSWORD=your_postgres_password_here
4POSTGRES_DB=peertube
5PEERTUBE_DB_USERNAME=peertube
6PEERTUBE_DB_PASSWORD=your_postgres_password_here
7PEERTUBE_DB_SSL=false
8PEERTUBE_DB_HOSTNAME=postgres
9
10# PeerTube server configuration
11PEERTUBE_WEBSERVER_HOSTNAME=your_domain.com
12PEERTUBE_TRUST_PROXY=['127.0.0.1', 'loopback', '172.18.0.0/16']
13
14# Generate one using `openssl rand -hex 32`
15PEERTUBE_SECRET=your_secret_key_here
16
17# E-mail configuration
18PEERTUBE_SMTP_HOSTNAME=postfix
19PEERTUBE_SMTP_PORT=25
20PEERTUBE_SMTP_FROM=noreply@your_domain.com
21PEERTUBE_SMTP_TLS=false
22PEERTUBE_SMTP_DISABLE_STARTTLS=false
23PEERTUBE_ADMIN_EMAIL=admin@your_domain.com
24
25# Postfix service configuration
26POSTFIX_myhostname=your_domain.com
27OPENDKIM_DOMAINS=your_domain.com
28OPENDKIM_RequireSafeKeys=no

打开飞牛 NAS 或其他的 NAS 设备

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

点击 Compose -> 新建项目

这里需要修改 .env 文件中的以下重要配置:

- POSTGRES_PASSWORDPEERTUBE_DB_PASSWORD:设置数据库密码

- PEERTUBE_WEBSERVER_HOSTNAME:设置你的域名

- PEERTUBE_SECRET:使用 openssl rand -hex 32 生成密钥

- PEERTUBE_SMTP_FROMPEERTUBE_ADMIN_EMAIL:设置邮箱地址

- POSTFIX_myhostnameOPENDKIM_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 和端口

可以看到已经正常穿透成功了

本篇教程结束