一直是筆記軟件的重度用戶陡鹃,但是做的好的云同步軟件通常要收費(fèi)萍鲸,要么就是有大小的限制猿推。
研究了在自己的服務(wù)器上搭建一套筆記軟件捌肴。
介紹一下我的需求状知。
- markdown語法 記錄筆記,支持自動(dòng)粘貼圖片坦喘,截圖等等
- 多端訪問瓣铣,pc mac android ios pad棠笑,數(shù)據(jù)同步及時(shí),手機(jī)端查看方便蓖救。
- 數(shù)據(jù)方便備份,整理斩例,最好是自己存儲(chǔ)在服務(wù)器上从橘。
- 由于筆記很多洋满,需要快速的檢索功能牺勾。 拆分標(biāo)簽展示
使用之前的軟件雖然也能滿足部分需求,但是在自由度上還是有不方便的地方翻具。
比如joplin 雖然多端同步和移動(dòng)端支持做的非常好裆泳,但是界面真的丑...
現(xiàn)在使用code-server當(dāng)替代方案工禾,感覺除了移動(dòng)端的支持弱一些闻葵,其他方面簡直完美
code-server 就是vscode在云端運(yùn)行槽畔,可以在瀏覽器使用vscode胁编,試用后發(fā)現(xiàn)體驗(yàn)和本地運(yùn)行基本沒啥太大差距嬉橙。
因此除了這個(gè)方案可以滿足我上述的需求外莽鸿,還能額外在 記錄筆記的時(shí)候運(yùn)行代碼祥得,甚至有命令行直接操作服務(wù)器级及。
因?yàn)檫@個(gè)優(yōu)點(diǎn)额衙,我把所有的項(xiàng)目代碼用submodule的方式引入筆記目錄中窍侧,基本實(shí)現(xiàn)了一個(gè)網(wǎng)頁操作所有項(xiàng)目伟件。
此外,自己搭建的方案費(fèi)用可以便宜好多谴返,騰訊云最垃圾的服務(wù)器一個(gè)月也才一二十嗓袱。
現(xiàn)在介紹一下搭建步驟
安裝code-server
首先你得有臺(tái)服務(wù)器...
然后執(zhí)行code-server安裝命令
curl -fsSL https://code-server.dev/install.sh | sh
安裝完成后 修改vscode配置
vim ~/.config/code-server/config.yaml
配置如下:
bind-addr: 0.0.0.0:88 #綁定端口
auth: password
password: xxxxxx
cert: xxxxxx/xx/xbundle.crt
cert-key: xxx/xxx/xxx.key
值得注意,cert 和cert-key是服務(wù)器的ssl證書
必須配置闪萄,不然后續(xù)無法使用https的方式訪問vscode桃煎,導(dǎo)致無法預(yù)覽圖片 markdown文檔
vscode配置
中文
先從擴(kuò)展中搜索 chinese
安裝之后
ctrl+shift +p 打開快捷命令欄輸入 >Configure Display Language
選擇簡體中文即可
粘貼圖片
記錄筆記時(shí)候很多情況都會(huì)需要截圖三椿,如果直接在md文件中用快捷鍵粘搜锰,圖片文件會(huì)直接粘貼在當(dāng)前路徑下蛋叼,導(dǎo)致目錄混亂
這里可以通過markdown.copy調(diào)整狐胎,在設(shè)置中搜索markdown.copy
通過配置項(xiàng),將圖片的粘貼位置指定到某個(gè)絕對(duì)路徑歌馍、
比如我這樣就是將md文件粘貼路徑 固定到項(xiàng)目/data/img/md下握巢。并且會(huì)在md文件夾下創(chuàng)建圖片在筆記根目錄下對(duì)應(yīng)的文件夾。
可視化擴(kuò)展
使用code-server的另外一個(gè)優(yōu)點(diǎn)就是對(duì)于markdown語法及其可視化展示的支持非常好松却。
安裝了 Markdown Preview Enhanced 之后可以支持 流程圖暴浦,數(shù)學(xué)公式,思維導(dǎo)圖等等可視化晓锻。
具體可以查看markdown preview enhanced官網(wǎng)
安裝gitlab
gitlab 是自己搭建的git歌焦,主要目的是為了讓筆記有版本控制。
當(dāng)然我使用的目的是為了方便在筆記中隨時(shí)加入代碼片段并且記錄版本砚哆。
由于gitlab占用內(nèi)存極高独撇,關(guān)閉了大多數(shù)配置后,服務(wù)器占用內(nèi)存在2g以內(nèi)窟社,精簡版本的docker-compose 配置如下:
version: "3"
services:
gitlab:
restart: always
image: gitlab/gitlab-ce:14.0.5-ce.0
container_name: gitlab
hostname: xxxxx
ports:
- "99:80"
volumes:
- /root/static/gitlab/config:/etc/gitlab
- /root/static/gitlab/data:/var/opt/gitlab
environment:
TZ: Asia/Shanghai
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 關(guān)閉電子郵件相關(guān)功能
gitlab_rails['smtp_enable'] = false
gitlab_rails['gitlab_email_enabled'] = false
gitlab_rails['incoming_email_enabled'] = false
# Terraform
gitlab_rails['terraform_state_enabled'] = false
# Usage Statistics
gitlab_rails['usage_ping_enabled'] = false
gitlab_rails['sentry_enabled'] = false
grafana['reporting_enabled'] = false
# 關(guān)閉容器倉庫功能
gitlab_rails['gitlab_default_projects_features_container_registry'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
registry_nginx['enable'] = false
# 包倉庫
gitlab_rails['packages_enabled'] = false
gitlab_rails['dependency_proxy_enabled'] = false
# GitLab KAS
gitlab_kas['enable'] = false
gitlab_rails['gitlab_kas_enabled'] = false
# Mattermost
mattermost['enable'] = false
mattermost_nginx['enable'] = false
# Kerberos
gitlab_rails['kerberos_enabled'] = false
sentinel['enable'] = false
# GitLab Pages
gitlab_pages['enable'] = false
pages_nginx['enable'] = false
# 禁用 PUMA 集群模式
puma['worker_processes'] = 0
puma['min_threads'] = 1
puma['max_threads'] = 2
# 降低后臺(tái)守護(hù)進(jìn)程并發(fā)數(shù)
sidekiq['max_concurrency'] = 5
gitlab_ci['gitlab_ci_all_broken_builds'] = false
gitlab_ci['gitlab_ci_add_pusher'] = false
# 關(guān)閉監(jiān)控
prometheus_monitoring['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
pgbouncer_exporter['enable'] = false
gitlab_exporter['enable'] = false
grafana['enable'] = false
sidekiq['metrics_enabled'] = false
postgresql['shared_buffers'] = "64MB"
postgresql['max_worker_processes'] = 1
sidekiq['concurrency'] = 1
nginx['worker_processes'] = 1
postgresql['shared_buffers'] = "64MB"
prometheus_monitoring['enable'] = false
這里需要注意社痛。 gitlab 1.3之后采用了 puma來控制web訪問
最后登陸gitlab,將初始化git倉庫就可以了。
最后
code-server + md + git 這一套比較方便的是在電腦上記錄筆記淀歇,尤其是在一些不想留存本地文件的地方(公司!)碰逸,但是一些零碎的想法記錄,待辦事項(xiàng)還是不夠方便苗分。
目前我是
code-server記錄筆記纬向,主要是pc pad 端
joplin 記錄待辦事項(xiàng),多端通用
flomo 記錄一些零碎的想法, 主要是手機(jī)端
這三者同時(shí)使用基本滿足了日常需求。