玩转服务器-博客两件套之绝佳的Markdown写作平台CodiMD
前言
大家都很羡慕博主的高产,纷纷问我有什么技巧。我的回复是手熟,多写,那么多写就需要一个比较好的工具,所以我这里给大家介绍一个在线markdown文档平台,让大家可以随时书写文档和博客。这里我选择的是codimd,我把它部署到了自己在我的腾讯云轻量应用服务器上以便提高访问速度,写下这篇记录自己部署和使用的心得,供大家参考。
什么是CodiMD
CodiMD 是一个开源项目,可实现 MarkDown 文档的协同编辑,功能与 HackMD 一致(这好像是废话),项目地址在 GitHub的hackmdio下,部署极为简单。适合无法正常使用 HackMD 的用户将其部署到自己的国内服务器,安全稳定。
开源地址
CodiMD
程序的安装
安装的准备
首先准备腾讯云的轻量应用服务器,系统为centos,不同系统间方式大同小异。
安装的步骤
- 在MySQL建立codimd使用的数据库
- 安装git
- 安装docker
- 安装docker-compose
- 安装codimd
创建数据库
这里博主用的轻量数据库(相关测评),如果没有也可以自建数据库。
这里以宝塔为例直接添加一个数据库。
请注意允许所有ip访问该数据库,因为docker容器访问不属于本地ip访问。
安装git
yum install git
安装docker
yum install docker
安装docker compose
yum install docker-compose
安装codimd
在root文件夹下创建一个目录(如md),目录内创建docker-compose.yml
填入以下内容:
version: "3"
services:database:image: postgres:11.6-alpineenvironment:- POSTGRES_USER=codimd- POSTGRES_PASSWORD=change_password- POSTGRES_DB=codimdvolumes:- "database-data:/var/lib/postgresql/data"restart: alwayscodimd:image: hackmdio/hackmd:2.4.1environment:- CMD_DB_URL=postgres://codimd:change_password@database/codimd# CMD_DB_URL 格式为 # 数据库连接协议://用户名:密码@数据库主机:数据库端口/数据库名#这里我的MySQL是在docker的宿主机本地安装的,但是主机ip没有写localhost,因为localhost在docker容器里面会解释成容器本身的ip,这样就连不上安装在宿主机的MySQL,所以我使用:ip addr show docker0,查看了宿主机的ip为172.17.0.1,然后使用宿主机ip代替localhost,就达到容器内部访问外部的MySQL数据库的目的#例:CMD_DB_URL=mysql://codimd:change_password@172.17.0.1:3306/codimd- CMD_USECDN=falsedepends_on:- databaseports:- "3000:3000"volumes:- upload-data:/home/hackmd/app/public/uploadsrestart: always
volumes:database-data: {}upload-data: {}
保存退出。
命令行里cd进docker-compose.yml所在的文件夹,执行命令
cd mddocker-compose up -d
检查安装
安装完成后可以使用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端口
CodiMD 使用
基本使用
完成以上步骤,即可访问服务器的 3000 端口来到 CodiMD 主页(如下图)。注册登录后即可进行文档档创建与协同编辑。其他协作者可以放心大胆地使用,后台密码均进行了严格加密,密码防泄漏做得很好的
反向代理
反向代理设置,新建一个网站,配置如图
配置反向代理步骤如下:(代理名称随意写一个自己认识的就行)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKQJOkCd-1630588506797)(https://pic.hipyt.cn/pic/2021/09/02/3b166a6116a66.png)]
至此本次教程到此结束,使用腾讯云轻量服务器搭建CodiMD有其他不明白的地方,朋友可以到我博客和我交流
博主站点
博主的个人博客地址是:https://www.hipyt.cn/
最后
安利一下,腾讯云限时秒的活动,优惠力度非常大,当前买到就是赚到了,1核2G的配置最低60元一年。
为了保证博主的写作兴趣,请大家有需要的一定要多多支持。以下连接内含(AFF)
【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年60元
腾讯云限时秒杀
【腾讯云】轻量应用服务器Lighthouse,上云「轻」而易举,1核1G3M低至128元/年,高带宽首选
期待下一次给大家带来更好的教程,我们下次再见。
玩转服务器-博客两件套之绝佳的Markdown写作平台CodiMD相关推荐
- 开源应用中心|如何快速部署你的绝佳Markdown写作平台——CodiMD
前言 在如今这个知识创作盛行的时代,大家可能想将自己的所思.所学记录并分享出去,那么寻找一款合适的写作平台就是比较重要了.Markdown格式自问世以来,以其简单和优雅的语法吸引了大量的用户,Mark ...
- 【计算机科学基础】玩转CSDN博客
文章目录 查看旧版主页 缩放博客文章 显示空白字符 序列追加代码 序列追加文本 复杂博客表格 调整文本样式 前端知识补充 七彩文字样例 获取Git入门勋章 undefined问题 刷课章节顺序问题 机 ...
- 博客搭建攻略(一):平台选择
本系列文章预告 博客搭建攻略(一):平台选择 博客搭建攻略(二):工具推荐 博客搭建攻略(三):创造收益 如您对本系列内容感兴趣,就点击标题下方的程序猿DD关注我吧~ 前言 虽然在大学生涯就有开始写技 ...
- 玩转CSDN博客之自定义博客栏目,根据需要定制栏目
转载自: http://www.w2bc.com/Article/40151 不得不说,CSDN在IT界还是非常不错的, 不管是文章数量还是质量,都非常不错,很多程序猿也在CSDN建了窝,那么如何把C ...
- 大学生如何自己建立搭建自己的服务器博客??
当你哪一天心血来潮,想要分享自己喜欢的东西的时候,你是不是想要开通一个博客了呢? 当下搞个博客很方便的,有许多的这样的免费博客服务,5分钟之内你就可以创建一个博客.但是,免费服务是搭建博客最简单.最便 ...
- 飞塔防火墙虚拟服务器,飞塔防火墙模拟(1):模拟器使用方法 | 网络之路博客(公众号同名)(其他平台网络之路Blog)...
[模拟器]飞塔模拟器与使用方法 http://ccieh3c.com . 使用方法 1.解压模拟器(ccieh3c.com) 2.安装VMware,8版本以上(ccieh3c.com) 3.VMwar ...
- 树莓派从零开始LAMP搭建web服务器(博客WordPress)教程
为了让更多的朋友不让自己家里的树莓派丢在角落吃灰,也让自己不忘记折腾架设的过程,做个教程,有不足之处请大家多多包涵. 目的:让树莓派架设web服务,搭建个人博客,使用自己的域名访问,家里的动态ip也可 ...
- 博客迁移之从CSDN导出markdown格式文章
[2020/08/02更新]CSDN更新了接口API,之前的方法已经失效 写在前面 最近沉迷于个人网站开发,买了长期服务器和域名,一直在搞事情. 这篇文章的主要任务是将个人CSDN博客导出为Markd ...
- 为什么优秀的程序员都写博客?谈谈我都是如何写作的
我的文章上热榜啦 首先在写之前给大家分享个歌单1 ,歌单二,分享歌单呢,主要是我在哔哩哔哩剪辑视频加的,我写东西不会去听音乐的,因为觉得那样,不利于 我的思维扩展. 进入正题 写博客呢首先要知道它具有 ...
最新文章
- PHP Apache shutdown unexpectedly启动错误解释及解决的方法
- win10创建新的计算机用户名和密码忘了,Win10 2004中要使用本计算机用户必须输入用户名和密码选项不见了如何恢复?...
- oracle表增加自增主键,Oracle中给已存在的表增加自增主键
- react native 开发笔记(一)
- WINDOWS故障修复台 免去重装的烦恼
- Pandas简明教程-适用于竞赛、研究以及办公自动化
- 手把手从python安装到setuptools、pip工具安装
- Android Studio 上Activity的互相切换
- 考研数学如何复习?这很合理!
- GPS章节要义(补充计算题)
- 点坐标(点云)表示的模型转为.stl文件用于3D打印
- 基于Wi-Fi的室内定位在美团总部的实践和应用
- ts给Number类型数据添加自定义方法报错:类型“Number”上不存在属性“divideStr”的解决方案
- 贪心绝对值不等式-货仓选址
- if 判断条件为纯数字
- Unity+SteamVR开发——获取按键事件
- **关于电子海图(S-57 (ENC)转换shp 格式**
- 【Leetcode刷题Python】494. 目标和
- Unity游戏开发客户端面经——网络(初级)
- 如何连接ftp服务器
热门文章
- Netty5中的4种解码器
- java 拼音首字母搜索内容功能详解
- XssHttpServletRequestWrapper过滤器
- 有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层以下的楼层落下不会摔破。给你2个鸡蛋,设计方案找出N,并且保证在最坏情况下, 最小化鸡蛋下落的次数。
- 蓝桥杯练习系统 基础练习 全部习题 题目及AC代码(包括VIP试题)C++
- 【冬察冬见】【管理知行解决方案手册】【团队治理】周报撰写
- C++判断闰年 自定义函数
- 百度地图API之折线
- 波峰焊 php,选择性波峰焊焊与普通波峰焊的区别
- 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)E.捡贝壳