SSD Nodes Learn 🎉 VPS $5.50/月起
指南 Matt Connor作者: Matt Connor · 已更新 2026-08-13

如何在 VPS 安裝 Cloudron?完整設定指南

在全新的 Ubuntu VPS 安裝 Cloudron:先設定 wildcard DNS,再執行安裝指令碼並完成首次啟動,了解 2 至 10 個應用程式的規格、郵件、憑證與備份設定。

VPS 安裝 Cloudron:精簡版

若要在 VPS 上安裝 Cloudron,您需要全新的 Ubuntu 伺服器、至少 2 GB RAM,以及一個可以編輯 DNS 記錄的網域。安裝本身只需執行 3 個命令並重新開機 1 次。大多數問題都發生在這個步驟之前(基礎映像檔錯誤、虛擬化類型錯誤),或完成安裝之後(DNS、郵件、備份)。

wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
sudo ./cloudron-setup

Cloudron 會為自架應用程式安裝、更新及備份,並簽發 TLS(傳輸層安全性)憑證。每個應用程式都在 Docker 中執行,nginx 位於所有應用程式前方,而每個應用程式都會使用您網域的獨立子網域。正因如此,DNS 設定必須先處理。

Cloudron 為何對基礎作業系統要求嚴格

安裝指令碼會在安裝任何元件前檢查伺服器。檢查失敗就表示必須訂購新的伺服器。選擇映像檔前,請先閱讀這些要求。

  • 僅支援 Ubuntu,而且只支援 3 個版本。其他系統會以 Cloudron requires Ubuntu 20.04, 22.04, 24.04 結束。Debian、Rocky 和 Alpine 均不支援。Ubuntu 24.04 需要 Cloudron 8 或更新版本,指令碼會代為檢查。
  • 僅支援 64 位元 Intel 或 AMD:Error: Cloudron only supports amd64/x86_64。ARM VPS 無法執行。
  • 僅支援完整硬體虛擬化。在容器型 VPS 上,指令碼會以 Error: Cloudron does not support lxc, only runs on bare metal or with full hardware virtualization 停止,因為它會透過 systemd-detect-virt --container 偵測容器。KVM 可以使用。OpenVZ 和 LXC 不支援。
  • 根檔案系統必須是 ext4xfs。使用其他檔案系統時會出現 Error: Cloudron requires '/' to be ext4 or xfs;btrfs 和 zfs 映像檔就是因此失敗。
  • 至少需要 941 MB RAM,以及 / 上的 20 GB 空間。指令碼會使用 free -m 和根檔案系統的大小進行測量。
  • 伺服器必須確實是全新的。如果已安裝 nginxdockernode,指令碼會以 Error: Some packages like nginx/docker/nodejs are already installed. 拒絕執行。

最後一項檢查最常引起爭議,因此說明原因。Cloudron 會安裝固定版本的 Docker、nginx、Node.js 和 MySQL,為它代管的每個應用程式寫入 nginx 設定,並自行管理 iptables 防火牆規則。你昨天安裝的 Docker 版本可能不相容,現有的 nginx 網站檔案也會被取代。Cloudron 會管理整台機器,因此請提供專用 VPS。

還有一項容易忽略的檢查。較舊的 CPU 若沒有 AVX(advanced vector extensions),指令碼會輸出 CPU has no AVX support. MongoDB will be disabled,所有需要 MongoDB 的應用程式都會無法安裝。正式使用前,請先以 grep -m1 -o avx /proc/cpuinfo 檢查 CPU。支援的主機會輸出 avx,較舊的主機則不會輸出任何內容。

Cloudron 需要多少 RAM?

在 941 MB 以下執行時,指令碼會拒絕執行,並顯示 Error: Cloudron requires atleast 1GB physical memory;文件則要求 2 GB RAM 與 20 GB 磁碟空間。這兩個數字是平台本身的最低需求,不包含平台加上應用程式的需求。即使尚未安裝任何應用程式,Cloudron 也已在執行 Docker、nginx、自有的 box 服務、提供給應用程式使用的資料庫容器(MySQL、PostgreSQL、MongoDB)、Redis 及郵件堆疊。在全新安裝環境執行 docker ps 並計算這些項目。

應用程式的記憶體限制會額外加在這個基礎需求之上。每個應用程式套件都有較低的預設限制,您可以在應用程式的 Resources 檢視中使用滑桿調高限制。應用程式超過限制時會重新啟動,並傳送 OOM(記憶體不足)通知。因此,若伺服器持續重新啟動某個應用程式,通常是限制設定問題,而不是程式錯誤。

以下是我會採用的容量規劃。這些建議適用於不必在下個月重新建置的伺服器,不是實測基準結果。

ChartCloudron VPS sizing floor by number of apps
The data behind this chart
[
  {
    "label": "2 apps (free tier)",
    "vcpu": 2,
    "ram_gb": 4,
    "disk_gb": 60
  },
  {
    "label": "5 apps",
    "vcpu": 4,
    "ram_gb": 8,
    "disk_gb": 120
  },
  {
    "label": "10 apps",
    "vcpu": 6,
    "ram_gb": 16,
    "disk_gb": 240
  }
]

2 個應用程式在 4 GB RAM 與 60 GB 磁碟空間下可穩定運作。約 10 個應用程式需要 16 GB RAM 與 240 GB 磁碟空間,因為平台的基礎需求不會減少,而每個應用程式都會增加 Docker 映像、資料庫及自身資料。磁碟空間消耗通常比預期快:映像、應用程式資料與本機備份會共用同一個磁碟區,直到您將備份移至伺服器外部。

Cloudron 為每個應用程式提供不限量的 swap,因此您設定的記憶體限制只套用於 RAM。在沒有 swap 檔案的 VPS 映像上,swapon --show 完全不會輸出任何內容;記憶體壓力會直接導致 OOM 重新啟動,而不是讓應用程式變慢。在 VPS 上增加 2 GB swap 是成本低廉的保險措施,但不能取代實體記憶體。VPS 方案之間的價差,通常小於您花在調整限制上的時間,因此請參閱 VPS 的實際成本,並購買更高一級的方案。

DNS:讓應用程式子網域正常運作的萬用字元記錄

Cloudron 將儀表板放在 my.example.com,並為每個應用程式使用個別的子網域,因此 DNS 是必要的前置條件,不是稍後才處理的步驟。首次開啟儀表板前,先將以下記錄指向伺服器的公開 IP 位址:

  • my.example.com 設為 A 記錄。這是儀表板。
  • *.example.com 設為 A 記錄。這筆記錄會讓應用程式子網域正常運作,因此安裝這些應用程式後,wiki.example.comgit.example.com 就會立即解析。
  • 只有在要讓應用程式使用裸網域時,才將 example.com 設為 A 記錄。

萬用字元記錄的優先順序低於明確記錄,因此現有的 www.example.com 若指向其他位置,仍會繼續運作。

設定期間,您可以選擇 Cloudron 後續處理 DNS 的方式:

  • API provider。Cloudron 會儲存 Cloudflare、DigitalOcean、Route53、Hetzner、Porkbun、Linode、deSEC、Gandi、Namecheap 及約其他二十個服務商的 token,然後自行建立所有記錄,包括郵件記錄。
  • Wildcard。您手動新增 * 記錄,Cloudron 不會寫入任何記錄。
  • Manual。Cloudron 會顯示每筆記錄,並在每次安裝應用程式前等待您手動新增。

萬用字元 DNS 記錄不是萬用字元憑證。 預設的憑證提供者是 Let's Encrypt Prod - Wildcard,會透過 DNS 驗證網域所有權,因此只能搭配 API provider 使用。在 Wildcard 或 Manual 後端上,系統會改用每個應用程式各自的憑證,並透過 HTTP 驗證,這表示輸入連接埠 80 必須永久保持開放。如果您的網域註冊商或 DNS 主機位於 API 清單中,請使用該服務:郵件記錄和憑證都不必再由您管理。

繼續之前先驗證設定。dig +short my.example.comdig +short anything.example.com 都應該輸出伺服器的 IP 位址。如果萬用字元查詢沒有輸出結果,之後應用程式會失敗,但儀表板仍可正常運作。

如果網域位於 Cloudflare 後方,請將記錄設為 DNS only。代理只會轉送 HTTP 和 HTTPS,因此郵件連接埠會失效,而且每個應用程式看到的會是 Cloudflare 位址,而不是訪客的位址。

執行設定指令碼

wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
sudo ./cloudron-setup

請以 root 身分執行,或透過 sudo 執行,否則它一開始只會輸出 This script should be run as root.。安裝需要數分鐘,執行期間不會顯示太多訊息,因為 apt 輸出與 Docker 映像檔下載內容都會寫入日誌檔案。請從第二個 SSH 工作階段監看:

tail -f /var/log/cloudron-setup.log

最後,它會輸出 After reboot, visit one of the following URLs and accept the self-signed certificate to finish setup.,後面接著伺服器的位址,然後詢問 The server has to be rebooted to apply all the settings. Reboot now ? [Y/n]。請回答 yes。如果需要排程重新啟動,可以使用 --skip-reboot 旗標,但伺服器重新啟動完成前,Cloudron 無法使用。

首次啟動:網域、DNS 後端與管理員帳戶

開啟 https://<server-ip>,並接受瀏覽器警告。憑證是自我簽署的,因為 Cloudron 尚未知道您的網域,因此無法向憑證授權單位申請憑證。在 Chrome 中按一下 Advanced,再按一下 Proceed to <ip> (unsafe)。在 Firefox 中按一下 Advanced,再按一下 Accept the Risk and Continue

第一個畫面會要求您輸入網域。輸入 example.com,儀表板會固定在 my.example.com。您也可以改用 cloudron.example.com 這類子網域,之後從 my.cloudron.example.com 開啟儀表板。選擇 DNS 後端;如果有 API token,請貼上該 token,然後使用您確實會讀取的電子郵件地址建立管理員帳戶:Let's Encrypt 註冊及平台的所有警示都會使用這個地址。

儲存後,Cloudron 會申請憑證,並將儀表板移至 https://my.example.com。此時以 IP 位址開啟的 URL 將停止運作,請將新的 URL 加入書籤。

憑證:會更新什麼,以及何時停止

憑證更新會自動進行,並遵循 ACME Renewal Information (ARI),也就是憑證授權單位發布的排程。實務上,系統通常會在到期前約 1 個月更新憑證。更新失敗時,系統會寄送電子郵件至管理員帳戶;憑證到期後,則會改用內建的自簽憑證。網站昨天還能正常運作,今天卻出現瀏覽器警告,通常就是因為使用了這個備援憑證。

大多數問題都可歸因於以下 2 個原因。HTTP 驗證需要輸入流量能連線至 80 埠。因此,若因為「反正所有流量都是 HTTPS」而關閉 80 埠,使用 Wildcard 或 Manual DNS 後端的所有應用程式都會無法更新憑證。DNS 驗證需要仍具備寫入權限的 API token。因此,輪替或縮減 token 權限可能會讓憑證更新無聲失敗,直到警告電子郵件送達。

Domains 檢視畫面有一個 Renew All 按鈕,可立即強制執行更新嘗試;另有 Let's Encrypt Staging provider 可供測試。Staging 憑證刻意不受瀏覽器信任,這正是其用途:您可以不限次數重試,不會消耗 production rate limit。

是否應使用內建郵件伺服器?

Cloudron 會提供完整的郵件堆疊,包含 IMAP 信箱、submission、Sieve 篩選器和 DKIM(domainkeys identified mail)簽章。您可以在 dashboard 的 Email 中,依網域個別啟用。郵件是否能成功投遞才是難點,而且這些困難都不是 Cloudron 造成的。

  • 多數 VPS 供應商會封鎖對外連線的 25 埠,以控制垃圾郵件。有些供應商會在提交支援工單後解除封鎖。請在伺服器上使用 nc -zv aspmx.l.google.com 25 進行測試(若找不到此命令,請安裝 netcat-openbsd)。開放的埠會回報 succeeded;遭封鎖的埠則會持續等待,直到逾時。
  • PTR 紀錄(反向 DNS)由 VPS 供應商設定,不是由 DNS 代管商設定,而且必須與郵件主機名稱相符。使用 generic PTR 的地址寄出的郵件,會進入垃圾郵件資料夾。
  • 如果使用 API DNS backend,SPF、DKIM 和 DMARC 紀錄會自動為您建立。在 Wildcard 或 Manual backend 上,您必須手動新增這些紀錄;缺少 DKIM 紀錄時,您簽署的每封郵件都無法驗證。

對多數人而言,可行的設定方式是在 Cloudron 上接收郵件,再透過 SendGrid、Postmark、Mailgun 或 Amazon SES 等 relay 寄送,並在 Email 檢視畫面中設定。relay 必須允許使用您網域上的任何地址寄送,否則來自不同寄件者的應用程式通知會遭拒收。如果郵件是您購買伺服器的主要原因,請在獨立主機上執行 專用郵件伺服器,例如 Mailcow,並使用該主機自己的 IP reputation。

如果您完全不使用 Cloudron Email,請在供應商的防火牆中封鎖 25、465、587、993 和 4190 埠。請在供應商端執行,不要在伺服器上執行,因為 Cloudron 會自行寫入 iptables 規則,並預期由它管理這些規則。這與一般 VPS 相反;在一般 VPS 上,您必須自行管理 ufw 規則

需要時才設定備份目標

備份預設儲存在 /var/backups 的本機檔案系統,與其他資料位於同一顆磁碟。文件明確指出:「備份與平台伺服器位於同一顆實體磁碟上是危險的。」磁碟故障一次就可能同時遺失應用程式與備份。

開啟 Backups,接著選取 Backup Sites,並在第一天就將備份指向其他位置。S3-compatible object storage 通常是首選,例如 Backblaze B2、Wasabi、Cloudflare R2、DigitalOcean Spaces,或第二台伺服器上的 MinIO bucket。此外也支援 SSHFS、NFS、CIFS 及一般檔案系統目標。

以下 3 項設定會決定備份是否真正有用:

  • 格式。tgz 會為每個應用程式寫入一個壓縮封存檔,並在每次執行時重新上傳完整檔案。rsync 只會上傳變更的檔案。對大型 Nextcloud 而言,後者成本低得多,但會對儲存 API 發出更多請求。
  • 加密。可選用 AES-256,同時加密檔案內容與檔名。Cloudron 不會保留密碼副本,因此一旦遺失密碼,任何人都無法解密備份,包括你自己。按下儲存前,請先將密碼存放在自行託管的密碼管理器中。
  • 保留期限。以數量表示,例如每日 7 份、每週 4 份。在 object storage 上保留資料越久,每月費用越高,因此請選擇你願意持續支付費用的數量。

接著測試還原。安裝一個小型應用程式,從儀表板還原它,並確認應用程式及其資料能夠恢復。從未還原過的備份,只能算是一種猜測。

免費方案的限制

截至 August 2026,免費方案最多可安裝 2 個應用程式。其他功能都包含在內:應用程式更新、各應用程式的備份、防火牆、郵件伺服器及單一登入。需要授權的分界點是第 3 個應用程式。付費方案會提高應用程式數量上限;較高階的方案則會另外提供使用者群組與角色、目錄伺服器及多個備份站點。價格會變動,因此請查看 Cloudron 定價頁面,不要依據教學中的固定數字。

1 個授權只能涵蓋 1 個 Cloudron 安裝,因此 2 台小型伺服器的成本會是 1 台較大型伺服器的 2 倍。這種定價會讓多數人選擇 1 台較大型的 VPS,與通常建議將服務分散到多台機器的做法相反。規劃伺服器規模時,應將這點納入考量,因為之後拆分服務代表需要支付 2 次費用。

發生問題時

先執行內建檢查。它會依序檢查 DNS、憑證、磁碟、記憶體及各項服務,並指出失敗的測試:

sudo cloudron-support --troubleshoot

接著使用一般的 systemd(system and service manager)工具。systemctl status box會回報 Cloudron 服務本身的狀態,journalctl -u box -n 100會顯示近期日誌,journalctl -u docker則會檢查底層的容器執行環境。安裝期間發生的問題會保留在 /var/log/cloudron-setup.log

儀表板無法載入時,通常是 DNS 或供應商防火牆的問題,而不是 Cloudron 本身。從筆記型電腦執行 dig +short my.example.com,並確認供應商網路防火牆已開放 80 和 443 埠。這是與伺服器本身規則分開的控制項。若要重新開始,該指令碼會以 Error: Cloudron is already installed. To reinstall, start afresh 拒絕再次執行;重建伺服器才是乾淨的處理方式。

Cloudron 不適合的情況

如果您想管理應用程式,而不是基礎架構,Cloudron 就很適合。若您想依自己的方式執行容器,Cloudron 就不太適合,因為它會管理 nginx、Docker 和防火牆,並覆寫您在其中的設定。如果您的規劃是使用一組 compose 檔案,在自有 Docker Compose stack 前方配置 Traefik,即可在沒有上層平台的情況下,提供相同的自動 TLS 與子網域路由功能。如果您尚未決定,比較 Cloudron、CasaOS 與 Coolify會將它們並列比較,而較完整的自架服務清單比安裝指南更適合作為起點。

FAQ

Cloudron 在 VPS 上需要多少 RAM?

安裝指令碼在 RAM 少於 941 MB 時會拒絕執行,而文件要求 2 GB;但這只是平台尚未安裝任何應用程式時的最低需求。Cloudron 從首次開機起就會執行 Docker、nginx、自有的 box 服務、資料庫容器與郵件堆疊。若執行兩個應用程式,請配置 4 GB;若約執行十個,請配置 16 GB。另外請建立 swap 檔案,因為 Cloudron 會讓應用程式使用不限額的 swap;沒有 swap 的主機在記憶體壓力升高時,可能導致服務重新啟動。

可以在 Debian 或已經執行 Docker 的伺服器上安裝 Cloudron 嗎?

兩者都不行。指令碼會檢查發行版本,並以 Cloudron requires Ubuntu 20.04, 22.04, 24.04 停止,因此 Debian、Rocky 和 Alpine 都不支援。如果 nginxdockernode 已存在,指令碼也會停止,因為 Cloudron 會安裝這些元件的固定版本,並自行寫入 nginx 設定與 iptables 規則。請從 KVM VPS 的全新 Ubuntu 映像檔開始。

為什麼應用程式子網域無法使用,但儀表板可以?

缺少萬用字元 DNS 記錄。設定程序會建立或要求 my.example.com 的 A 記錄,因此儀表板可以解析;但 wiki.example.com 會回傳 NXDOMAIN,瀏覽器則顯示找不到網站。請新增指向伺服器 IP 的 *.example.com A 記錄,然後在安裝應用程式前使用 dig +short wiki.example.com 確認。

一定要使用 Cloudron 郵件伺服器嗎?

不必。你可以停用收信功能,改用 Postmark、Mailgun 或 Amazon SES 等外部 relay 寄信。當供應商封鎖對外 port 25,或 IP 位址沒有郵件信譽時,這是較安全的選擇。如果完全略過 Cloudron Email,請在供應商防火牆中關閉 port 25、465、587、993 和 4190,而不要只在伺服器上關閉。

免費方案達到兩個應用程式的上限後會怎樣?

儀表板會封鎖第三個安裝操作,並要求輸入 licence key。已在執行的應用程式不受影響:仍會更新、仍會備份,也會繼續使用現有憑證。加入 licence 後即可解除上限,不需要重新安裝任何項目。因此,免費方案適合先在實際網域上測試平台。