PassNAT LogoPassNAT

无公网搭建MediaCMS媒体管理系统 Django+React开源视频平台 帕斯内网穿透实现远程访问

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

MediaCMS 是一个现代化的、功能完整的开源视频和媒体内容管理系统。它专为满足现代网络平台观看和分享媒体的需求而开发,可以在几分钟内构建一个小到中型的视频和媒体门户网站。

该项目基于现代技术栈 Django + React 构建,包含完整的 REST API。MediaCMS 提供了完整的数据控制权,支持多种发布工作流程(公开、私有、未列出和自定义),具备基于角色的访问控制(RBAC)功能。系统支持多种媒体类型(视频、音频、图像、PDF),提供自动转录功能(通过本地运行的 Whisper 集成),包含视频修剪器、SAML 支持、播放列表功能等丰富特性。

界面采用响应式设计,支持明暗主题切换,提供增强的视频播放器和多种转码配置文件,支持自适应视频流和多语言字幕。这是一个完全自托管的解决方案,让您完全掌控自己的媒体内容。

项目地址: 点我跳转

部署安装

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

复制下列的配置文件

1version: '3'
2
3services:
4 migrations:
5 image: mediacms/mediacms:latest
6 volumes:
7 - ./:/home/mediacms.io/mediacms/
8 environment:
9 ENABLE_UWSGI: 'no'
10 ENABLE_NGINX: 'no'
11 ENABLE_CELERY_SHORT: 'no'
12 ENABLE_CELERY_LONG: 'no'
13 ENABLE_CELERY_BEAT: 'no'
14 ADMIN_USER: 'admin'
15 ADMIN_EMAIL: 'admin@localhost'
16 # ADMIN_PASSWORD: 'uncomment_and_set_password_here'
17 command: './deploy/docker/prestart.sh'
18 restart: on-failure
19 depends_on:
20 redis:
21 condition: service_healthy
22 db:
23 condition: service_healthy
24 web:
25 image: mediacms/mediacms:latest
26 deploy:
27 replicas: 1
28 ports:
29 - '80:80'
30 volumes:
31 - ./:/home/mediacms.io/mediacms/
32 environment:
33 ENABLE_CELERY_BEAT: 'no'
34 ENABLE_CELERY_SHORT: 'no'
35 ENABLE_CELERY_LONG: 'no'
36 ENABLE_MIGRATIONS: 'no'
37 depends_on:
38 - migrations
39 celery_beat:
40 image: mediacms/mediacms:latest
41 volumes:
42 - ./:/home/mediacms.io/mediacms/
43 environment:
44 ENABLE_UWSGI: 'no'
45 ENABLE_NGINX: 'no'
46 ENABLE_CELERY_SHORT: 'no'
47 ENABLE_CELERY_LONG: 'no'
48 ENABLE_MIGRATIONS: 'no'
49 depends_on:
50 - redis
51 celery_worker:
52 image: mediacms/mediacms:latest
53 deploy:
54 replicas: 1
55 volumes:
56 - ./:/home/mediacms.io/mediacms/
57 environment:
58 ENABLE_UWSGI: 'no'
59 ENABLE_NGINX: 'no'
60 ENABLE_CELERY_BEAT: 'no'
61 ENABLE_MIGRATIONS: 'no'
62 depends_on:
63 - migrations
64 db:
65 image: postgres:17.2-alpine
66 volumes:
67 - ../postgres_data:/var/lib/postgresql/data/
68 restart: always
69 environment:
70 POSTGRES_USER: mediacms
71 POSTGRES_PASSWORD: mediacms
72 POSTGRES_DB: mediacms
73 TZ: Europe/London
74 healthcheck:
75 test: ['CMD-SHELL', 'pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}']
76 interval: 10s
77 timeout: 5s
78 retries: 5
79 redis:
80 image: 'redis:alpine'
81 restart: always
82 healthcheck:
83 test: ['CMD', 'redis-cli','ping']
84 interval: 10s
85 timeout: 5s
86 retries: 3

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

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

点击 Compose -> 新建项目

这里需要改成你需要的管理员账号和密码,找到 ADMIN_USER 和 ADMIN_EMAIL 字段进行修改。如果要设置管理员密码,请取消注释 ADMIN_PASSWORD 行并设置密码,其他的保持不变。

如果提示端口被占用可以修改 ports 下面的 '80:80' 字段为其他端口,比如 '8080:80',但是需要保持格式正确。

穿透公网

打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道

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

接下来填写信息,隧道名称可以随便填写

本地 IP 默认就可以

传输协议可以选择 TCP 也可以选择 HTTP/HTTPS

HTTP 就是域名的形式,教程以使用 TCP 为演示

本项目中如果没有修改端口的话默认是 80 端口,这里本地端口就填 80

远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定

点击刚才创建好的隧道,点击获取配置文件

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

打开后粘贴刚才复制的配置文件,点击确定即可

复制帕斯内网穿透控制台的访问 IP 和端口

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

本篇教程结束