20260408 | 難得這麼感動_關於我的rpi4
¶我太感動了
¶我停不下來
¶嗚嗚嗚
這是我小時候會說的話。一般是在背書被罵等等感到為難的情況下
現在我罕見的有這種感受。
接續昨天寫的關於我的網頁進程因為out of memory被砍的問題,我馬上的把我高中時的那塊派挖出來,找到那顆傳說5V3A的豆腐頭,並且尋尋覓覓的找著一條閒置多餘的USB A2C的線,以及準備一顆用於頻繁寫入Docker資料的隨身碟(64G,3.0)
有鑑於先前裝上Authentik,我的nas記憶體馬上飆升20%(大約1.2G),直上75%的危險狀態,況且大概是在半夜三點鐘在nas進行固定的備份排程時docker進程被大刀闊斧的砍了大半,其中我的部落格、UDGC、matrix、auth都有遭殃。為此我感覺有點危及,想到樹梅比我的nas多了2G,如果我讓樹梅與nas並行一起跑服務,我可以多出整整一倍的記憶體用量讓我布置服務,也恰巧這塊樹梅都快吃灰了,拿來利用利用。
¶系統
第一次接觸裝系統也是獻給樹梅,系統一般是裝載於記憶卡上,少的要準備16G,充足建議64G起跳。不過有鑑於記憶卡被ai說的不耐讀寫,因此我們選擇使用隨身碟,兩者都可以裝載作業系統(OperatingSystem)。不過當我找回樹梅時,放在裡面的16Gsd卡已經有我事先裝載好的bookworm版RaspiOS,應該是恰好那時有RPiConnect1的功能感覺可以玩玩,因此當時有這樣的設置(因為這個功能是從bookworm版開始支援的)
我裝載的系統不是Lite,挺奢侈的老實說,因為一般OS版是帶有GUI介面的,對於一般開發者來說,或者極客們享受這種編程與自由快感的情況下,以及對於資源吃緊因此需要減少不必要的進程或者資源消耗,會選擇安裝純粹只有指令介面的lite版本(lite版本基本上是8G記憶卡、2G RAM也能跑得起來的極輕量版本,相比GUI OS就至少要16G記憶卡跟4G RAM會比較建議了)
不過我們一般開發還是會透過ssh來做遠端連線就是了。非得要圖形介面,可以選用vnc功能。
¶架網站與遠端開發
以前有樹梅派,知道可以架網站,但就是從來都不知道實際怎麼架網站,畢竟我沒有網域,又或者有了網域也不會用。但實際上其實難度遠不只這些:
¶傳統架站的困難
傳統架站是怎麼架的?
- 要有個網域(必須的)
- 要有台主機(必須的)
- 要有網路(必須的,你甚至應該要有路由器可以方便埠口與防火牆)
- 反向代理:告訴人家網域進站後我想到A房間的實際路徑怎麼走
- 固定IP:實際物理上必須是不可變動的IP
- 資安防火:由於IP不會變動,對於資訊安全更需要加以防範
以上光是固定IP跟資安其實就是不小的困難度了,但事實上我們可以很簡單:
¶現代工具的簡便
架站你可以有圖形化介面(儘管初期不免需要跑一點點指令)
可以先裝Docker容器化,這樣就相當於一個一個應用程序,搬遷容易管理容易,防護也容易(傳統例如寫Python就可能得依賴venv或conda)
接著Portainer作為Docker的第一個容器,跑起來之後就可以完美的有一套Docker圖形化管理介面,不論是建立容器、專案堆疊(stack)、容器資源管理都可以直接透過一個管理介面處理完這些事情。(雖然如果有要掛載檔案,就可能需要用一點指令碼)
再來就是快樂的部署時光後
透過Cloudflare或ngrok這種隧道平台可以協助點對點的如quickconnect般,不用設定PortForwarding之類的問題,也不會受限於ISP業者讓不讓開埠口等等的規則(但如果想要進階部署如FTP或UDP等服務,還是建議要開埠口直通避免造成麻煩或者隧道無法負荷)
因為有網路就能用,所以也不一定要固定IP,不是固定IP且使用Docker來部署網頁服務,就一般人來說這樣的資安程度就足矣了!
儘管Linux在使用者權限上有些坑坑洞洞,多多少少都需要依賴root(sudo)來做事情,所以也不免可以請出現在厲害的ai大神來協助辦案。
¶遠端開發
剛提到,rpi從bookworm開始有connect服務可以用,又或者一樣使用類似隧道的服務來進行ssh,就可以做到在外面諸如圖書館等環境場景進行開發作業,就沒有限定要在網內,也不用開複雜的VPN,就都跟網頁服務用的隧道差不多。
況且最主要的是,透過VScode/codium/等等此類編輯器,可以直接跑ssh terminal,甚至於都可以直接請ai agent對其做開發,會比間接開發要來的容易許多!
¶隨身碟與nas備份
由於我這次主要是將nas的專案移動到rpi掛載的隨身碟上,基本上的備份也還是要做的,因此我們先在Docker安裝好後先設定主目錄到隨身碟,再開始裝Portainer跟備份進程corn。最後才是遷移作業
對於我這種疑慮多多的人,問ai不少問題後才讓我對這些環境有更多的了解跟信任XD
對於突然忘記在筆電上用專有軟體測試隨身碟時,linux自帶指令可以直接測試,讚
¶很障礙的協助工具
如果用Windows喜歡亂按按鍵的人類應該都知道有個叫做相黏鍵的東西,通常是按5次shift吧!
我沒按到5次,但我按了兩次shift,我的shift組合鍵卻不能用了,當下我有猜想應該是協助工具作祟,但是我沒有啟用到相黏鍵。
結果

為什麼有這種設計連按兩下就把人家鎖住還不帶提示的啊?
¶讀取記憶體
還是為了監控了解記憶體使用狀況,但是在RPi的docker與Portainer連線過程卻沒有顯示memory,所以問了ai
sudo nano /boot/firmware/cmdline.txt
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1放到最後面
然後重啟就可以了
我就看到鬼到不行的authentik給我吃了1.2G,auth合併系統巔峰最高吃了2G/8G,想想這進程還是吃了不少記憶體,但至少我的nas從75%降回55%,甚是心安了。
同時也很感動我這塊樹梅派終於是真派上用場了
¶最後的感動
free -ght
可以用於查看總RAM使用量
docker stats
可以查看docker資源使用量,一覽無遺,超讚
htop
如果你想看哪一個容器(或進程)最吃資源,這款「彩色儀表板」是首選。
我的天,這居然是彩色的,而且在命令列中甚至滑鼠可以跟他有如gui般的互動,那瞬間我整個太感動了,居然會看到這麼漂亮有意思的介面,我覺得這真的是親自極客過才能感受到的一種特殊爽感,特別是自己操作理解看過用過的那種一步一路走來的成果,簡直不要太感動了。
日後我會接續開發下去的!雖然感覺意外的在編程開發路上越玩越多了AWA
- 是由樹梅派經營的一款可以直通連線樹梅派的免費服務,只要設定網路,並且設定好樹梅帳號,就可以直接在網外透過瀏覽器連到自己的樹梅。 ↩
感謝您的閱讀。如有任何想法,歡迎留言來信。
回文章列表
留言區 / 文章反應
載入中...