餐飲外哪個(gè)網(wǎng)站做推廣網(wǎng)站優(yōu)化排名查詢
[?知識(shí)是人生的燈塔,只有不斷學(xué)習(xí),才能照亮前行的道路?]
巧用 VScode 網(wǎng)頁(yè)版 IDE 搭建個(gè)人筆記知識(shí)庫(kù)!
描述:最近自己在騰訊云輕量云服務(wù)器中部署了一個(gè)使用在線 VScode 搭建部署的個(gè)人Markdown在線筆記,考慮到在線 VScode 支持終端模式,可以用來(lái)做各種開發(fā)環(huán)境搭建以及代碼運(yùn)行調(diào)試等,同時(shí)也為惡意攻擊者提供了一個(gè)攻擊入口,所以考慮到安全性問(wèn)題,就打算將整個(gè)在線 VScode 容器進(jìn)行離線,不讓訪問(wèn)互聯(lián)網(wǎng),也能進(jìn)一步保證無(wú)法調(diào)用外部接口進(jìn)行反彈Shell以及避免其他一些必須聯(lián)網(wǎng)攻擊的手段,下面請(qǐng)看整個(gè)實(shí)現(xiàn)過(guò)程。
原文鏈接:巧用 VScode 網(wǎng)頁(yè)版 IDE 搭建個(gè)人筆記知識(shí)庫(kù)!最近自己在騰訊云輕量云服務(wù)器中部署了一個(gè)使用在線 VScode 搭建部署的個(gè)人Markdown在線筆記,考慮到支持終端模式,給惡意攻擊者提供了一個(gè)攻擊入口,所以考慮到安全性問(wèn)題,就打算將整個(gè)在線 VScode 容器進(jìn)行離線,不讓訪問(wèn)互聯(lián)網(wǎng)。https://mp.weixin.qq.com/s/Mn1-o9Z6SY9L3UtH-SJCOA
前置說(shuō)明
描述:在上一章作者已經(jīng)介紹了在線 VScode 搭建部署的整個(gè)過(guò)程,這里就不再贅述了,直接進(jìn)入正題,請(qǐng)按照《VS Code網(wǎng)頁(yè)版IDE,每個(gè)程序猿必備一套!》文章中的要求進(jìn)行基礎(chǔ)環(huán)境進(jìn)行配置, 此處作者推薦一下vscode中常用的開發(fā)插件,希望對(duì)各位開發(fā)者有幫助。
-
Chinese (Simplified) : 適用于 VS Code 的中文(簡(jiǎn)體)語(yǔ)言包
-
vscode-icons: Visual Studio 代碼的圖標(biāo)
-
markdown All in One: 提供Markdown編輯的全方位支持,包括實(shí)時(shí)預(yù)覽、語(yǔ)法提示、目錄生成、表格生成等多種功能。
-
Markdown Preview Enhanced: 支持實(shí)時(shí)預(yù)覽 Markdown 文件效果,并具備導(dǎo)出 PDF、支持?jǐn)?shù)學(xué)公式、流程圖等多種高級(jí)功能,提供了豐富的定制選項(xiàng)和兼容性,極大地提升了 Markdown 文檔的編輯和預(yù)覽體驗(yàn)。
-
Go : 對(duì)Visual Studio代碼的Rich Go語(yǔ)言支持
-
Database Client:Database manager for MySQL/MariaDB, PostgreSQL, SQLite, Redis and ElasticSearch.
-
SQLite:Explore and query SQLite databases.
-
Live Server: 啟動(dòng)具有靜態(tài)和動(dòng)態(tài)頁(yè)面實(shí)時(shí)重新加載功能的本地開發(fā)服務(wù)器
-
ESLint : 將ESLint JavaScript集成到VS代碼中
-
wakatime:記錄每天coding的時(shí)間
-
:emojisense: 自動(dòng)追加添加emoji表情符號(hào)
-
Surround: 用于在代碼塊周圍添加包裝代碼片段,JS前端必備。
-
CSS Peek:它允許開發(fā)者直接從HTML文檔中快速跳轉(zhuǎn)到匹配的CSS樣式定義,并提供預(yù)覽功能,從而大大提高CSS樣式的查找和編輯效率。
-
Regex Previewer:可以實(shí)時(shí)預(yù)覽正則表達(dá)式匹配結(jié)果,并適用于多種前端框架和語(yǔ)言,同時(shí)提供快捷鍵操作、全局和多行選項(xiàng)等便捷功能,以提升開發(fā)效率。
-
Code Spell Checker :可以檢查單詞拼寫是否出現(xiàn)錯(cuò)誤,檢查的規(guī)則遵循 camelCase (駝峰拼寫法)
-
i18n Ally: 主要用于國(guó)際化多語(yǔ)言開發(fā),提供內(nèi)聯(lián)提示、快速修改key值對(duì)應(yīng)的語(yǔ)言文件、統(tǒng)一管理翻譯、自動(dòng)翻譯等功能。
-
Turbo Console Log : 一鍵生成有意義的 console.log 消息,支持多語(yǔ)言、多光標(biāo)操作,提供可定制的日志類型和輸出格式,提高調(diào)試效率。
-
indent-rainbow: 一款代碼縮進(jìn)可視化插件,它通過(guò)為文本前面的縮進(jìn)著色,使縮進(jìn)更具可讀性。
-
Remote-SSH: 允許開發(fā)者通過(guò) SSH 協(xié)議連接到遠(yuǎn)程服務(wù)器或虛擬機(jī),直接在本地 VS Code 編輯器中操作遠(yuǎn)程服務(wù)器上的代碼,實(shí)現(xiàn)無(wú)縫的遠(yuǎn)程開發(fā)體驗(yàn)。
-
Vue - Official : Vue 官方擴(kuò)展。
-
JavaScript (ES6) code snippets: 通過(guò)此插件可以使用預(yù)定義的 ES6 語(yǔ)法片段速記,從而提高開發(fā)效率。
-
Import Cost: 在項(xiàng)目中導(dǎo)入多個(gè)包時(shí)可能會(huì)出現(xiàn)性能問(wèn)題,Import Cost 就用于查看將特定庫(kù)導(dǎo)入項(xiàng)目的成本。
-
VS Code Counter: 插件用于統(tǒng)計(jì)項(xiàng)目代碼的行數(shù),
-
Highlight Matching Tag : 用于實(shí)時(shí)高亮顯示匹配的標(biāo)簽對(duì),方便用戶在 HTML 或 XML 代碼中快速找到配對(duì)的標(biāo)簽。
-
TODO Highlight: 實(shí)時(shí)高亮顯示代碼中的TODO、FIXME等標(biāo)記,支持自定義關(guān)鍵字和正則表達(dá)式匹配,方便開發(fā)者快速識(shí)別、管理和追蹤待辦事項(xiàng)。
-
Better comments: 該插件對(duì)不同類型的注釋會(huì)附加了不同的顏色,更加方便區(qū)分,幫助我們?cè)诖a中創(chuàng)建更人性化的注釋。
-
Colorize: 給顏色代碼增加一個(gè)當(dāng)前匹配代碼顏色的背景。它通過(guò) CSS 變量、預(yù)處理器變量、hsl/hsla 顏色、跨瀏覽器顏色、exa、rgb、rgba和argb的彩色背景將 CSS 顏色可視化,幫助開發(fā)者快速區(qū)分顏色。
-
Image preview: 通過(guò)此插件,當(dāng)鼠標(biāo)懸浮在圖片的鏈接上時(shí),可以實(shí)時(shí)預(yù)覽該圖片,除此之外,還可以看到圖片的大小和分辨率。
-
CodeSnap: 用于對(duì)代碼的進(jìn)行截圖和共享。屏幕截圖可以用文本或形狀進(jìn)行注釋,并通過(guò)鏈接共享或包含在網(wǎng)站或文檔中。只需使用 ctrl + shift + P 并輸入 CodeSnap,然后按回車鍵,CodeSnap 窗口就會(huì)打開。
除此之外,建議將 Markdown 筆記放在個(gè)人 Gitlab 或者 Gitee 、Github 等代碼托管平臺(tái)中,這樣方便進(jìn)行版本管理以及備份。
溫馨提示:作者最近10年的工作學(xué)習(xí)筆記(涉及網(wǎng)絡(luò)、安全、運(yùn)維、開發(fā)、機(jī)器學(xué)習(xí)),需要學(xué)習(xí)實(shí)踐筆記的看友,可添加作者賬號(hào)[WeiyiGeeker]
,目前價(jià)格¥199
,除了獲得從業(yè)筆記的同時(shí)還可進(jìn)行問(wèn)題答疑,相關(guān)工具以及每月遠(yuǎn)程技術(shù)支持,希望各位看友多多支持,收獲定大于付出!下面大致看看作者筆記中的大綱內(nèi)容。
操作步驟
Step 1.將個(gè)人筆記代碼倉(cāng)庫(kù)克隆到本地,并進(jìn)入/opt/code-server/project/
目錄中, ?初次使用 SSH 協(xié)議進(jìn)行代碼克隆、推送等操作時(shí),需按下述提示完成 SSH 配置,在Gitee上做公密鑰認(rèn)證(https://gitee.com/profile/sshkeys)就不在累述了。
#?安裝?git
apt?install?git#?生成獲取?RSA?公密鑰
ssh-keygen?-t?rsa
cat?~/.ssh/id_rsa.pub#?拉取筆記
cd?/opt/code-server/project/
git?clone?git@gitee.com:WeiyiGeek/blog.git#?設(shè)置目錄文件權(quán)限(只有root用戶可讀可寫,其他用戶只讀), 防止大家誤修改筆記!
chown?-R?root:root?/opt/code-server/project/blog
chown?-R?754?/opt/code-server/project/blog
Step 2.創(chuàng)建一個(gè)docker-compose.yaml
文件,并編寫如下內(nèi)容,其中DOCKER_USER=ubuntu
表示容器內(nèi)用戶為ubuntu,TZ=Asia/Shanghai
設(shè)置時(shí)區(qū),并進(jìn)行在線vscode的一些安全配置,禁用一部分功能以及禁止訪問(wèn)到外網(wǎng)(PS: com.docker.network.bridge.enable_ip_masquerade
),最后將個(gè)人筆記代碼倉(cāng)庫(kù)掛載到容器中。
tee?/opt/code-server/docker-compose.yaml?<<EOF
version:?'3.9'
services:vscode-server:container_name:?code-serverimage:?registry.cn-hangzhou.aliyuncs.com/weiyigeek/code-server:latestcommand:?--bind-addr?0.0.0.0:8080?--disable-update-check?--disable-file-downloads?--disable-file-uploads?--disable-proxy?--ignore-last-opened?--disable-getting-started-override?--welcome-text?"歡迎訪問(wèn),全棧工程師修煉必備筆記站點(diǎn)!"user:?"1000:1000"ports:-?127.0.0.1:3002:8080environment:-?TZ=Asia/Shanghai-?DOCKER_USER=ubuntuvolumes:-?/opt/code-server/.local:/home/coder/.local-?/opt/code-server/.config:/home/coder/.config-?/opt/code-server/project/blog/source/_posts:/home/coder/projectdns:-?127.0.0.1-?127.0.1.1networks:-?privatenetworks:private:driver:?bridgedriver_opts:com.docker.network.bridge.enable_ip_masquerade:?'false'
EOF
Step 3.部署資源清單創(chuàng)建容器,并且驗(yàn)證容器狀態(tài)是否正常。
$?docker-compose?up?-d
$?docker?ps#?CONTAINER?ID???IMAGE????????????????????????????????????????????????????????????COMMAND??????????????????CREATED???????STATUS???????PORTS???????????????????????????????????????NAMES#?cd290e6326f5???registry.cn-hangzhou.aliyuncs.com/weiyigeek/code-server:latest???"/usr/bin/entrypoint…"???12?days?ago???Up?12?days???127.0.0.1:3002->8080/tcp????????????????????code-server#?進(jìn)入容器驗(yàn)證是否能訪問(wèn)外網(wǎng)(可以參考已經(jīng)無(wú)法訪問(wèn)外網(wǎng)了)
$?docker?exec?-it?code-server?bash
ubuntu@cd290e6326f5:~$?curl?-I??weiyigeek.top
curl:?(6)?Could?not?resolve?host:?weiyigeek.top
Step 4.然后訪問(wèn)作者前面搭建部署的1panle面板進(jìn)行,通過(guò)使用Openresty中間件(若沒(méi)有安裝可參考此篇《部署OpenResty一個(gè)基于 Nginx 與 Lua 的高性能 Web 平臺(tái)》文章),設(shè)置在線VScode的反向代理地址http://127.0.0.1:3002
到443
端口訪問(wèn),并配置好域名解析到note.weiyigeek.top
。
location?^~?/?{proxy_pass?http://127.0.0.1:3002;?proxy_set_header?Host?$host;?proxy_set_header?X-Real-IP?$remote_addr;?proxy_set_header?X-Forwarded-For?$proxy_add_x_forwarded_for;?proxy_set_header?REMOTE-HOST?$remote_addr;?proxy_set_header?Upgrade?$http_upgrade;?proxy_set_header?Connection?"upgrade";?proxy_set_header?X-Forwarded-Proto?$scheme;?proxy_http_version?1.1;?add_header?X-Cache?$upstream_cache_status;?add_header?Strict-Transport-Security?"max-age=31536000";?
}
Step 5.為了安全起見(jiàn),還在 OpenResty
啟用了 auth 遠(yuǎn)程身份認(rèn)證,為每個(gè)購(gòu)買我筆記的讀者分配一個(gè)賬號(hào)密碼,在瀏覽器中輸入https://note.weiyigeek.top/
進(jìn)行認(rèn)證后,即可訪問(wèn)到在線 VScode 網(wǎng)頁(yè)版中搭建的作者十年的學(xué)習(xí)工作筆記(PS: 作者通常會(huì)在每周五持續(xù)更新筆記喲!),最后若有需要筆記的小伙伴們可以添加作者【W(wǎng)eiyiGeeker】,說(shuō)明來(lái)意。
至此,在線VScode IDE中搭建個(gè)人Markdown知識(shí)庫(kù)實(shí)踐完畢!
參考文檔:https://coder.com/docs/code-server/FAQ
感覺(jué)文章不錯(cuò)的童鞋,請(qǐng)幫忙轉(zhuǎn)發(fā),點(diǎn) 👍、在看,若有疑問(wèn)的小伙伴,可在評(píng)論區(qū)留言你想法喲💬!