背景
- 作为Markdown的资深用户,现在所有笔记都是通过Markdown记录的,记录之后直接存储到Github上,可以有效的避免笔记丢失。而且个人一直不喜欢用云笔记,很可能某一天自己所使用的云笔记就倒闭了,数据还很难导出,即使能导出,估计也不是自己想要的格式了。
- 另外,国内访问StackEdit官网几乎是不可用的,因为检测是否联网的一个定时心跳直接就是google的一个api,真的是要多坑有多坑,当然除非你自己有翻墙,否则几乎不能使用。
- 基于以上两个原因,故自己部署了StackEdit,在很早之前就有自己部署过,但是当时并未深入研究过StackEdit的源码,都是直接在网上找到资料,直接照葫芦画瓢部署上去的,过程中还遇到特别多坑,虽然一一解决了,但是有朋友自己照着我的步骤部署时几乎无法部署成功。然而,这次我并非简单的直接部署好了就算了,还解决了原开源中Github Oauth2授权的bug,另外还额外支持了Gitee,Fork出来的已修改好的仓库地址:[Github地址]、[Gitee地址]
说了这么多,如果你不想自己部署,其实也可以直接使用我已部署好的地址,地址为: https://stackedit.cn
作为StackEdit资深用户,以上地址会长期有效,即使很多人一起使用,其实服务器压力也没多大,因为这个服务唯一的交互仅仅是在Oauth2鉴权的时候,后面的交互都是与Github、Gitee等的api交互的,所以不存在什么压力。
另外,也许很多朋友没使用过StackEdit,不知道StackEdit的一些优点,我简单罗列一下:
- 可以把个人笔记保存到Github、Gitee等私有仓库中,所有文件的修改都有版本记录,如果有需要回滚,可以使用git回滚到历史某个版本。
- 在浏览器访问,会在浏览器缓存所有markdown文件,并不需要每次打开都去Github或Gitee仓库拉取一次全量数据,只会增量拉取。
- 每次Ctrl+S都会执行一次保存操作,直接push到git仓库,即使浏览器突然崩溃,也不需要担心编辑的东西丢失,因为在浏览器本地是实时保存的,只是推送到git仓库是需要保存操作、主动点击同步按钮或者等待自动同步的时间(默认是90秒)到了才会触发。
- StackEdit中文版还支持粘贴、拖拽直接上传图片到图床。
一 安装StackEdit
docker-compose.yml 文件如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21version: "3.7"
services:
stackedit:
image: mafgwo/stackedit:【docker中央仓库找到最新版本】
container_name: stackedit
environment:
- LISTENING_PORT=8080
- ROOT_URL=/
- USER_BUCKET_NAME=root
- DROPBOX_APP_KEY=【不需要支持则删掉】
- DROPBOX_APP_KEY_FULL=【不需要支持则删掉】
- GITHUB_CLIENT_ID=【不需要支持则删掉】
- GITHUB_CLIENT_SECRET=【不需要支持则删掉】
- GITEE_CLIENT_ID=【不需要支持则删掉】
- GITEE_CLIENT_SECRET=【不需要支持则删掉】
- GOOGLE_CLIENT_ID=【不需要支持则删掉】
- GOOGLE_API_KEY=【不需要支持则删掉】
ports:
- 8080:8080/tcp
network_mode: bridge
restart: always
编辑好了docker-compose.yml
文件后,直接执行一下docker-compse命令,就安装好了。1
2# 在 docker-compose.yml 文件目录下
docker-compose up -d
然后,直接在浏览器输入:http://[host]:8080 即可正常访问。
yaml文件中的参数也不需要过多解释,都是见文知意的key,如果真有朋友不懂,或者真部署不成功,可以关注一下我公众号,关注后直接加我微信找我进一步沟通,也可直接在博客下直接留言,我可以及时看到您的留言解答您遇到的问题。
二 总结
写一下自己的感想,其实一开始,我也不清楚自己需要花多少时间来熟悉这个StackEdit的源码,并且要花多少时间才能支持Gitee,最终,我大概花了周末一整天时间搞好了。虽然效率不是特别高,但是作为一个搞后端开发的我来说,我自认为还算可以了。
所以,很多时间,当你不熟悉某样东西时,都会存在一些疑虑,担心时间花进去了最终结果会不如意甚至是半途而废,但是如果你连试都不试,你怎么知道自己究竟行不行。