SSD Nodes Learn
指南 Matt Connor作者: Matt Connor · 已更新 2026-07-24

2026 年值得自建的 25 個 Self-hosted 應用程式清單

精選 25 款 2026 年值得在 VPS 上運行的 Self-hosted 應用程式,按功能分類並提供取代服務對照。本文包含真實的 RAM 與磁碟需求數據,並特別提醒 Nextcloud 若使用 SQLite 可能導致資料庫毀損的關鍵陷阱,助你精準規劃 Docker 容器資源配置。

你將建立的內容

不是單一應用程式,而是一份清單。這是本網站所有內容的核心:2026 年值得在個人 VPS 上運行的 25 個應用程式,並按功能分類。針對每個應用程式,我會提供其取代的服務、真實的 RAM 與磁碟需求,以及若忽略該項設定會導致的關鍵問題。若有完整的逐步指南,連結會直接指向該指南。

我經營 VPS 主機已有 15 年,且我個人的大部分服務都運行在自己的機器上。因此,下方的資源數據是應用程式在實際輕量工作負載下的真實消耗,而非行銷頁面上的「最低配置」。請將其視為預算,並預留額外的餘裕。

前提條件與現實情況

這裡的每個應用程式都運行在全新的 Ubuntu 24.04 KVM VPS 上,並具備 root 或 sudo 權限。幾乎所有應用程式都以 Docker container 形式提供,因此只需安裝一次 Docker,即可準備好運行整個清單:

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-world

如果 docker 指令出現 permission denied while trying to connect to the Docker daemon socket 錯誤,表示你跳過了 group 步驟或未開啟新的 shell —— 請登出並重新登入。如果 docker compose 回傳 docker: 'compose' is not a docker command,表示你使用的是舊版的 standalone binary;上述腳本安裝的是現代化的 Compose plugin,呼叫方式為 docker compose(中間是空格,而非連字號)。

以下內容受三個現實因素影響。首先,RAM 是限制因素,而非磁碟或 CPU。1 GB 的 VPS 只能運行一個小型應用程式。4 GB 是「自行託管數個服務」機器最理想的配置。2 GB 是尷尬的中間地帶,初學者常在此堆疊第三個服務,導致觸發隱形的 Out-Of-Memory kill,卻永遠查不出為什麼 container 會消失 —— sudo dmesg 顯示了被 daemon 吞掉的 Out of memory: Killed process 行。第二,任何公開服務都需要名稱與憑證 —— 單純使用 IP 僅限測試,一旦你需要手機 App 或瀏覽器信任該服務,IP 模式就會失效。第三,兩個連接埠決定了一半的選擇 —— 80 與 443 必須能連通至機器以實現自動 TLS,而大多數供應商會封鎖外出的 25 port,這也是為什麼電子郵件被列在最後的「不要嘗試」清單中。

檔案與照片

  • Nextcloud 在一個套件中取代了 Google Drive、Dropbox 與 Google Calendar。預算為 1–2 GB RAM,外加你的檔案大小。唯一的陷阱:SQLite 僅適合 demo,在正式環境中是個陷阱 —— 請從第一次啟動起就安裝在 PostgreSQL 上,因為在資料存入後才遷移資料庫,是導致 Nextcloud 毀損最常見的原因。完整的 使用 Docker、TLS 與備份在 VPS 上安裝 Nextcloud 指南可確保你第一次就設定正確。
  • Immich 取代了 Google Photos,包含自動上傳相簿的手机 App 以及人臉與物件搜尋。預算為 6 GB RAM —— Immich 的文件稱之為最低配置,8 GB 較為舒適;machine-learning container 是資源消耗大戶 —— 磁碟需求等於你的圖庫大小,外加約 20% 的縮圖空間。陷阱:Immich 的版本間仍會有 breaking changes,因此切勿盲目執行 latest;請固定版本並在每次升級前閱讀 release notes。自行託管的 Immich 相片圖庫 指南涵蓋了安全的升級路徑。
  • Seafile 是這三者中同步引擎最快的 Dropbox 替代方案。預算約為 1 GB RAM。陷阱:Seafile 將檔案儲存為 content-addressed blocks,而非磁碟上的普通檔案,因此你無法使用 ls 瀏覽資料,且必須透過 Seafile 自身的工具進行備份,而非直接複製資料夾。

密碼

  • Vaultwarden 使用輕量級的 Rust 伺服器取代了 Bitwarden 的付費版、LastPass 與 1Password,它支援 Bitwarden 協定,因此所有官方 Bitwarden App 與瀏覽器擴充功能皆可直接使用。預算為 100–200 MB RAM,且幾乎不佔用磁碟。陷阱:這台機器存放著你所有的密碼,因此 TLS 與備份是必須的,而非選配 —— 且請將 ADMIN_TOKEN 設定為 Argon2 hash,因為在 compose 檔案中使用 plaintext token 就等同於將主金鑰暴露在明文之中。Vaultwarden 密碼管理員 指南是最佳的入門選擇。

媒體

  • Jellyfin 取代了 Plex,對個人圖庫而言則取代了 Netflix —— 完全開源,無需帳號,無付費遠端串流限制。閒置時預算為 1–2 GB RAM,但在轉碼時 CPU 負載會大幅飆升。陷阱:軟體轉碼 4K 串流會讓小型 VPS 過熱;你要麼為機器提供 hardware acceleration,要麼將檔案保持在客戶端可直接播放的格式 (Direct Play),讓伺服器只需傳輸 bytes。在 VPS 上建立 Jellyfin 媒體伺服器 指南解釋了兩者的差異。
  • Navidrome 為你的音樂提供 Spotify 的體驗,可串流至任何支援 Subsonic 的 App。預算為 150–300 MB RAM —— 它使用 Go 語言編寫,幾乎不佔資源。陷阱:第一次進行 library scan 時會讀取每個檔案的 tags,大型收藏可能耗時一小時;ID3 tags 錯誤會導致瀏覽體驗極差。
  • Audiobookshelf 取代了 Audible 與 Podcast App,可在不同裝置間同步播放進度。預算為 200–500 MB RAM。陷阱:它要求嚴格的「一書一資料夾」佈局,雜亂的 import folder 會導致圖庫解析錯誤且難以修正。

自動化與 AI

  • n8n 使用視覺化工作流建立器取代了 Zapier 與 Make,且無須按任務計費。預算為 400 MB–1 GB RAM。陷阱:n8n 會在首次執行時生成金鑰來加密儲存的 credentials,如果你遺失該金鑰 —— 或忘記設定 N8N_ENCRYPTION_KEY 導致其重新生成 —— 所有儲存的 credentials 都會無法讀取,你必須全部重新輸入。使用 HTTPS 自行託管 n8n 指南會固定該金鑰,並在 webhook URL 前方加上真實憑證。
  • Ollama 取代了 ChatGPT 訂閱,用於本地、私密的 LLM 推論。資源需求依模型而定:7–8B 模型需要約 8 GB RAM,每個模型佔用 4–8 GB 磁碟。陷阱:在僅有 CPU 的 VPS 上,推論速度很慢 —— 是以每秒字數計算,而非像託管 API 那樣即時回應 —— 請降低預期,或租用帶有 GPU 的機器。執行 Ollama 以自行託管 LLM 指南提供了寫實的數據。

通訊

  • Rocket.Chat 為團隊提供取代 Slack 的方案,具備 thread、通話與整合功能。預算為 2 GB RAM 以上,因為它運行在 MongoDB 上,這是資源消耗大戶。陷阱:Rocket.Chat 的每個版本都綁定特定的 MongoDB major version,升級時跳過版本會導致資料庫毀損 —— 請逐版本升級。使用 Docker Compose 部署 Rocket.Chat 指南會引導你進行版本升級。
  • Matrix (Synapse) 使用 federated、end-to-end-encrypted 網路取代 Slack 與 Discord,讓你擁有自己的 homeserver。預算為 1–2 GB RAM,且會隨加入大型公開房間而增加。陷阱:Synapse 在大型 federated rooms 中的記憶體使用量會激增,且必須運行在 PostgreSQL 上 —— 預設的 SQLite 僅供單人測試,一旦進行 federation 就會崩潰。如果 Synapse 負載過重,較輕量的 Conduit 或 Dendrite 伺服器支援相同的協定。

網路與存取

  • WireGuard 取代商業 VPN,為你提供連回個人 IP 與其他服務的私密隧道。預算幾乎為零 —— 低於 50 MB,且加密運作於 kernel 中。陷阱:在基於 container 的虛擬化技術 (OpenVZ, 部分 LXC) 上,該模組會因 RTNETLINK answers: Operation not supported 而失敗;你應該使用 KVM。自行託管 WireGuard VPN 指南是參考基準,將其與綁定在隧道上的服務搭配使用,是將服務完全隔離於公開網路之外的方法。
  • Traefik 取代手寫的 nginx virtual hosts 與手動憑證更新 —— 它透過 Docker labels 發現 container 並自動取得 Let's Encrypt 憑證。預算約為 100 MB RAM。陷阱:基於 label 的配置模型起初非常難懂,且單一錯誤的 label 會導致應用程式無法路由且無明顯錯誤。為多個 Docker 應用程式設定 Traefik 反向代理 指南專為將本頁面中的多個應用程式運行在單一入口後端而設計。
  • AdGuard Home 取代 Pi-hole 與付費 DNS 過濾,在 DNS 層級阻擋網路中所有裝置的廣告與追蹤器。預算為 100–150 MB RAM。陷阱:它需要佔用 53 port,這會與 Ubuntu 上的 systemd-resolved 衝突 —— 在釋放該 port 前,它會因 listen udp 0.0.0.0:53: bind: address already in use 而無法啟動。

監控

  • Uptime Kuma 取代 Pingdom、UptimeRobot 與 StatusPage,提供簡潔的 dashboard 與幾乎所有頻道的告警。預算為 150–300 MB RAM。陷阱(也是大家常忽略的):請從「另一台」機器監控你的生產環境機器 —— 在被監控的同一台伺服器上運行 Uptime Kuma,無法告訴你該伺服器當機的消息。Uptime Kuma 狀態監控 指南涵蓋了外部部署方案。
  • Zabbix 取代 Datadog 與企業級監控套件,提供深度的 agent-based 指標、觸發器與歷史紀錄。預算為 2 GB RAM 以上,外加其自身的資料庫。陷阱:Zabbix 功能強大但設定繁瑣 —— 對於監控三個 container 來說大材小用,但對於管理大量設備則是正確工具。建議從 Uptime Kuma 開始;當你真的有基礎設施需要監控時,再升級到 Zabbix 監控伺服器

Prometheus 與 Grafana 未列入此清單是刻意為之:它們是極佳的規模化工具,但運行與調校的成本比個人兩三台機器的需求更高,且在這種規模下,Uptime Kuma 加上 Zabbix 能以更低的維護成本回答相同的問題。

Dashboard 與控制面板

這些工具改變了運作模式 —— 與其手動執行 compose 檔案,不如使用面板來管理應用程式。

  • Cloudron 取代了「希望這能一鍵安裝」的需求,提供精美的 App Store、自動 TLS 與內建備份。預算至少 2 GB RAM,4 GB 較舒適。陷阱:它具有強烈的設計觀念且會接管整台機器,且僅限兩個應用程式免費使用 —— 超出限制後為付費產品。
  • CasaOS 取代雜亂的 homelab dashboard,提供友好的 App grid,且免費且輕量。CasaOS 本身預算約為 150 至 300 MB。陷阱:它是為受信任的家庭網路設計,並未針對公開網路進行強化 —— 請勿直接將其暴露於公網;請透過 WireGuard 存取。
  • Coolify 取代 Heroku、Vercel 與 Netlify —— 在你自己的伺服器上實現 git-push 部署、資料庫與預覽功能。預算至少 2 GB RAM。陷阱:這是一個發展快速的新興專案,請固定版本並在升級前閱讀 release notes。Cloudron vs CasaOS vs Coolify 比較 分析了這三者各自適合哪些使用者。

開發者與生產力工具

  • Gitea (或 Forgejo) 為私有儲存庫、Issue 與 CI 提供取代 GitHub 的方案。預算為 200–500 MB RAM。陷阱:Forgejo 是 Gitea 的社群驅動分支,也是目前許多人推薦的選擇;兩者皆優異,但請選擇其一,並務必同時備份儲存庫與資料庫 —— 只有儲存庫而沒有資料庫的備份,會導致所有 issue 與 pull request 遺失。
  • Paperless-ngx 取代了檔案櫃與付費文件掃描器,透過 OCR 讓你的文件變得可搜尋。預算約為 1 GB RAM,OCR 期間 CPU 負載會飆升。陷阱:OCR 結果取決於你的掃描品質,且重新處理大型檔案庫速度很慢 —— 在大量匯入十年份的文件前,請先完成調校。
  • Actual Budget 取代了 YNAB 與 Mint,提供快速、本地且私密的信封預算管理。預算約為 150 MB RAM。陷阱:自動銀行同步是需要額外設定的附加功能,因此開箱即用時需手動匯入交易。
  • FreshRSS 取代了 Feedly 與已停止服務的 Google Reader —— 一款快速、私密的 RSS 閱讀器,並提供手機 App。預算約為 150 MB RAM。陷阱:必須設定基於 cron 的 feed refresh,否則 feed 只有在你開啟頁面時才會更新。
  • BookStack 為文件管理提供取代 Notion 與 Confluence 的方案,以書架、書籍與頁面進行組織。PHP 與 MySQL 預算約為 500 MB RAM。陷阱:它以其特有的結構化方式組織內容,而非自由格式筆記,有些人喜歡這種嚴謹,有些人則覺得僵化 —— 在投入全部 wiki 資料前請先試用。
  • Home Assistant 取代了 SmartThings 與數十個廠商 App,在本地端統一你的智慧家庭。預算約為 1 GB RAM。陷阱:其許多功能需要與裝置進行本地網路連線,因此在家庭硬體上運行比在遠端 VPS 上更自然 —— 若必須遠端運行 dashboard,請建立橋接連回。

範例安裝

為了具體說明,以下是一個自行託管的完整架構:一個 compose 檔案、一個真實憑證與一個備份。這是 Uptime Kuma 的範例,但清單中的每個應用程式都遵循相同的模式。

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    volumes:
      - ./data:/app/data
    ports:
      - "127.0.0.1:3001:3001"
    restart: unless-stopped
docker compose up -d
docker compose logs -f

請注意 127.0.0.1: —— 應用程式僅監聽 localhost,並由 Traefik 或 nginx 等反向代理在前端處理 TLS。直接綁定到 0.0.0.0:3001 是導致管理介面意外暴露於整個網路且未加密的常見原因。

哪些東西「還不要」自行託管

  • 電子郵件。 這是最誠實的建議。大多數 VPS 供應商都會封鎖外出的 25 port —— 你會看到來自 telnet aspmx.l.google.com 25Connection timed out,且這無法修復,這是政策。即使 25 port 開放,一個沒有信譽、沒有 PTR 紀錄、SPF、DKIM 與 DMARC 的新 IP,也會讓你的郵件進入垃圾信箱或被直接拒絕。這是一項持續性的工作,而非週末就能搞定的。如果你堅持要嘗試,請參考 使用 Mailcow 自行託管電子郵件 指南,並做好數月內都要持續維護送達率的心理準備。
  • 任何你無法可靠備份與還原的東西。 如果你從未進行過還原測試,你擁有的不是備份,而是希望。在證明還原功能有效之前,請勿將不可取代的資料(例如:你照片或帳號的唯一副本)放在服務中。
  • 關鍵依賴項的唯一副本。 一個當當機時會導致整個網路斷網的自行託管 DNS 伺服器,並不是一個好的入門專案。請保留一個上游備援。
  • 即時安全系統。 家用警報、醫療警報,以及任何「五分鐘停機就會造成實質問題」的系統,不應該放在你週日晚上會進行升級的愛好型機器上。

如何選擇第一個應用程式,以及兩項不可妥協的原則

選擇一個能消除你討厭的帳單或讓你感到隱憂的隱私問題的應用程式。實務上,最佳的入門選擇是 VaultwardenUptime Kuma:兩者資源消耗極低、能立即發揮作用,且在你出錯時容錯率高。在增加第二個應用程式之前,請先完整跑通第一個——安裝、憑證、備份、還原測試。你建立的技能是「維運」,而非僅僅點擊安裝。

以上所有應用程式都有兩項不可妥協的原則,絕無例外:

  1. 所有公開服務必須使用 TLS。 單純使用 IP 的明文服務僅供測試,而非正式部署。請使用 使用 nginx 搭配 Certbot 與 Let's Encrypt 在前端加上真實憑證,或讓 Traefik 自動處理。接著使用 在 Ubuntu 24.04 上使用 Fail2ban 防禦 SSH 來強化入口安全。
  2. 必須進行過還原測試的備份。 設定每日自動備份 —— 資料庫與資料卷需同時備份 —— 並將其傳送到「機器之外」,每月將備份還原到一台測試用的 VPS 以證明其有效。當你的磁碟毀損時,絕對不是才發現備份是空檔案的時候。

做好這兩點,自行託管將是一件樂事;忽略它們,則是一場倒數計時。

選項從實用到荒謬不等,從家庭用的 VPS 上的 Minecraft 伺服器,到如果你想聽個教訓的話,世界上效率最低的資料中心

FAQ

我應該先自行託管什麼?

Vaultwarden。密碼管理員能提供每日價值、取代訂閱服務,並強迫你學習完整的流程 —— Docker、反向代理、TLS 與備份 —— 而且即使搞砸了,這個應用程式小到可以在十分鐘內重建。Uptime Kuma 是極佳的第二步,讓你在使用者發現停機前就先知道。

我實際需要多少 VPS 資源?

對於單一小型應用程式,1 GB RAM 即可。對於舒適的「運行數個服務」機器,目標應設在 4 GB —— 2 GB 的中間地帶是人們常遇到隱形 Out-Of-Memory 導致 container 崩潰且查不出原因的地方。RAM 幾乎總是限制因素;磁碟請根據預計儲存的資料量來配置,並預期 Immich、Ollama 以及任何帶有大型資料庫的應用程式都會消耗大量資源。

我不應該自行託管什麼?

首先是電子郵件 —— 大多數供應商都會封鎖外出的 25 port,且送達率是一場持久戰。其次是任何你無法可靠備份與還原的東西,以及任何一旦停機會造成實質損害的單點故障,例如沒有備援的 DNS 伺服器或居家安全系統。清單上的其他所有項目都是合理的選擇。

我需要為這一切都使用 Docker 嗎?

不一定,但建議使用。這裡的每個應用程式都有 Docker image,Docker 能提供乾淨的安裝、乾淨的移除、簡單的版本固定以及對新主機的移植性。如果你偏好原生安裝,部分應用程式(如 WireGuard, Zabbix)也可以透過 apt 安裝。一旦你學會一個 compose 檔案,你就學會了全部,這也是為什麼整個清單都變得容易上手的原因。

我該如何保持安全?

四個習慣可以涵蓋大部分問題:為所有服務加上 TLS、使用金鑰登入並搭配 使用 Fail2ban 封鎖暴力破解嘗試 來鎖定 SSH、僅公開你真正需要的連接埠並透過你的 WireGuard VPN 存取其餘部分,以及定期更新並閱讀 release notes 以避免升級時措手不及。備份是第五個習慣 —— 當錯誤發生時,它是你的救贖。

#self-hosting#docker#open-source#vps#homelab