cftang隨筆

偶爾發發廢文,不用太認真


使用 FRP + Caddy 架站心得分享

其實我一直有個架站的夢想,身為一個 DevOps 我其實在公司的工作也是在接觸這些東西,只是公司的東西都比較貴XD

我自己家用沒事搞個 GKE 幹嘛?很貴捏哈哈哈

然後我沒事又喜歡亂玩各式各樣的 Open Source Tool,所以運算資源真的不喜歡被綁手綁腳的,VPS也是不便宜,身為肥宅,家裡什麼沒有電腦最多,就覺得好像能拿那些用不到的電腦來做點什麼。因此就有本次的企劃啦~

雖然我家有固定 IP 但總覺得把 IP 直接對外哪裡怪怪的,因此就想說反正對於延遲也沒那麼講究,好像可以用最便宜的 VPS 做個跳板,用FRP 幫忙導流到家裡的 home server,這樣做對於家裡只有 NAT 的宿舍租屋仔也很有幫助唷~ 基本上任何形式的家用網路都可以拿來架站,安全性也較高,因為真正對外的還是在雲上的 VPS 主機。

大致上的設計如上圖所示,其實也沒什麼特別的,就是使用 frp 做 tunnel,使用 Caddy 做自動TLS憑證。

如果有哪邊不對的歡迎留言指教,也歡迎一起討論


準備的東西

  • 不要用的電腦 *1
    • 我自己是找了一台省電的小PC i3-7100u 12G RAM 128G SSD
    • Ubuntu Server 作業系統
    • 有線網路
  • VPS *1
    • 我用 Vultr 最便宜的方案,5 USD/month,1G RAM/1 Core CPU/25G SSD
    • 因為只是用來作 FRP 跳板使用,所以基本上不用太強的 spec 可以省錢
  • DNS
    • 因為我基本上就是個省錢仔,我這次是用 Cloud DNS,不是 GCP 那個 Cloud DNS,雖然免費方案是拿到subdomain而已,但玩玩也是夠用了

基本上也就是這樣了,等於用5美元,我就可以運用更好的運算資源,可以做更多的事情,當然,也是有代價的,家裡如果網路不穩或是停電,那就有可能會有停機的風險,這也是必須要考慮進去的,如果是 critical 的網站,例如有在做生意的電商平台,那我就不太建議用家用主機架設了。但是如果是架設玩具,或是像是我這個廢文小站,那真的可以考慮看看唷。

此外,我還在那台 VPS 上面架設了 WireGuard VPN,使用 wg-easy 直接 docker compose 架設,有時候拿來上日本鎖 ip 網站也是爽爽用XD


有關於 FRP & Caddy 設定基本上也就是 systemd 設定一下

frps -> frp 在 server 端 (VPS)設定
frpc -> frp 在 client 端 (home server) 設定

細節就不在這邊贅述,建議可以看一下他們的文件或是直接問 LLM。

而使用 Caddy 則是讓服務都可以拿到 TLS 憑證,相比以前在那邊搞 certbot 還要幾天後重新驗證,使用 Caddy 真的相當省心。


我在 home server 安裝了些什麼呢?

  • WordPress Blog (本站)
  • MatterMost (Slack 平替,自己用可以發一些 monitoring message 給自己)
  • HedgeDoc (HackMD 的開源版本,寫寫技術文件)
  • MinIO (S3 平替,可以拿來做圖床,也可以放 json file 讓自己寫的靜態網頁抓資料)
  • SupaBase,BaaS 平台,可以用來做簡易後端
  • 各式各樣自己想要做的 API、服務或是網頁,只要包成 docker 都能上

基本上算是相當滿足了,以前自己寫東西總是會限制在前端,或是用非常有限的後端資源,現在基本上就是開好開滿,反正玩玩而已,如果哪一天真的做出什麼重要的服務,到時候再考慮用更正式的 VPS 來部署吧哈哈。



發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *