最近笔者须要频繁更新和发布文档,所以有了寻找一个在线markdown文档平台的想法。我最终在做业部落,gitbook,codimd之中选择了codimd,而且将其部署到了本身的服务器以便提升访问速度,所以写下这篇博客记录本身部署和使用的心得,供你们参考借鉴。html
hackmd是一款著名的在线协做markdown编辑器产品mysql
CodiMD是HackMD的免费开源版本git
你可使用官方提供的codimd服务github
笔者是参考官方文档进行安装的sql
总共须要如下步骤:docker
笔者使用宝塔面板,所以直接如图添加一个数据库数据库
请注意容许全部ip访问该数据库,由于docker容器访问不属于本地ip访问,能够看详细解释安全
笔者直接使用yum进行安装,执行如下指令便可服务器
yum install git
一样使用yum进行安装,执行如下指令便可markdown
yum install docker
yum install docker-compose
version: "3" services: codimd: image: nabo.codimd.dev/hackmdio/hackmd:2.0.1 environment: - CMD_DB_URL=postgres://codimd:change_password@database/codimd - CMD_USECDN=false ports: - "3000:3000" volumes: - upload-data:/home/hackmd/app/public/uploads restart: always volumes: upload-data: {}
你须要执行如下步骤完成codimd的安装:
在一个目录下建立 docker-compose.yml
,向其中粘贴以上内容
修改其中的配置信息
在该目录下执行docker-compose up -d
便可完成安装
配置信息说明:
postgres://codimd:change_password@database/codimd
这一行中各个参数的含义分别是:
数据库链接协议://用户名:密码@数据库主机:数据库端口/数据库名
我使用的是MySQL,数据库名和用户名都是codimd,所以改为:
mysql://codimd:密码@172.18.0.1:3306/codimd
这里个人MySQL是在docker的宿主机本地安装的,可是主机ip没有写localhost,由于localhost在docker容器里面会解释成容器自己的ip,这样就连不上安装在宿主机的MySQL,因此我使用:
ip addr show docker0
查看了宿主机的ip为172.18.0.1,而后使用宿主机ip代替localhost,就达到容器内部访问外部的MySQL数据库的目的,能够看其余解决方案和详细解释
安装完成后可使用docker ps
命令查看codimd是否已经运行
查看运行日志:执行如下命令
docker logs -f -t --tail 行数 容器名
经过上面的docker ps
命令中看到容器名为codimd_codimd_1
因此我执行
docker logs -f -t --tail 10 codimd_codimd_1
看到
HTTP Server listening at 0.0.0.0:3000
这样的日志就表示安装成功了
codimd默认是运行在3000端口的,所以须要防火墙放行
防火墙放行3000端口
阿里云安全组规则放行3000端口
你可使用端口扫描工具确认端口已经正确放行
访问你的服务器主机ip的3000端口,便可看到codimd的主页
有了codimd以后你就能够在线编辑你的markdown文档了,还能够邀请别人一块儿编辑
笔者在整个codimd的安装过程仍是比较顺利,使用docker-compose安装十分便捷,主要遇到的问题是第一次安装以后查看日志发现访问不了数据库,后来查了资料才知道docker容器内访问localhost会被解释成docker容器自己的ip而不是常规的127.0.0.1,并且,使用docker容器访问数据库,也不属于本地服务器访问数据库。安装完成以后使用起来仍是比较方便的,编辑器的页面比较美观,终于能够摆脱离线编辑文档还要写各类版本号更新记录的日子了。