code-server + gitlab + markdown 服務器搭建 個人云筆記工具介紹

一直是筆記軟件的重度用戶,但是做的好的云同步軟件通常要收費,要么就是有大小的限制。
研究了在自己的服務器上搭建一套筆記軟件。
介紹一下我的需求。

  1. markdown語法 記錄筆記,支持自動粘貼圖片,截圖等等
  2. 多端訪問,pc mac android ios pad,數(shù)據(jù)同步及時,手機端查看方便。
  3. 數(shù)據(jù)方便備份,整理,最好是自己存儲在服務器上。
  4. 由于筆記很多,需要快速的檢索功能。 拆分標簽展示

使用之前的軟件雖然也能滿足部分需求,但是在自由度上還是有不方便的地方。
比如joplin 雖然多端同步和移動端支持做的非常好,但是界面真的丑...

現(xiàn)在使用code-server當替代方案,感覺除了移動端的支持弱一些,其他方面簡直完美

code-server 就是vscode在云端運行,可以在瀏覽器使用vscode,試用后發(fā)現(xiàn)體驗和本地運行基本沒啥太大差距。

因此除了這個方案可以滿足我上述的需求外,還能額外在 記錄筆記的時候運行代碼,甚至有命令行直接操作服務器。

因為這個優(yōu)點,我把所有的項目代碼用submodule的方式引入筆記目錄中,基本實現(xiàn)了一個網(wǎng)頁操作所有項目。

此外,自己搭建的方案費用可以便宜好多,騰訊云最垃圾的服務器一個月也才一二十。

現(xiàn)在介紹一下搭建步驟

安裝code-server

首先你得有臺服務器...
然后執(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是服務器的ssl證書
必須配置,不然后續(xù)無法使用https的方式訪問vscode,導致無法預覽圖片 markdown文檔

vscode配置

中文

先從擴展中搜索 chinese

image.png

安裝之后
ctrl+shift +p 打開快捷命令欄輸入 >Configure Display Language

選擇簡體中文即可


[圖片上傳中...(image (1).png-83faff-1693793004827-0)]

粘貼圖片

記錄筆記時候很多情況都會需要截圖,如果直接在md文件中用快捷鍵粘,圖片文件會直接粘貼在當前路徑下,導致目錄混亂

這里可以通過markdown.copy調(diào)整,在設置中搜索markdown.copy

image (1).png

通過配置項,將圖片的粘貼位置指定到某個絕對路徑、

image (2).png

比如我這樣就是將md文件粘貼路徑 固定到項目/data/img/md下。并且會在md文件夾下創(chuàng)建圖片在筆記根目錄下對應的文件夾。

可視化擴展

使用code-server的另外一個優(yōu)點就是對于markdown語法及其可視化展示的支持非常好。
安裝了 Markdown Preview Enhanced 之后可以支持 流程圖,數(shù)學公式,思維導圖等等可視化。

具體可以查看markdown preview enhanced官網(wǎng)

安裝gitlab

gitlab 是自己搭建的git,主要目的是為了讓筆記有版本控制。
當然我使用的目的是為了方便在筆記中隨時加入代碼片段并且記錄版本。

由于gitlab占用內(nèi)存極高,關閉了大多數(shù)配置后,服務器占用內(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'

        # 關閉電子郵件相關功能
        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

        # 關閉容器倉庫功能
        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
        

        # 降低后臺守護進程并發(fā)數(shù)
        sidekiq['max_concurrency'] = 5

        gitlab_ci['gitlab_ci_all_broken_builds'] = false
        gitlab_ci['gitlab_ci_add_pusher'] = false

        # 關閉監(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 這一套比較方便的是在電腦上記錄筆記,尤其是在一些不想留存本地文件的地方(公司!),但是一些零碎的想法記錄,待辦事項還是不夠方便。
目前我是
code-server記錄筆記,主要是pc pad 端
joplin 記錄待辦事項,多端通用
flomo 記錄一些零碎的想法, 主要是手機端
這三者同時使用基本滿足了日常需求。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容