centos通过DockerCompose搭建开源MediaCMS

MediaCMS

MediaCMS 是什么

MediaCMS 是一种现代、功能齐全的开源视频和媒体 CMS。它的开发是为了满足现代网络平台查看和共享媒体的需求。它可用于在几分钟内构建中小型视频和媒体门户

官方文档:https://github.com/mediacms-io/mediacms

官方管理员文档:https://github.com/mediacms-io/mediacms/blob/main/docs/admins_docs.md#4-docker-deployment-options

安装

前置条件

安装 Docker 和 Docker Compose以及git

python 复制代码
# 安装 Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo yum install -y git
   
# 启动并启用 Docker
sudo systemctl start docker
sudo systemctl enable docker
   
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Docker Compose升级(2.23以前版本)

升级后,您可以使用原始的 version: '3.8' 配置而不会出现兼容性问题。

python 复制代码
# 移除旧版本
sudo rm /usr/local/bin/docker-compose

# 安装最新版本
DOCKER_COMPOSE_VERSION="v2.23.0"
wget -c "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version
# 应该显示 Docker Compose version v2.23.0

下载项目

python 复制代码
git clone https://github.com/mediacms-io/mediacms
cd mediacms

调整配置docker-compose.yml 文件

  • 持久化存储:
    • 添加了 ./postgres_data 卷映射
    • 确保数据库数据在容器重启后不丢失
python 复制代码
   db:
     volumes:
       - ./postgres_data:/var/lib/postgresql/data  # 使用相对路径

设置管理员密码

python 复制代码
   migrations:
     environment:
       ADMIN_PASSWORD: 'your_strong_password'  # 取消注释并设置

调整时区:

python 复制代码
   db:
     environment:
       TZ: Asia/Shanghai  # 设置为中国时区

启动 MediaCMS

python 复制代码
# 启动服务
docker-compose up -d

# 查看运行状态(等待所有容器状态变为 healthy)
docker-compose ps
# 停止服务
docker-compose down

访问 MediaCMS

打开浏览器访问:

python 复制代码
http://your_server_ip

管理命令

python 复制代码
# 停止服务
docker-compose down

# 查看日志
docker-compose logs -f

# 备份数据
docker-compose exec postgres pg_dump -U mediacms mediacms > mediacms_backup.sql

# 更新到最新版本
docker-compose pull
docker-compose up -d

常见问题解决

端口冲突:

python 复制代码
# 查看占用80端口的进程
sudo netstat -tulnp | grep ':80'
# 停止相关服务(如nginx/apache)
sudo systemctl stop nginx

磁盘空间不足

python 复制代码
# 清理未使用的Docker资源
docker system prune -a

容器启动失败

python 复制代码
# 查看具体错误
docker-compose logs backend
docker-compose logs frontend

转码问题

后台网址:https://your_installation/admin/files/encodeprofile/Encode profiles

给用户管理视频以及用户和评论权限

禁用编码,使用上传文件画质

上传视频时,它们会被编码为多种分辨率,这一过程称为转码。有时不需要这样做,您只需要显示原始文件,例如当 MediaCMS 在低功能服务器上运行时。

python 复制代码
vim /opt/mediacms/cms/settings.py 
python 复制代码
DO_NOT_TRANSCODE_VIDEO = True

更新配置文件后:

python 复制代码
docker-compose down
docker-compose up -d --force-recreate

安全增强

  • 启用 HTTPS
    • 使用 Nginx 反向代理配置 SSL
    • 或在 frontend 服务中添加 Let's Encrypt 容器
  • 限制访问
python 复制代码
# 在防火墙中限制访问
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
相关推荐
代码AC不AC2 小时前
【Linux】线程池
linux·线程池
明哥聊AI2 小时前
开源发布|ZhDocParser:不是 OCR,而是面向 RAG 与 Agent 的中文复杂文档结构化解析工具
开源·ocr
小羊Yveesss2 小时前
2026年如何自己搭建一个外贸网页?单页验证和完整网站的区别
微信小程序·小程序·开源
FREEDOM_X3 小时前
Linux 多线程编程——总结
java·linux·运维·ubuntu
冬奇Lab5 小时前
每日一个开源项目(第156篇):OpenDataLoader PDF - 基准测试第一名的开源 PDF 解析器,专为 RAG 设计
人工智能·开源·资讯
碎_浪5 小时前
Mac 壁纸被 MDM 锁住?我做了个 2MB 的开源方案
macos·开源·swift
筱羽_筱羽5 小时前
跟着“Ubuntu18.04/20.04编译Linux5.10.76+Xenomai-3.2.1+IgH”教程遇到的问题
linux·运维·ubuntu
汤姆yu6 小时前
面向具身智能的物理视频模拟器:蚂蚁灵波LingBot-Video开源模型全解析
java·大数据·人工智能·gpt·开源·大模型·音视频
ShineWinsu6 小时前
对于Linux:基于UDP实现简单聊天室功能
linux·c++·面试·udp·笔试·进程·简单聊天室
zoipuus6 小时前
上传repo仓库到自己的gitlab
linux·gitlab·shell·全志·tina