开源协作wiki和文档软件Docmost

什么是 Docmost ?

Docmost 是一款开源协作 wiki 和文档软件。它是 ConfluenceNotion 等软件的开源替代品。使用 Docmost 可以无缝创建、协作和共享知识。非常适合管理您的 wiki、知识库、文档等。目前 Docmost 处于测试阶段。

软件的主要特点

安装

在群晖上以 Docker 方式安装。

因为涉及多个容器,采用了 docker-compose 方式安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
version: '3'

services:
docmost:
image: docmost/docmost:latest
container_name: docmost-app
depends_on:
- db
- redis
environment:
APP_URL: 'http://192.168.0.197:3140'
APP_SECRET: 'G6phWvAVU2JRStChrmJx'
DATABASE_URL: 'postgresql://docmost:STRONG_DB_PASSWORD@db:5432/docmost?schema=public'
REDIS_URL: 'redis://redis:6379'
ports:
- "3140:3000"
restart: unless-stopped
volumes:
- ./data:/app/data/storage

db:
image: postgres:16-alpine
container_name: docmost-db
environment:
POSTGRES_DB: docmost
POSTGRES_USER: docmost
POSTGRES_PASSWORD: STRONG_DB_PASSWORD
restart: unless-stopped
volumes:
- ./db:/var/lib/postgresql/data

redis:
image: redis:7.2-alpine
container_name: docmost-redis
restart: unless-stopped
volumes:
- ./redis:/data
  • 容器 docmost-app
可变 说明
APP_URL http://192.168.0.197:3140 Docmost 的访问地址,可以是 IP地址或者域名,其中 IP 为主机的 IP ,端口为本地端口,而不是容器端口
APP_SECRET 用于应用程序安全性的随机密钥
DATABASE_URL 根据后面的数据库,生成的 PostgreSQL 数据库的连接 URL,如果改了数据库设置,这里要跟着变
REDIS_URL redis://redis:6379 Redis 服务的连接 URL,默认的就可以

官方给的示例中 APP_SECRETREPLACE_WITH_LONG_SECRET,如果不修改会导致容器不断重启,日志显示如下:

1
2
3
4
5
6
7
8
docmost-app | The Environment variables has failed the following validations:
docmost-app | {"isNotIn":"APP_SECRET should not be one of the following values: REPLACE_WITH_LONG_SECRET"}
docmost-app | Please fix the environment variables and try again. Exiting program...
docmost-app | /app/apps/server:
docmost-app |  ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  server@0.2.1 start:prod: `cross-env NODE_ENV=production node dist/main`
docmost-app | Exit status 1
docmost-app |  ELIFECYCLE  Command failed with exit code 1.
docmost-app exited with code 1
  • 容器 docmost-db
可变 说明
POSTGRES_DB docmost 数据库库名
POSTGRES_USER docmost 数据库用户名
POSTGRES_PASSWORD STRONG_DB_PASSWORD 数据库用户对应的密码

以上只是基本设置,Docmost 还支持 S3 及兼容存储,可以发送邮件。

更多环境变量:https://docmost.com/docs/self-hosting/environment-variables

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 docmost 和 子目录
mkdir -p /volume1/docker/docmost/{data,db,redis}

# 进入 docmost 目录
cd /volume1/docker/docmost

# 修改目录权限,否则上传图片会失败
chmod a+rw data

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3140 就能看到注册界面

  • Workspace Name:工作区名称
  • Your Name:用户名
  • Your Email:邮件地址
  • Password:密码,不能少于 8 个字符

注册成功后的主界面

写作

进入工作区

新建 New page

Notion 一样采用了块操作模式,输入 / 可创建代码块、todo list

基于 Docmost 写下了本文

回到 Home 能看到刚刚更新的文档

右上角是 Docmost 的相关设置

比如我想给创建的空间 General 改个名

修改 Name 就可以

保存之后

再回到 Home,名字已经改过来了

按个人习惯又增加了几个

协作

像工作相关的部分,我们可以邀请成员进行协作

当然前提是我们在安装时,设置了邮件相关的环境变量才行

需要给容器 docmost-app 增加下面这些内容

1
2
3
4
5
6
7
MAIL_DRIVER: 'smtp'
SMTP_HOST: 'smtp.88.com'
SMTP_PORT: '465'
SMTP_USERNAME: 'wbsu2003@88.com'
SMTP_PASSWORD: '<第三方邮件客户端密码>'
MAIL_FROM_ADDRESS: 'wbsu2003@88.com'
MAIL_FROM_NAME: 'Docmost'

发个邀请

如果邮件设置没问题,应该很快就会收到邀请邮件

Accept Invite 接受邀请,会跳转到注册界面

默认可能还什么都看不到

回到主账号,添加组,这是为了方便后面授权

填写组名并添加成员

创建完成

然后到空间里授权

默认权限分为三种

另一个账号刷新一下就可以了

参考文档

docmost/docmost: Docmost is an open source collaborative documentation and wiki software. It is an open-source alternative to the likes of Confluence and Notion.
地址:https://github.com/docmost/docmost

Open-source collaborative wiki and documentation software | Docmost
地址:https://docmost.com/

Introduction | Docmost - Documentation
地址:https://docmost.com/docs/

Docmost: Open-source collaborative wiki and documentation software : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1drd01d/docmost_opensource_collaborative_wiki_and/