Docmost是什么

Docmost 是一个开源的协作 wiki 和文档软件。它是 Confluence 和 Notion 的开源替代方案。
官方文档:https://docmost.com/docs/

核心功能

  • 主开发语言:主要使用 TypeScript 开发(性能好,扩展性强)
  • 实时协作: 支持多人同时编辑文档,像 Google Docs 一样流畅。
  • 可视化工具支持: 内置支持 Draw.io、Excalidraw、Mermaid 等画图工具,轻松制作专业文档。
  • 权限管理: 可以灵活管理文档的访问权限,满足企业级安全需求。
  • 全文搜索: 强大的搜索引擎让你秒找到需要的内容,再也不用翻半天。
  • 文档历史记录: 支持版本管理,可以回溯任何时间段的文档内容。
  • 多种嵌入功能: 能嵌入外部资源,比如 Airtable、Loom、Miro 等,让文档不仅是文字,还更直观。
  • 文件附件: 方便上传和管理图片、PDF 等文件。
  • 团队评论: 支持文档实时评论,提升团队沟通效率。

安装

环境准备

安装Docker和Docker Compose

# 安装基础工具
yum install -y net-tools wget vim   # 解决网络命令缺失问题 
# 安装 Docker 及 Docker Compose
yum install -y docker
systemctl start docker && systemctl enable docker
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Docmost 部署流程

生成随机密钥(必须配置)

mkdir -p /opt/docmost && cd /opt/docmost
openssl rand -hex 32   #保存下该密钥
  • 关键配置说明:
    • APP_SECRET 必须使用长随机密钥,否则服务启动失败
    • 数据库密码(POSTGRES_PASSWORD 和 DATABASE_URL)需设置为强密码且保持一致

编写 docker-compose.yml

version: '3'
services:
  docmost:
    image: docmost/docmost:latest
    env_file: .env  # 添加这一行引用配置
    depends_on:
      - db
      - redis
    environment:
      APP_URL: "http://localhost:3000"   # 后续绑定域名需修改
      APP_SECRET: "5nx1BOmRGmz17pcxL0M9j1hWK5Jb0h25BlQ9i9YxLDk4jMzyTLl8lFSVOiIcdF5b"  # 引用openssl生成的密钥
      DATABASE_URL: "postgresql://docmost:YourDBPassword@db:5432/docmost?schema=public"
      REDIS_URL: 'redis://redis:6379'
    ports:
      - "3000:3000"
    restart: unless-stopped
    volumes:
      - ./data:/app/data

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: "YourDBPassword"  # 需与 DATABASE_URL 一致
    restart: unless-stopped
    volumes:
      - ./db_data:/var/lib/postgresql/data

  redis:
    image: redis:7.2-alpine
    restart: unless-stopped
    volumes:
      - ./redis_data:/data

启动容器

docker-compose up -d   # 后台启动
docker ps               # 检查容器状态(应显示 Up)

配置邮件环境变量

新建用户当前只有通过邮件邀请

创建配置文件

cd /opt/docmost  # 进入部署目录
vim .env         # 创建环境变量文件
 # .env 文件内容
MAIL_DRIVER=smtp
SMTP_HOST=smtp.qq.com
SMTP_PORT=465
SMTP_USERNAME=1678712889@qq.com
SMTP_PASSWORD=****absjjbha   #授权码
SMTP_ENCRYPTION=ssl
SMTP_SECURE=true
SMTP_TLS_REJECT_UNAUTH=false
MAIL_FROM_ADDRESS=1678712889@qq.com
MAIL_FROM_NAME=Docmost
chmod 600 /opt/docmost/.env

重启服务:

docker-compose down && docker-compose up -d
  • 邮箱服务要求:
    • Gmail/QQ邮箱需开启 SMTP 服务
    • Gmail 需开启两步验证并创建应用密码

启停

停止服务

docker compose down

启动服务

docker compose restart

初始化与访问

  • 首次访问:
    • 浏览器打开 http://<服务器IP>:3000,使用默认账号:
      • 用户名:admin@example.com
      • 密码:admin
  • 强制修改密码:登录后进入 Settings > User Management,立即重置管理员密码
  • 域名与 HTTPS 配置(可选):
    • 修改 docker-compose.yml 中的 APP_URL 为域名(如 https://doc.yourdomain.com)。
    • 通过 Nginx 反向代理配置 SSL 证书(推荐 Let’s Encrypt)

备份

备份期间停止写入:

docker-compose stop docmost docmost-worker
# 执行备份
docker-compose start docmost docmost-worker

数据库备份

# 完整数据库备份
docker exec docmost-db-1 pg_dump -U docmost -Fc docmost > docmost_db_$(date +%F).dump
# 创建仅数据备份(不含schema)
docker exec docmost-db-1 pg_dump -U docmost -a docmost > docmost_data_$(date +%F).sql

恢复数据库:

docker-compose down
docker volume rm docmost_db_data
docker-compose up -d db
docker exec -i docmost-db-1 psql -U docmost -d docmost < backup.sql

文件系统备份

# 备份整个应用目录
tar -czpf docmost_backup_$(date +%F).tar.gz \
  /opt/docmost/data \
  /opt/docmost/redis_data \
  /opt/docmost/db_data \
  /opt/docmost/docker-compose.yml \
  /opt/docmost/.env \

恢复文件系统

tar -xzvf docmost_backup.tar.gz -C /opt/docmost

Redis 备份

# 创建RDB快照
docker exec docmost-redis-1 redis-cli save
docker cp docmost-redis-1:/data/dump.rdb docmost_redis_$(date +%F).rdb

重启服务:

docker-compose up -d

安装验证以及升级

# 查看日志确认运行状态
docker-compose logs -f docmost

升级版本

docker pull docmost/docmost:latest
docker compose up --force-recreate --build docmost -d

高级配置与优化

  • 空间与权限管理:
    • 创建 Spaces 划分不同项目区域,设置细粒度权限(编辑/只读)
  • 数据备份:
    • 定期备份 /opt/docmost 目录下的 data、db_data、redis_data 卷。
  • 常见问题解决:
    • 容器启动失败:检查 APP_SECRET 格式(需 64 位十六进制字符串) 。
    • 数据库连接错误:确认 DATABASE_URL 与 POSTGRES_PASSWORD 一致性。
    • 端口冲突:若 3000 端口被占用,修改 ports 为 “新端口:3000”。

故障无法解决强制重建容器

docker-compose down --volumes --remove-orphans  # 停止并删除旧容器
docker system prune -af  # 清理旧容器缓存
docker-compose up -d --force-recreate  # 重新构建启动

镜像拉取报错

如果镜像无法下载,调整docker 的镜像地址

{
"registry-mirrors": [
"https://dockerpull.com",
"https://dockerproxy.cn",
"https://docker.loli.voto",
"https://docker.chenby.cn",
"https://docker-cf.registry.cyou",
"https://docker.m.daocloud.io",
"https://docker.ketches.cn",
"https://docker.1panel.dev",
"https://docker.1panel.live",
"https://docker.rainbond.cc",
"https://hub.rat.dev",
"https://docker.aityp.com/",
"https://docker.catiz.eu.org/"
]

调整成中文

http://localhost:3000
在这里插入图片描述

编辑文档

访问该网站可使excel 生成markdown文本
https://tableconvert.com/excel-to-markdown

  • 复制表格内容
    在这里插入图片描述
  • 粘贴到网站文本框里在这里插入图片描述
  • 下拉找到Markdown
    在这里插入图片描述
  • 粘贴到Docmost
    在这里插入图片描述
  • 生成表格

在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐