Update: 2018.10.22
项目上线地址: https://119.29.17.38:8000/(建议在 PC 上使用 火狐浏览器访问)
此项目是基于 Python / Flask 开发的小型视频网站, 使用 MySQL 作为存储数据库, Redis 提供缓存及弹幕队列支持, 使用开源的HTML5播放器 DPlayer 作为播放器插件, 视频评论区使用了百度的 UEditor 作为编辑器, 视频上传界面使用 ckeditor 作为编辑器, 后台管理使用的是 Flask-Admin.
- 注册/登录/登出, 重置密码, 更改邮箱, 更改密码
- 一键初始化站点(添加管理员帐号, 添加视频分类)
- 视频的上传, 删除, 评论/删除评论/屏蔽评论(管理员), 发送弹幕, 收藏及点赞, 支持搜索视频
- 用户个人资料展示与编辑, 支持上传头像
- 后台管理, 包括以下内容
- 视频分类
- 视频管理
- 用户管理
- 评论管理
- 管理员账户
- 用户日志(登录, 点赞, 删除视频)
- 管理员日志(登录, 创建, 修改, 删除)
- 静态文件管理
- Docker 部署, 使用 Docker-compose 编排
- 支持 Jenkins 实现 CD
- 邮件服务改为使用 SendGird Web API
- 单元测试 & CI
- 适应移动端
- 记录异常日志
- 后台监控服务器状态
可参考我的部署记录文章: 文章地址
-
设定环境变量
APP_WEBC=production # 指定 App 使用何种配置 APP_MH=database # App 使用的 Mysql Host, 此为 docker-compose service name APP_MDB=cili_db # App 使用的 DB, 与 SQL File 同步 # DB Container default user root, pwd secret APP_MU=<You Like> # App 使用的 Mysql 用户 APP_MP=<You Like> # App 使用的 Mysql 用户的密码 APP_RH=redis # App 使用的 Redis Host, 此为 docker-compose service name # Recommended to use SendGrid APP_MAILS=<You Like> # 指定 Flask-Mail 邮件服务器 APP_MAILU=<You Like> # 邮件服务器登录用户 APP_MAILP=<You Like> # 邮件服务器登录密码 APP_SENDER=<You Like> # App 发送邮件的发件人
-
构建镜像
export <以上的环境变量> docker-compose -f zbuild/docker-compose.yml up -d --build
-
初始化并启动 Gunicorn
$ docker exec -it f_app /bin/ash /var/www # mysql -h $MYSQL_HOST -u$MYSQL_USR -p$MYSQL_PWD < initial.sql /var/www # python manage.py initialize /var/www # mkdir logs && chmod 777 logs /var/www # gunicorn manage:app -c gunicorn.conf.py
-
退出所有容器
docker-compose -f zbuild/docker-compose.yml down
占坑, 简单描述: 安装 Environment Injector 插件后添加上面的环境变量构建即可
-
查看 Docker 日志即可, 获取日志路径
docker inspect f_app | grep log
有任何问题欢迎提 Issue, 共同进步!