技术文档
MrDoc二级域名配置+优化(直接复制粘贴版)
MrDoc 完整部署+安全配置+自动备份一条龙指南
本文档使用 MrDoc 发布
-
+
MrDoc 完整部署+安全配置+自动备份一条龙指南
### 封面图  ## 一、前言 本文涵盖 MrDoc 从「从零部署」到「安全加固」再到「数据备份」的全流程,适配 Docker 环境 + 阿里云官方镜像,包含端口修改、管理员账号密码重置、自动备份脚本、本地下载等核心功能,一步到位完成部署与运维。 ## 二、第一部分:MrDoc 从零部署(基础流程) ### 1. 环境清理(从零开始,避免残留) ``` # 停止并删除残留MrDoc容器 sudo docker rm -f mrdoc 2>/dev/null # 删除残留MrDoc镜像 sudo docker rmi registry.cn-hangzhou.aliyuncs.com/zmister/mrdoc:latest 2>/dev/null # 清理工作目录 sudo rm -rf /opt/mrdoc # 清理Docker缓存 sudo docker system prune -f ``` ### 2. 创建工作目录并拉取源码 ``` # 创建工作目录 sudo mkdir -p /opt/mrdoc && cd /opt/mrdoc # 安装git并拉取MrDoc源码(v9.x核心依赖) sudo apt install git -y git clone https://gitee.com/zmister/MrDoc.git ``` ### 3. 拉取官方阿里镜像 ``` # 拉取阿里云官方最新镜像(国内加速,稳定无坑) sudo docker pull registry.cn-hangzhou.aliyuncs.com/zmister/mrdoc:latest ``` ### 4. 编写 docker-compose.yml 配置文件 ``` sudo tee docker-compose.yml > /dev/null <<'EOF' services: mrdoc: image: registry.cn-hangzhou.aliyuncs.com/zmister/mrdoc:latest container_name: mrdoc restart: always ports: - "10086:10086" # 初始端口映射(后续可修改) volumes: - ./MrDoc:/app/MrDoc # 挂载源码,解决文件缺失问题 - ./mrdoc_data:/app/MrDoc/data # 数据持久化(含数据库) EOF ``` ### 5. 启动容器并开放端口 ``` \# 启动容器 sudo docker compose up -d \# 查看容器状态(确认显示「Up」) sudo docker compose ps ``` #### 开放初始端口(防火墙) * Ubuntu/Debian 系统: ``` sudo ufw allow 10086/tcp && sudo ufw reload ``` * CentOS/RedHat 系统: ``` sudo firewall-cmd --add-port=10086/tcp --permanent && sudo firewall-cmd --reload ``` ### 6. 创建超级管理员账号 #### 关键提示 SSH 输入密码时为 **盲打模式**(无明文 / 星号显示),属正常安全机制,确保两次输入一致即可。 ``` \# 执行创建命令(补全源码路径,避免报错) docker exec -it mrdoc python /app/MrDoc/manage.py createsuperuser ``` #### 输入示例 ``` Username (leave blank to use 'root'): admin # 初始用户名(后续可修改) Email address: admin@test.com # 邮箱(用于密码找回) Password: MrDoc@2025&89757 # 高强度密码(字母+数字+特殊字符,≥12位,注意盲打不会显示) Password (again): MrDoc@2025&89757 # 重复密码 Superuser created successfully. # 提示此信息即创建成功 ``` ### 7. 首次访问验证 浏览器输入:`http://服务器公网IP:10086`,使用上述账号密码登录,确认能正常进入 MrDoc 后台。 ## 三、第二部分:安全配置(修改端口 + 重置账号密码) ### 1. 修改 MrDoc 访问端口(以 10086 改为 8090 为例) #### (1)停止容器并修改配置 ``` \# 进入工作目录 cd /opt/mrdoc \# 停止容器 sudo docker compose down \# 编辑配置文件 sudo vim /opt/mrdoc/docker-compose.yml ``` #### (2)修改端口映射 找到 `ports` 行,将左侧宿主机端口改为新端口(右侧容器端口固定为 10086): ``` ports:   \- "8090:10086" # 新端口:8090(可自定义其他未占用端口) ``` 保存退出(vim 操作:ESC → :wq → 回车)。 #### (3)更新防火墙配置 * Ubuntu/Debian 系统: ``` \# 关闭旧端口(增强安全性) sudo ufw delete allow 10086/tcp \# 开放新端口 sudo ufw allow 8090/tcp && sudo ufw reload ``` * CentOS/RedHat 系统: ``` \# 关闭旧端口 sudo firewall-cmd --remove-port=10086/tcp --permanent \# 开放新端口 sudo firewall-cmd --add-port=8090/tcp --permanent && sudo firewall-cmd --reload ``` #### (4)重启容器并验证 ``` \# 重启容器 sudo docker compose up -d \# 验证端口映射是否生效 sudo docker compose ps ``` 新访问地址:`http://服务器IP:8090` ### 2. 重置超级管理员账号(避免默认用户名被爆破) #### 方案 1:修改用户名(推荐) ``` \# 进入容器终端 docker exec -it mrdoc bash \# 进入源码目录并启动Django终端 cd /app/MrDoc python manage.py shell ``` 执行以下 Python 命令: ``` \# 导入用户模型 from django.contrib.auth.models import User \# 查询原用户名(如初始admin) user = User.objects.get(username='admin') \# 修改为复杂用户名(如 DocAdmin\_89757) user.username = 'DocAdmin\_89757' \# 保存修改 user.save() \# 退出终端 exit() \# 退出容器 exit ``` #### 方案 2:重置高强度密码 ``` \# 直接执行密码重置命令(替换为修改后的用户名) docker exec -it mrdoc python /app/MrDoc/manage.py changepassword DocAdmin\_89757 ``` 按提示盲打输入新密码(示例:`MrDoc@2025#Secure`),需满足: * 长度 ≥12 位 * 包含大小写字母、数字、特殊字符 * 避免生日、手机号、常见单词等弱密码 #### 方案 3:新增超级管理员(废弃原账号) ``` \# 创建全新超级管理员 docker exec -it mrdoc python /app/MrDoc/manage.py createsuperuser ``` 按提示输入新用户名、邮箱、高强度密码,创建完成后可删除原账号: ``` \# 进入Django终端删除原账号 docker exec -it mrdoc python /app/MrDoc/manage.py shell ``` ``` from django.contrib.auth.models import User \# 删除原admin账号 User.objects.filter(username='admin').delete() exit() exit ``` ## 四、第三部分:数据备份(自动备份 + 本地下载) ### 1. 手动备份(临时备份用) ``` \# 进入工作目录 cd /opt/mrdoc \# 备份数据目录(含数据库+文档),命名含日期 sudo tar -zcvf mrdoc\_backup\_\$(date +%Y%m%d).tar.gz ./mrdoc\_data ./MrDoc \# 查看备份文件 ls -l mrdoc\_backup\_\*.tar.gz ``` ### 2. 自动备份(定时执行,无需手动操作) #### (1)创建自动备份脚本 ``` \# 进入工作目录 cd /opt/mrdoc \# 创建备份脚本 sudo tee mrdoc\_auto\_backup.sh > /dev/null <<'EOF' \#!/bin/bash \# 备份文件名(含日期时间) BACKUP\_NAME="mrdoc\_backup\_\$(date +%Y%m%d\_%H%M%S).tar.gz" \# 备份目录(数据+源码) BACKUP\_DIR="/opt/mrdoc" \# 备份文件存放路径 BACKUP\_PATH="\$BACKUP\_DIR/backups" \# 创建备份存放目录(若不存在) mkdir -p \$BACKUP\_PATH \# 执行备份 tar -zcvf \$BACKUP\_PATH/\$BACKUP\_NAME \$BACKUP\_DIR/mrdoc\_data \$BACKUP\_DIR/MrDoc --exclude="\$BACKUP\_DIR/backups" \# 保留最近30天备份(自动删除旧备份,节省空间) find \$BACKUP\_PATH -name "mrdoc\_backup\_\*.tar.gz" -mtime +30 -delete echo "备份完成:\$BACKUP\_PATH/\$BACKUP\_NAME" EOF ``` #### (2)给脚本添加执行权限 ``` sudo chmod +x /opt/mrdoc/mrdoc\_auto\_backup.sh ``` #### (3)设置定时任务(每天凌晨 2 点自动备份) ``` \# 编辑定时任务 sudo crontab -e ``` 在文件末尾添加以下内容(按 `i` 进入编辑模式): ``` 0 2 \* \* \* /opt/mrdoc/mrdoc\_auto\_backup.sh >> /opt/mrdoc/backup\_logs.log 2>&1 ``` 保存退出(ESC → :wq → 回车)。 #### (4)验证定时任务是否生效 ``` \# 查看定时任务列表 sudo crontab -l \# 手动执行脚本测试 sudo /opt/mrdoc/mrdoc\_auto\_backup.sh \# 查看备份文件 ls -l /opt/mrdoc/backups/ ``` ### 3. 备份文件下载到本地 #### 方法 1:使用 SCP 命令(Windows/Mac/Linux 通用) 本地电脑打开终端 / 命令提示符,执行以下命令(替换对应参数): ``` \# 格式:scp 服务器用户名@服务器IP:备份文件路径 本地保存路径 scp root@服务器IP:/opt/mrdoc/backups/mrdoc\_backup\_2025XXXX.tar.gz /本地/保存/路径/ ``` 示例(保存到本地桌面): ``` scp root@120.78.1XX.XX:/opt/mrdoc/backups/mrdoc\_backup\_20250101\_020000.tar.gz \~/Desktop/ ``` 按提示输入服务器密码,即可开始下载。 #### 方法 2:使用 FTP 工具(可视化操作) 1. 本地安装 FileZilla、WinSCP 等 FTP 工具; 2. 输入服务器 IP、SSH 端口(默认 22)、用户名、密码连接; 3. 远程路径导航到 `/opt/mrdoc/backups/`,选中备份文件; 4. 右键选择「下载」,保存到本地指定目录即可。 ## 五、常用运维命令(备查) | 功能 | 命令 | | ----------- | -------------------------------------- | | 启动 MrDoc 容器 | sudo docker compose up -d | | 停止 MrDoc 容器 | sudo docker compose down | | 重启 MrDoc 容器 | sudo docker compose restart | | 查看容器状态 | sudo docker compose ps | | 查看运行日志 | sudo docker compose logs mrdoc | | 手动执行备份 | sudo /opt/mrdoc/mrdoc\_auto\_backup.sh | | 查看备份日志 | cat /opt/mrdoc/backup\_logs.log | ## 六、安全加固额外建议 1. 服务器 SSH 改为密钥登录,关闭密码登录,防止服务器被爆破; 2. 防火墙 / 安全组仅允许指定 IP 访问 MrDoc 端口(如公司 / 家庭 IP); 3. 每 3 个月更新一次管理员密码,定期检查备份是否正常; 4. 避免使用 80、443、8080 等常见端口,选择 10000+ 高位端口; 5. 定期更新 MrDoc 镜像和源码,修复已知安全漏洞。 > (注:文档部分内容由 AI 协助生成)
admin
2025年12月2日 23:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码