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
相关推荐
Once_day4 分钟前
Linux之rsyslog(4)属性配置
linux·服务器
waving-black7 分钟前
Linux中自定义服务开机自启nginx
linux·服务器·nginx
Lenyiin7 分钟前
《 Linux 修炼全景指南: 六 》软件包管理器
linux·运维·服务器
NiKo_W11 分钟前
Linux 重定向与Cookie
linux·运维·服务器·前端·网络·线程·协议
ytttr87315 分钟前
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
linux·kubernetes·centos
HLJ洛神千羽15 分钟前
Linux下程序设计综合实验报告——图书管理系统(黑龙江大学)
linux·运维·服务器
Arvin62744 分钟前
Ubuntu 22.04 Docker 安装指南
linux·ubuntu·docker
Arvin6271 小时前
Jenkins Jobs 备份与恢复
linux·运维·服务器
小旺不正经2 小时前
Linux介绍及常用命令
linux·运维·数据库