MrDoc知识文档平台是一款基于Python开发的在线文档系统,适合作为个人和中小型团队的私有云文档、云笔记和知识管理工具,致力于成为优秀的私有化在线文档部署方案。我现在主要把markdown笔记放在上面,因为平时老是需要查询一些知识点,总是百度,然后查出来的结果一堆,有很多的坑,然后就想着还是把自己经历过的都记录一下,需要了还是看自己的记录好了。
官网地址:MrDoc文档
Mrdoc分为开源版和专业版,作为个人肯定是开源版的足够了。不过好像docker版本到后面好像停止了还是换了个版本?
系统环境:
创建文件夹用来存放配置文件等
mkdir /www/mrdoc # 创建mrdoc目录
mkdir /www/mrdoc/media # 创建media目录以存放资源文件
在/www/mrdoc
下面新建config.ini
配置文件,根据需要进行修改,如果只是尝鲜可以不修改使用默认配置,模板如下:
# 如果自己没有更换其它数据库的需求,请原样复制粘贴,不要乱改配置.
# mysql版本注意:建议在5.6-8.0以内,8.0版本开始以下语句不支持,请自行解决.
# mysql需要手动创建一个数据库:create database mrdoc character set utf8mb4 collate utf8_bin;
#grant all privileges on mrdoc.* to 'jonnyan404'@'%' identified by 'www.mrdoc.fun' with grant option;
#flush privileges;
[site]
# True表示开启站点调试模式,False表示关闭站点调试模式
debug = False
[database]
# engine,指定数据库类型,接受sqlite、mysql、oracle、postgresql
engine = sqlite
# name表示数据库的名称
# name = mrdoc
# user表示数据库用户名
# user = jonnyan404
# password表示数据库用户密码
# password = www.mrdoc.fun
# host表示数据库主机地址,(如果是使用容器的话,地址需要填写宿主机docker网络地址)
# host = db_host
# port表示数据库端口
# port=3306
[selenium]
# 在Windows环境下测试或使用,请配置driver = Chrome
# driver = Chrome
# 如果系统无法正确安装或识别chromedriver,请指定chromedriver在计算机上的绝对路径
driver_path = /usr/lib/chromium/chromedriver
采用默认的sqli数据库就不需要修改,需要使用其他如mysql数据库需要安装python-mysql环境。
# 拉取镜像
docker pull jonnyan404/mrdoc-nginx
# 运行容器
docker run -d --name mrdoc -p 10086:10086 --restart=always -v /www/mrdoc:/app/MrDoc/config -v /www/mrdoc/media:/app/MrDoc/media jonnyan404/mrdoc-nginx
默认使用端口:10086,需要防火墙和安全组放通参考之前防火墙配置文章。
默认账号:admin。
默认密码:需要使用docker logs mrdoc 2>&1|grep pwd 查询,第一次登录进去修改即可。
# 如果上述密码无法登陆,通过创建新用户或者修改密码进行操作。
#方式一:创建新管理员
docker exec -it mrdoc python manage.py createsuperuser
#根据提示输入 账号/邮箱/密码 即可
#方式二:修改管理员密码
docker exec -it mrdoc python manage.py changepassword admin
#按提示输入新密码即可,英文大小写混合+数字大于8位
简单使用:包括后台设置、用户设置、文集和文档设置
后台管理 文集管理 文档管理文档支持多用户注册登录,适合小型团队协作,在线编辑,粘贴图片上传,我觉得暂时是满足我的要求了,其他台复杂的也不需要。
升级与更新都强烈建议备份文档和数据库,防止出现不可逆故障。
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup \
-s "0 3 * * *" \
mrdoc
# 仅限已挂载数据目录的使用,否则会造成数据丢失.
# --cleanup 升级会自动清理老版本
# -s 定时检查更新,上述默认每天凌晨3点检查更新
# mrdoc 代表仅自动更新名称为 mrdoc 的容器
大概思路是备份映射到宿主机文件目录,然后重新拉取镜像,使用相同的docker run参数创建容器。
# 数据备份
如果未挂载本地目录,请按照步骤执行。
如果已挂载,仅需执行第 2 步即可。
docker cp mrdoc:/app/MrDoc/config /tmp/config
docker cp mrdoc:/app/MrDoc/media /tmp/media
# 升级版本
在此以alpine版本进行示例,如果使用Nginx版本,请将mrdoc-alpine替换为mrdoc-nginx
docker pull jonnyan404/mrdoc-alpine
docker stop mrdoc && docker rm mrdoc
然后重新运行之前的 docker run 命令
# 恢复数据
docker cp /tmp/config mrdoc:/app/MrDoc
docker cp /tmp/media mrdoc:/app/MrDoc
# 重启容器
docker restart mrdoc
本文由 mdnice 多平台发布