前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【实用的开源项目】使用服务器部署MrDoc,一个支持跨平台、跨终端的在线文档、知识库管理程序

【实用的开源项目】使用服务器部署MrDoc,一个支持跨平台、跨终端的在线文档、知识库管理程序

原创
作者头像
laulzgoay
发布2023-06-09 18:46:12
2.1K0
发布2023-06-09 18:46:12
举报
文章被收录于专栏:小俊博客小俊博客

1. 前言

之前小俊也用过不少知识库管理系统,不过也是很久之前啦,最近发现了一个支持跨平台、跨终端的在线文档、知识库管理程序叫作 MrDoc觅思文档 ,简单使用之后,感觉还不错,推荐给大家,也作为 【实用的开源项目】 中的一期教程教大家如何部署这款程序。

1.1 官方网站

官方网站: https://mrdoc.pro/ 官方Gitee: https://gitee.com/zmister/MrDoc 官方Demo:http://mrdoc.zmister.com/

2. MrDoc觅思文档 简介

自托管、私有部署的在线文档管理系统和知识库

3. 准备工作

  1. 【必需】一台服务器(推荐 腾讯云轻量应用服务器 HK 或境内,其他服务器(如 CloudCone 、 RackNerd 、家里云或者各家企业的私有云亦可
  2. 【建议】操作系统: Debian 10
  3. 【建议且必需】域名一枚,并解析到服务器上
  4. 【必需反向代理本教程选用NPM】安装好Nginx Proxy Manager( 相关教程

注意

这是一篇全新安装教程,若你的服务器已有环境或者已有数据请谨慎重装系统!!!可直接跳至 6.2 环境准备(其他服务器) 继续阅读。 这是一篇全新安装教程,若你的服务器已有环境或者已有数据请谨慎重装系统!!!可直接跳至 6.2 环境准备(其他服务器) 继续阅读。 这是一篇全新安装教程,若你的服务器已有环境或者已有数据请谨慎重装系统!!!可直接跳至 6.2 环境准备(其他服务器) 继续阅读。

本文软件基于腾讯云轻量应用服务器安装,无建议配置,教程使用的腾讯云轻量应用服务器系统为 Ubuntu Server 20.04 LTS 64bit !理论上腾讯云轻量应用服务器为 Ubuntu20.04-Docker20 的服务器操作应与本文基本一致(包括过程与报错),其他系统为 Debian 或者 Ubuntu 的服务器应与本文大同小异! 腾讯云轻量应用服务器购买地址: https://curl.qcloud.com/XqKjWCYA 腾讯云618夏日盛惠: https://curl.qcloud.com/ujD237Hl 腾讯云云产品特惠专区: https://url.cn/GhZUBLVG

4. 视频教程

5. 界面演示

5.1 首页

MrDoc-首页.png
MrDoc-首页.png

5.2 文集管理页

MrDoc-文集管理.png
MrDoc-文集管理.png

5.3 表格查看页

MrDoc-查看表格.png
MrDoc-查看表格.png

5.4 文档查看页

MrDoc-查看文档.png
MrDoc-查看文档.png

5.5 文档编辑页

MrDoc-编辑文档.png
MrDoc-编辑文档.png

5.6 表格编辑页

MrDoc-编辑表格.png
MrDoc-编辑表格.png

5.7 后台管理页

MrDoc-后台管理.png
MrDoc-后台管理.png

6. 部署 MrDoc

6.1 环境准备(腾讯云轻量应用服务器)

该步骤特别为使用腾讯云轻量应用服务器的用户准备,若你不是用腾讯云轻量应用服务器部署该程序,可以直接转到 6.2 环境准备(其他服务器) 继续阅读。

6.1.1 重装系统

此操作前请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!! 此操作前请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!! 此操作前请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!!

进入腾讯云轻量应用服务器的控制台,进入 重装系统 界面,然后选择 使用容器镜像 ,列表中选择 Ubuntu20.04-Docker20请确保服务器上无重要程序、文件!!!请确保服务器上的数据已经备份好!!! 然后点击勾选 确认已了解以上内容,我确定已备份完成 ,而后点击确定即可完成系统重装。

使用服务器部署MrDoc-重装系统.png
使用服务器部署MrDoc-重装系统.png
使用服务器部署MrDoc-重装系统-2.png
使用服务器部署MrDoc-重装系统-2.png

腾讯云轻量应用服务器与 CVM 相比,轻量应用服务器更聚焦于云计算入门者、学生等用户群体,更加简单易用,将基础云资源与热门开源软件的融合打包实现应用的开箱即用,更适合于支撑小型应用,这边我们之间选择 Docker 容器镜像,就可以跳过安装 Dockerdocker-compose的步骤(如果你使用的是境内服务器,腾讯云的 Docker 容器镜像已经配置好了国内镜像源,可以加速访问 Docker 镜像资源)。由于腾讯云的 Docker 容器镜像中的 Docker 已经安装了 docker-compose 。所以下文中若你见到 docker compose 命令,请你使用使用 docker-compose 命令!

6.1.2 登录服务器

OrcaTerm (原名 WebShell )是腾讯遨驰云原生操作系统中 CVMLighthouse 、裸金属等产品的统一网页终端,帮助用户随时随地通过浏览器远程登录服务器管理业务,相比本地远程终端更轻量便捷,无需掌握 SSHFTP 也可轻松操作。 进入腾讯云轻量应用服务器的控制台,点击右上方的 登录 ,使用腾讯云正在公测的 OrcaTerm 登录到服务器。

使用服务器部署MrDoc-登录服务器.png
使用服务器部署MrDoc-登录服务器.png

然后点击登录,即可登录到服务器中

使用服务器部署MrDoc-登录服务器-2.png
使用服务器部署MrDoc-登录服务器-2.png

输入下面这句命令登录到 root 账号

代码语言:javascript
复制
sudo -i
使用服务器部署MrDoc-登录到root.png
使用服务器部署MrDoc-登录到root.png

6.1.3 安装 Nginx Proxy Manager(必需反向代理本教程选用NPM)

安装 Nginx Proxy Manager 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击这篇文章学习👉👉👉链接:【教程】使用腾讯云轻量应用服务器搭建Nginx Proxy Manager,优美简单地解决反向代理!https://www.smalljun.com/archives/3113.html ,当然想要使用反向代理的小伙伴要是熟悉 Nginx ,也可以自己手搓 Nginx 进行反向代理哦!你想用宝塔面板的话,也是没有问题哒!

6.2 环境准备(其他服务器)

该步骤为各种服务器的环境准备通法,若你使用腾讯云轻量应用服务器部署该程序并已经仔细阅读 6.1 环境准备(腾讯云轻量应用服务器) 并按步骤完成操作,可以跳过该步骤,直接转到 6.3 部署 MrDoc 继续阅读。

6.2.1 更新 Packages 并安装必要软件包

执行以下命令,更新 Packages 并安装必要软件包

代码语言:javascript
复制
apt -y update
apt -y install curl
使用服务器部署MrDoc - 更新 Packages 并安装必要软件包.png
使用服务器部署MrDoc - 更新 Packages 并安装必要软件包.png

6.2.2 安装并启动 Docker

6.2.2.1 境外服务器安装 Docker

执行以下命令,境外服务器安装 Docker

代码语言:javascript
复制
curl -fsSL https://get.docker.com | bash -s docker
6.2.2.2 境内服务器安装 Docker

执行以下命令,境内服务器使用阿里云镜像源安装 Docker

代码语言:javascript
复制
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

执行以下命令,境内服务器使用国内 daocloud 一键安装命令安装 Docker

代码语言:javascript
复制
curl -sSL https://get.daocloud.io/docker | sh
6.2.2.3 启动 Docker

输入并执行以下命令,启动 Docker

代码语言:javascript
复制
systemctl start docker

再执行以下命令,查看 Docker 的运行状态

代码语言:javascript
复制
systemctl status docker

最后执行以下命令,设置 Docker 开机自启动

代码语言:javascript
复制
systemctl enable docker
使用服务器部署MrDoc - 启动 Docker.png
使用服务器部署MrDoc - 启动 Docker.png

由于我们通过以上一键脚本安装的 Docker 为最新版本,新版本的 Docker 自带 compose 这个子命令,所以我们无需额外安装 docker-compose 。下文中若你见到 docker-compose 命令,请你使用使用 docker compose 命令! 使用方面仅有一个 - (dash)字符只差,新版使用 docker compose 命令,而如果你是旧版本就使用 docker-compose 命令。

6.2.3 安装 Nginx Proxy Manager(必需反向代理本教程选用NPM)

安装 Nginx Proxy Manager 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击这篇文章学习👉👉👉链接:【教程】使用腾讯云轻量应用服务器搭建Nginx Proxy Manager,优美简单地解决反向代理!https://www.smalljun.com/archives/3113.html ,当然想要使用反向代理的小伙伴要是熟悉 Nginx ,也可以自己安装 Nginx 进行反向代理哦!你想用宝塔面板的话,也是没有问题哒!

6.3 部署 MrDoc

本次部署使用 Docker镜像 By jonnyan404 ,非官方镜像,镜像未经过验证,请自行辨别其安全!!! 本次部署使用 Docker镜像 By jonnyan404 ,非官方镜像,镜像未经过验证,请自行辨别其安全!!! 本次部署使用 Docker镜像 By jonnyan404 ,非官方镜像,镜像未经过验证,请自行辨别其安全!!!

6.3.1 新建目录

执行以下命令,新建目录

代码语言:javascript
复制
mkdir -p /opt/docker/mrdoc && cd /opt/docker/mrdoc
mkdir -p /opt/docker/docker_data/mysql/data && mkdir -p /opt/docker/docker_data/mrdoc/{config,media}
部署mrdoc-新建目录.png
部署mrdoc-新建目录.png

6.3.2 新建配置文件并编辑

执行以下命令,新建 config.ini 文件并编辑

代码语言:javascript
复制
nano /opt/docker/docker_data/mrdoc/config/config.ini

然后输入以下配置内容,跟着注释按需修改,然后 Ctrl X + y +回车 退出并保存即可。

代码语言:javascript
复制
[site]
# True表示开启站点调试模式,False表示关闭站点调试模式
debug = False

[database]
# engine,指定数据库类型,接受sqlite、mysql、oracle、postgresql
engine = mysql
name = mrdoc 
#一般不用修改,若修改了,下方的docker-compose.yaml文件需同步修改
user = smalljun 
#设置一个自定义的数据库用户名以替换smalljun 需与下方的docker-compose.yaml文件中一致!
password = smalljunmrdoc! 
#设置一个自定义的数据库密码以替换smalljunmrdoc! 需与下方的docker-compose.yaml文件中一致!
host = mysql-with-mrdoc 
#需与下方的docker-compose.yaml文件中一致!
port = 3306 
#需与下方的docker-compose.yaml文件中一致!

[locale]
# 默认站点语言为 中文简体,如需使用其他语言,请配置 language 参数;
# 默认站点时区为 Asia/Shanghai,如需使用其他时区,请配置 timezone 参数

[selenium]
# 在Windows环境下测试或使用,请配置driver = Chrome
# driver = Chrome
# 如果系统无法正确安装或识别chromedriver,请指定chromedriver在计算机上的绝对路径
# driver_path = driver_path

如下图所示

部署mrdoc-新建配置文件.png
部署mrdoc-新建配置文件.png

6.3.3 新建docker-compose.yaml文件并编辑

执行以下命令,新建 docker-compose.yaml 文件并编辑

代码语言:javascript
复制
nano docker-compose.yaml

然后输入以下配置内容,然后 Ctrl X + y +回车 退出并保存即可。

代码语言:javascript
复制
---
version: "3"
services:
  mrdoc:
    image: jonnyan404/mrdoc-nginx:0.8.9-with-mysql
    container_name: mrdoc-with-mysql
    restart: always
    volumes:
      - /opt/docker/docker_data/mrdoc/config:/app/MrDoc/config
      - /opt/docker/docker_data/mrdoc/media:/app/MrDoc/media
    environment:
      - TZ=Asia/Shanghai
#      - LISTEN_PORT=10086
      - CREATE_USER=1 # 0 不创建管理员用户, 1 创建管理员用户,默认是1
      - USER=smalljun # 自定义管理员用户名
      - MM=smalljunpw # 自定义管理员密码 如果默认用户密码,以及变量添加用户密码无法登录,请参考:https://www.mrdoc.fun/project-1/doc-242/
    ports:
      - 10086:10086
    depends_on:
      - mysql
  mysql:
    image: mysql:5.7
    container_name: mysql-with-mrdoc # 这里名字请不要修改,否则数据库会连接失败.
    restart: always
    volumes:
      - /opt/docker/docker_data/mysql/data:/var/lib/mysql
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=SmallJUNMYSQL!
      - MYSQL_DATABASE=mrdoc
      - MYSQL_USER=smalljun
      - MYSQL_PASSWORD=smalljunmrdoc!
    expose:
      - "3306"
    ports:
      - 63306:3306
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci

如下图所示

部署mrdoc-新建docker-compose.yaml文件.png
部署mrdoc-新建docker-compose.yaml文件.png

注意

  1. docker-compose.yaml 文件中 10086 为暴露端口,如被占用,请自行更改替换,需要在云服务器的控制台防火墙开放相应端口!

6.3.3 启动容器

输入执行以下命令后台启动容器

代码语言:javascript
复制
docker compose up -d #新版本Docker使用该命令
docker-compose up -d #旧版本Docker使用该命令,例:上面提到的腾讯云轻量应用服务器的Docker镜像中自带的Docker-compose

如下图所示

部署mrdoc-启动容器.png
部署mrdoc-启动容器.png

启动完后再输入执行以下命令确认所有容器都是 runningup 状态

代码语言:javascript
复制
docker compose ps #新版本Docker使用该命令
docker-compose ps #旧版本Docker使用该命令,例:上面提到的腾讯云轻量应用服务器的Docker镜像中自带的Docker-compose

如下图所示

部署mrdoc-检查容器状态.png
部署mrdoc-检查容器状态.png

再输入以下命令,查看一下容器日志,没有出现什么错误基本上就行了

代码语言:javascript
复制
docker logs mrdoc-with-mysql
docker logs mysql-with-mrdoc

此时你会发现 MrDoc 还进不去,不用担心

部署mrdoc-500.png
部署mrdoc-500.png

主要是由于 MySQL 初始化过慢,等待MySQL 初始化完毕,我们还需要输入以下命令,重启 MrDoc 容器

代码语言:javascript
复制
docker restart mrdoc-with-mysql
部署mrdoc-重启MrDoc容器.png
部署mrdoc-重启MrDoc容器.png

6.4 配置反向代理

先把域名解析到服务器进入 Nginx Proxy Manager ,点击 Hosts ,然后点击 Add Proxy Host,按下图进行配置,下图中的 172.17.0.1 可能有所不一,请执行 ip addr 自行查找 docker0 网卡的内网IP!

代码语言:javascript
复制
Domain Names:填写你想用在该程序的域名
Scheme:默认http #一般不用改
Forward Hostname / IP:172.17.0.1 #一般为 `172.17.0.1` ,可能有所不一,请执行 `ip addr` 自行查找 `docker0` 网卡的内网IP!
Forward Port:10086 #暴露端口(若跟着本文未修改 `yaml` 文件中的暴露端口。应为 `10086` )

如下图所示

部署mrdoc-配置反向代理.png
部署mrdoc-配置反向代理.png

先不要着急着点 Save ,大家先去 DNS 提供商解析域名哦!然后我们可以为程序添加上 SSL 证书,给他加上一道小绿锁,不过如果你点了也没关系,没点 Save 的朋友点击 SSL ,然后点击 Request a new SSL Certificate ,然后把 Force SSLHTTP/2 Support 打开,修改一下 Email Address for Let's Encrypt 的邮箱,然后 Save 即可;点击了 Save 的朋友,点击右边的三点,点击 Edit ,重复上述步骤即可!

如下图所示

部署mrdoc-开启HTTPS.png
部署mrdoc-开启HTTPS.png

至此,我们已经安装完成 MrDoc 这一个支持跨平台、跨终端的在线文档、知识库管理程序! 浏览器访问您刚刚设置的域名即可访问! 注意

  1. 需要在服务器的后台防火墙开放相应端口!需要开放 80 tcp443 tcp81 tcp 哦。
  2. 若部署过程中未改动 docker-compose.yaml 文件,则默认管理员帐号为: smalljun ,默认管理员密码为: smalljunpw

7. 目前遇到的问题

7.1 境内服务器难以安装 Docker

建议直接执行以下命令,安装 Docker

代码语言:javascript
复制
apt install docker.io

然后,参考小俊之前写过的👉👉👉【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html ,安装 Docker-compose ,然后再进行 第6.2步及其后续操作

7.2 账号密码不对无法登录

由于某些特定系统版本,导致自动创建用户密码无效,暂未找到具体原因(如有同学找到,请在此反馈.),所以解决办法如下: 方式一:创建新管理员 docker exec -it mrdoc-with-mysql python manage.py createsuperuser Shell session Copy 根据提示输入 账号/邮箱/密码 即可 方式二:修改管理员密码 docker exec -it mrdoc-with-mysql python manage.py changepassword admin Shell session Copy 按提示输入新密码即可,英文大小写混合+数字大于8位

部署mrdoc-创建新管理员.png
部署mrdoc-创建新管理员.png

以上解决方法来自 jonnyan9.解决新安装docker版本的账号密码不对无法登录BUG

8. Ending

有问题可以去 GiteeIssues,也可以在评论区互相交流探讨哦!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
    • 1.1 官方网站
    • 2. MrDoc觅思文档 简介
    • 3. 准备工作
      • 注意
      • 4. 视频教程
      • 5. 界面演示
        • 5.1 首页
          • 5.2 文集管理页
            • 5.3 表格查看页
              • 5.4 文档查看页
                • 5.5 文档编辑页
                  • 5.6 表格编辑页
                    • 5.7 后台管理页
                    • 6. 部署 MrDoc
                      • 6.1 环境准备(腾讯云轻量应用服务器)
                        • 6.1.1 重装系统
                        • 6.1.2 登录服务器
                        • 6.1.3 安装 Nginx Proxy Manager(必需反向代理本教程选用NPM)
                      • 6.2 环境准备(其他服务器)
                        • 6.2.1 更新 Packages 并安装必要软件包
                        • 6.2.2 安装并启动 Docker
                        • 6.2.3 安装 Nginx Proxy Manager(必需反向代理本教程选用NPM)
                      • 6.3 部署 MrDoc
                        • 6.3.1 新建目录
                        • 6.3.2 新建配置文件并编辑
                        • 6.3.3 新建docker-compose.yaml文件并编辑
                        • 6.3.3 启动容器
                      • 6.4 配置反向代理
                      • 7. 目前遇到的问题
                        • 7.1 境内服务器难以安装 Docker
                          • 7.2 账号密码不对无法登录
                          • 8. Ending
                          相关产品与服务
                          轻量应用服务器
                          轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档