本文分享Ivon個人跑自架服務的環境,供讀者參考。
自架有何好處#
參見 論為何應該自架服務一文
至於說自架都跑什麼服務,各種都嘗試過了,從簡單的擋廣告服務,到BT下載、相簿、影音串流、音樂串流、遠端書庫、雲端硬碟、搜尋引擎、Youtube鏡像站、自架ChatGPT、AI繪圖、雲手機、串流遊戲的服務都有。更多請見 自架雲端服務的分類。
不會讓太多服務同時上線,視乎硬體資源會關掉部份服務。
需要的硬體#
看服務需求,硬體可大可小。
輕量服務只要一塊Raspberry Pi就行了。
需要長期使用的,購買一台NAS吧,現成的對新手來說比較好上手,組RAID會比較方便。
而我則是選擇較為自由的自組派,把手弄髒(get hands dirty)學得更快。目前,我用舊x86電腦改裝成Linux伺服器,不計電費消耗,也沒有組RAID。
- 主機板:ASUS K31CD-K,可插兩條RAM,還有6個硬碟
- CPU:Intel i5-7400,伺服器四核心就夠用了
- RAM:16GB DDR4,有點太高級了,低標4GB RAM即可
- GPU:Nvidia GTX1050Ti。GPU其實不是伺服器必備的,但近年來生成式AI讓顯示卡價值大增,所以添購顯示卡不會虧的。
- 儲存空間:1TB SSD + 1 TB HDD
作業系統當然是Linux。選一個比較多人用且穩定發表的發行版吧,個人推薦Ubuntu,或者Debian、Rocky Linux、openSUSE Leap、Proxmox。不要用滾動發行版。
要不要裝圖形界面看個人選擇,我至少還是有留桌面環境方便除錯。
常用系統工具#
為了系統穩定度考量,我很少讓服務直接跑在裸機上,大部份會將其容器化,或者乾脆關在虛擬機裡面跑。
- OpenSSH:遠端登入
- Auditd:檢查系統操作紀錄
- UFW:防火牆,你要用Firewalld也行
- Libvirt + QEMU/KVM:虛擬機,啟用GPU直通。跑較為重型的服務,例如雲端遊戲串流,或是沒辦法容器化,需要動到系統套件部署的服務。
- Docker或Podman:容器技術,比虛擬機輕量的解決方案,大部份服務都用這個跑。Docker目前還是主流的容器化方案。
- LXC:容器方案,Docker生態系優勢太大,這東西就沒什麼用了。
- Kubernetes:除非你擁有好幾台電腦組成叢集,否則這東西是牛刀殺雞。
- Portainer:網頁管理Docker容器的界面
- Cockpit:網頁管理QEMU/KVM虛擬機的界面
外部連線工具#
外部連線工具就是讓自架服務能從外部網路隨時存取的工具。下面是一些選項:
- Tailscale:內網穿透與VPN
- ZeroTier:內網穿透與VPN
- NetBird:內網穿透與VPN
- Cloudflare Tunnel:加密隧道,從外網存取內網裝置,不用VPN的方案
- Port Forwarding + DDNS:通訊埠轉發與動態DNS
- Port Forwarding + Ngnix:通訊埠轉發與反向代理
其中內網穿透是最簡單的方案,幾乎不用設定,個人使用的話夠用了。