基于Web的Markdown编辑器HedgeDoc

今天又居家办公

周六、周日已经连续两天做的单人单管,就看今晚能不能如期解封了


什么是 HedgeDoc ?

HedgeDoc 是一个开源的、基于 web 的、自托管的、协作的markdown编辑器。您可以使用它轻松地在笔记、图形甚至演示文稿上进行实时协作。用户需要做的就是将你的笔记链接分享给同事,他们就可以开始使用了。

不想自己搭建可以试试官方的 Demo 网站:https://demo.hedgedoc.org/

安装

建数据库

HedgeDoc 还需要安装 MariaDB 或者 PostgreSQL 数据库。老苏选择了群晖自带的 MariaDB 10 数据库。

phpMyAdmin 中创建名为 hedgedoc 的空数据库。

为了演示方便,后面假设密码是:123456

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 hedgedoc ,选择第一个 linuxserver/hedgedoc,版本选 latest

docker 文件夹中,创建一个新文件夹 hedgedoc,并在其中建 1 个子文件夹 config

文件夹 装载路径 说明
docker/hedgedoc/config /config 设置目录

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3070 3070

默认容器端口为 3000

但我们要通过环境变量修改,使得 本地端口容器端口 保持一直

只要本地端口不是 804433000,就需要设置 CMD_PORT 改变容器端口

环境

可变
DB_HOST 数据库的地址
DB_PORT 数据库的端口
DB_NAME 数据库的库名
DB_USER 数据库的用户
DB_PASS 数据库的密码
PGID <UserID> 默认设为 1000
PUID <GroupID > 默认设为 1000
TZ 时区设置,默认设置为 Asia/Shanghai
CMD_DOMAIN HedgeDoc 主机地址
CMD_URL_ADDPORT 默认为 true,只有容器端口使用 80 或者 443 时才设为 false
CMD_PROTOCOL_USESSL 如果反代后用 https 协议访问,设为 true
CMD_PORT 用于修改容器端口

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

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
# 新建文件夹 hedgedoc 和 子目录
mkdir -p /volume2/docker/hedgedoc/config

# 进入 hedgedoc 目录
cd /volume2/docker/hedgedoc

# 运行容器
docker run -d \
--restart unless-stopped \
--name hedgedoc \
-p 3070:3070 \
-v $(pwd)/config:/config \
-e DB_HOST=192.168.0.197 \
-e DB_PORT=3307 \
-e DB_USER=hedgedoc \
-e DB_PASS=123456 \
-e DB_NAME=hedgedoc \
-e PGID=1000 \
-e PUID=1000 \
-e TZ=Asia/Shanghai \
-e CMD_DOMAIN=192.168.0.197 \
-e CMD_URL_ADDPORT=true \
-e CMD_PROTOCOL_USESSL=false \
-e CMD_PORT=3070 \
linuxserver/hedgedoc

也可以用 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
version: "3"

services:
hedgedoc:
image: linuxserver/hedgedoc
container_name: hedgedoc
restart: always
ports:
- "3070:3070"
volumes:
- ./config:/config
environment:
- DB_HOST=192.168.0.197
- DB_PORT=3307
- DB_USER=hedgedoc
- DB_PASS=123456
- DB_NAME=hedgedoc
- PGID=1000
- PUID=1000
- TZ=Asia/Shanghai
- CMD_DOMAIN=192.168.0.197
- CMD_URL_ADDPORT=true
- CMD_PROTOCOL_USESSL=false
- CMD_PORT=3070

然后执行下面的命令,在 portainer 中执行也是可以的

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 hedgedoc 和 子目录
mkdir -p /volume2/docker/hedgedoc/config

# 进入 hedgedoc 目录
cd /volume2/docker/hedgedoc

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3070 就能看到主界面

如果显示 I'm busy right now, try again later. 或者无法显示,那就稍等一下,日志中显示 HTTP Server listening at 0.0.0.0:3070 才说明服务已经就绪了

第一次登录需要先注册

默认情况下 HedgeDoc 使用电子邮件注册,但它实际上也支持使用和配置各种身份验证系统,比如我们之前介绍过的 Authelia 等等,有兴趣的可以自己研究;

登录成功后

新建笔记

支持实时预览

当把链接发给别人后,右上角的 在线人数 会发生变化

参考文档

hedgedoc/hedgedoc: HedgeDoc - The best platform to write and share markdown.
地址:https://github.com/hedgedoc/hedgedoc

Getting Started - HedgeDoc
地址:https://docs.hedgedoc.org/setup/getting-started/

HedgeDoc - collaborative markdown editor (via Docker on Synology NAS)
地址:https://www.blackvoid.club/hedgedoc-collaborative-markdown-editor/