使用docker安装codimd,搭建你自己的在线协作markdown编辑器
一、前言
最近笔者需要频繁更新和发布文档,因此有了寻找一个在线markdown文档平台的想法。我最终在作业部落,gitbook,codimd之中选择了codimd,并且将其部署到了自己的服务器以便提高访问速度,因此写下这篇博客记录自己部署和使用的心得,供大家参考借鉴。
二、codimd是什么?
2.1 源于hackmd的超好用markdown编辑器
hackmd是一款著名的在线协作markdown编辑器产品
CodiMD是HackMD的免费开源版本
2.2 codimd的作用
- 在线编辑markdown文档
- 在线发布markdown文档
- 和别人在线协作编辑markdown文档
你可以使用官方提供的codimd服务
三、安装和使用
3.1 安装前需要知道的
- 安装之后你可以使用的功能和官方是一样的
- 安装的好处是,codimd官方的服务器在美国,在国内访问速度慢,部署到自己的服务器可以提高访问速度,也便于自己掌控数据库
- 目前codimd是开放系统,所有人都可以注册和使用你服务器上的codimd服务
3.2 安装步骤
笔者是参考官方文档进行安装的
总共需要以下步骤:
- 在MySQL建立codimd使用的数据库
- 安装git
- 安装docker
- 安装docker-compose
- 安装codimd
3.2.1 创建数据库
笔者使用宝塔面板,因此直接如图添加一个数据库
请注意允许所有ip访问该数据库,因为docker容器访问不属于本地ip访问,可以看详细解释
3.2.2 安装git
笔者直接使用yum进行安装,执行以下指令即可
yum install git
3.2.3 安装docker
同样使用yum进行安装,执行以下指令即可
yum install docker
3.2.4 安装docker compose
yum install docker-compose
3.2.5 安装codimd
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数据库的目的,可以看其他解决方案和详细解释
3.2.6 检查是否安装成功
安装完成后可以使用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
这样的日志就表示安装成功了
3.2.7 放行端口
codimd默认是运行在3000端口的,因此需要防火墙放行
防火墙放行3000端口
阿里云安全组规则放行3000端口
你可以使用端口扫描工具确认端口已经正确放行
3.2.8 测试使用
访问你的服务器主机ip的3000端口,即可看到codimd的主页
3.3 开始写作
有了codimd之后你就可以在线编辑你的markdown文档了,还可以邀请别人一起编辑
四、总结
笔者在整个codimd的安装过程还是比较顺利,使用docker-compose安装十分便捷,主要遇到的问题是第一次安装之后查看日志发现访问不了数据库,后来查了资料才知道docker容器内访问localhost会被解释成docker容器本身的ip而不是常规的127.0.0.1,而且,使用docker容器访问数据库,也不属于本地服务器访问数据库。安装完成之后使用起来还是比较方便的,编辑器的页面比较美观,终于可以摆脱离线编辑文档还要写各种版本号更新记录的日子了。
五、参考资料
使用docker安装codimd,搭建你自己的在线协作markdown编辑器的更多相关文章
- Centos7使用Docker安装Gogs搭建git服务器
gihub地址:https://github.com/gogs/gogs gogs官网:https://gogs.io/ gihub官方docker安装gogs方法:https://github.co ...
- Docker 安装 Redis, 搭建 Redis 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- APPIUM安装与搭建Q&A
APPIUM安装与搭建Q&A Q1:在线安装TESTNG插件时,出现安装失败,提示:Cannot complete the install because one or more requir ...
- Centos7安装Docker 基于Dockerfile 搭建httpd运行环境
Centos7安装Docker 基于Dockerfile 搭建httpd运行环境 docker docker搭建 docker build 本文档完成目标内容如下 使用Docker搭建http服务器一 ...
- docker安装+测试环境的搭建---
漏洞演练环境docker地址:http://vulhub.org/#/environments/ 环境:kali-linux-2017.2-amd64.iso 一.docker安装 1.先更新一波源: ...
- Docker02 基本命令、开发环境搭建、docker安装nginx、Dockerfile、路径挂载
1 基本命令 1.1 docker相关 centos6.5 安装docker环境 >sudo yum install -y http://mirrors.yun-idc.com/epel/6/i ...
- 使用YApi搭建API接口管理工具(docker安装)
使用YApi搭建API接口管理工具(docker安装) 工具描述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布 ...
- docker安装部署、fastDFS文件服务器搭建与springboot项目接口
一.docker安装部署 1.更新yum包:sudo yum update 2.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动 ...
- Mac 下 docker安装
http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...
随机推荐
- Java程序员必读的9本书
本文列出的9本书在Java程序员界都是被认为很棒的书.当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java.这个问题也就表明,相对于其他的教程和博客,Java书籍还 ...
- Maven多仓库配置(公司仓库和阿里云仓库)
Maven多仓库配置(公司仓库和阿里云仓库) 一.之前的配置 之前maven本地的setting.xml的仓库配置,都是直接设置mirror节点 <mirrors> <mirror& ...
- 总结:自动将函数对象添加到字典的bug
介绍 本文以ATM项目为背景,介绍一个比较实用的编程技巧,使用装饰器将项目中的指定函数添加到字典中. 利用字典通过key访问value的特点,实现用户输入编号,通过字典直接获取并调用编号对应的功能函数 ...
- supervisor 的使用 (fastcgi管理)
本文主要介绍 supervisor 对 fastcgi 进程的管理 fastcgi 进程的管理 在php 中,php-fpm 有主进程来管理和维护子进程的数量.但是并不是所有的服务都有类似的主进程来做 ...
- Linux:注册系统服务
[参考文章]:Systemd 入门教程:实战篇 [参考文章]:linux systemctl命令详解 1. 简介 将程序注册为系统服务后,可通过 systemctl 和 service 系统命令启动, ...
- 完整微信小程序授权登录页面教程
完整微信小程序授权登录页面教程 1.前言 微信官方对getUserInfo接口做了修改,授权窗口无法直接弹出,而取而代之是需要创建一个button,将其open-type属性绑定getUseInfo方 ...
- JDBCUtils,根据当前MySQL数据库下面的表生成java实体类
自己简单写的JDBCUtils,可以根据当前数据库下面的表生成java实体类,代码萌新,请多多包涵. 初始化配置: //驱动程序名//不固定,根据驱动 static String driver = & ...
- linux 配置 python3 CGI
文章更新于:2020-03-04 注1:安装 python 参见: python 的安装使用和基本语法 注2:配置 web 环境参见: Windows&linux使用集成环境搭建 web 服务 ...
- MySQL数据库三
MySQL数据库三 多表查询: 有条件的内连接 将两张表根据相同的id连接起来 select * from info join details on info.id = details.id sele ...
- linux基础篇,数据流重定向
数据流重定向 很多时候,我们执行一些命令的时候,会在屏幕中得到这些命令的执行结果.这些叫作标准输出. 但是很多情况下,我们并不想将这些信息直接显示在屏幕上,这个时候,就得用重定向这个功能了 标准输入 ...