硬件最低配置:CPU≥4核,内存≥8G,存储硬盘根据实际视频存量配置,建议≥1T。系统要求:CentOS7.9 或 Ubuntu22.04,全新安装无其他服务占用端口。
首先执行系统更新命令:
CentOS系统执行:yum update -y
Ubuntu系统执行:apt update && apt upgrade -y
安装Docker服务,执行命令:
curl -fsSL https://get.docker.com | bash
启动并设置开机自启:
systemctl start docker && systemctl enable docker
安装Docker-Compose编排工具,执行命令:
curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加执行权限:
chmod +x /usr/local/bin/docker-compose
验证安装是否成功,执行以下两条命令,返回版本号即为正常:
docker -v
docker-compose -v
执行命令拉取开源部署包到指定目录:
git clone https://gitee.com/opensource-video/video-archive-system.git /opt/video-archive
进入部署目录:
cd /opt/video-archive
复制.env示例配置文件为正式配置:
cp .env.example .env
打开.env文件,直接替换为以下完整配置,可根据实际需求调整参数:
```
管理员账号
ADMIN_USER=admin
管理员初始密码,建议修改为自定义强密码
ADMIN_PWD=Video@2024
视频存储根目录,建议挂载大容量数据盘
STORAGE_PATH=/opt/video-archive/data
转码线程数,和服务器CPU核心数保持一致
TRANSCODE_THREAD=4
最大上传单个视频大小,单位G
MAX_UPLOAD_SIZE=20
数据库root密码,建议修改为自定义强密码
MYSQL_PWD=Archive@2024
```
配置修改完成后,需手动创建存储目录并授权,否则会出现上传失败问题:
mkdir -p /opt/video-archive/data && chmod 777 /opt/video-archive/data
后台启动所有服务,执行命令:
docker-compose up -d
查看服务启动状态:
docker-compose ps
返回结果中mysql、redis、web、transcode四个服务的State全部为Up,即为部署成功。如果启动失败,可执行docker-compose logs 服务名查看对应错误日志排查问题。

打开浏览器访问后台地址:http://你的服务器IP:8080,输入配置文件中的管理员账号密码登录。进入【系统设置】-【分类管理】,必须先创建一级分类,再添加二级子分类,否则会出现标签绑定异常,例如一级分类可设置为项目现场、培训资料、安全检查,每个分类下可绑定对应标签组,例如项目现场分类可添加标签:北京项目部、上海项目部、2024年一季度。
进入【用户管理】-【角色管理】,编辑普通用户角色,勾选视频上传、视频检索权限,取消系统设置、用户管理权限。新增普通用户时必须绑定对应分类权限,避免越权查看其他部门的视频档案。
进入【归档设置】页面,可按需求配置自动规则:
视频上传验证:用普通用户账号登录,点击上传视频,选择本地MP4/FLV/AVI格式视频,填写对应分类、标签、拍摄时间后提交,大文件支持断点续传,刷新页面后可继续未完成的上传任务。
检索调档验证:在首页搜索框输入关键词、标签、拍摄时间范围,可秒级返回匹配结果,点击视频可直接在线播放,需要下载原视频的提交申请后,管理员审核通过即可获取下载链接。
数据备份:每周执行一次全量备份命令,备份文件需同步存储到外部存储设备,避免服务器硬盘损坏丢失数据:
docker exec mysql_video_archive mysqldump -u root -pArchive@2024 video_archive > /opt/backup/video_archive_$(date +%Y%m%d).sql
存储扩容:当存储使用率超过80%时,修改.env文件中的STORAGE_PATH为新的大容量硬盘挂载路径,执行docker-compose restart web transcode即可生效,原有视频文件可手动迁移到新路径。
故障排查:Web页面无法访问时,优先检查防火墙是否开放8080端口,CentOS开放端口命令:firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload,Ubuntu开放端口命令:ufw allow 8080/tcp。转码失败优先检查存储目录权限和磁盘剩余空间。