介紹
這篇文章我想要分享我是如何用一台小小的樹梅派,運行自己的個人網站、個人資料庫、Gitea、NextCloud、VPN。最開始的動機是為了建立個人網站以及了解整個CI/CD的流程以及想要管理自己的隱私資料,目前很多大公司的服務雖然都有很牢靠的備份服務,但是難保有個萬一大公司出了意外可能很多的資料都會消失。
這台小小的機器現在不僅運行著我的個人網站,更是我磨練各種軟體技能的演練場。
核心服務介紹
上述提到的所有服務我都採用docker來運行,不僅可以讓我的環境隔離乾淨,在未來想要遷移機器、備份、還原等都變得很容易,docker就是這麼好用的一個工具,另外所有的應用都是透過cloudflare tunnel讓外部網路可以連接的,因為我沒有自己的固定IP。
-
Nginx - 網頁伺服器,有以下應用正在運行。
-
Gitea - 個人程式碼版控,目前我所有的程式碼都是上傳到這裡進行管理,並且我使用了Gitea Action的功能讓個人網站的Repo在master push的同時可以進行發布的流程。
-
NextCloud - 私人雲端硬碟,出門在外可以讓任何裝置存取我的硬碟資料,也可以讓手機上的照片自動上傳,但目前有在考慮是否要將這個應用暴露在外網,因為我有搭建VPN服務了。
-
PostgreSQL - 所有服務的資料庫處理。
備份機制介紹
目前的需要備份的檔案有
- 資料庫(最重要)。
- 所有的docker-compose.yml檔案。
- 個人網頁上傳的照片。
我透過編寫bash將postgres dump備份到樹梅派外接硬碟中,接著透過Duplicati將外接硬碟大部分的資料備份到google drive中,Duplicati是一個很好用的軟體可以透過GUI的方式很方便的設定想要備份哪些資料以及想要備份到哪裡。
總結
這台樹梅派中讓我學習到了如何維護一個小伺服器、練習了如何從0到1架設一個外部可以連上的外部服務,目前該伺服器已經運行了一年多了,希望以後可以有更多的用途。