Coolify - 一個開源的自托管 Heroku / Netlify 替代方案
Coolify 是一種可自我托管的綜合解決方案,只需單擊幾下即可托管你的應用、數據庫或其他開源服務。它是 Heroku 和 Netlify 的一個替代方案。
通過 Coolify 可以部署很多應用、數據庫、服務等。
- 部署 Static、NodeJS、Svelte、React、Vue、Next、Nuxt、Astro、PHP、Rust 等,可以使用自動反向代理和免費 SSL 證書輕松部署應用程序!
- 一鍵安裝 MongoDB、MySQL、PostgreSQL、CouchDB、RedisDB 實例即可在本地或互聯網上使用!
- 需要自己的 WordPress、Ghost Plausible Analytics、NocoDB、BitWarden/VaultWarden、LanguageTool、N8n、VSCode Server 等服務?沒問題,只需點擊一下!
- 無論你托管什么服務,都可以將其部署在任何地方,本地 Docker 引擎、遠程 Docker 引擎 (WIP) 或 Kubernetes (WIP)。
安裝
要安裝 Coolify,需要滿足以下資源的最低要求,Coolify 在本地為應用程序構建鏡像,這是一個 CPU 密集型的動作,所以需要更多的 CPU 資源。
- 2CPU
- 2GB 內存
- 30+GB 的鏡像存儲空間
其他資源取決于應用的要求,例如,WordPress 與 Redis 數據庫需要不同的 CPU/內存。另外目前,只支持 Ubuntu 服務器。
要安裝 Coolify 最簡單的方式就是直接執行下面的命令即可一鍵安裝:
wget -q https://get.coollabs.io/coolify/install.sh -O install.sh; sudo bash ./install.sh -f
如果想手動安裝則需要首先在你的服務器上安裝 Docker Engine v20.10+ 版本,然后需要在 .env 文件中定義需要的一些環境變量。Coolify 需要提前設置以下環境變量。(使用自動安裝腳本會自動完成的。)
COOLIFY_APP_ID= # 一個隨機的 UUID,用于區分已安裝的實例。
COOLIFY_SECRET_KEY= # 用于加密各種私人數據,長度必須為 32 個字符。
COOLIFY_DATABASE_URL=file:../db/prod.db # SQLite 數據庫 URL,必須在 ../db 下。
COOLIFY_SENTRY_DSN=https://9e7a74326f29422584d2d0bebdc8b7d3@o1082494.ingest.sentry.io/6091062 # Sentry 錯誤報告的 DSN 地址,不是強制性的。
COOLIFY_IS_ON=docker # Coolify 部署的位置,目前,僅支持 docker。
COOLIFY_WHITE_LABELED=false # 會刪除 Coolify 實例的“商標”。
COOLIFY_WHITE_LABELED_ICON= # 登錄/注冊頁面上要替換的圖標。
COOLIFY_AUTO_UPDATE=false # 它會在后臺自動更新你的 Coolify 實例。
配置完成后可以使用 Docker 進行一鍵啟動:
docker run -tid --env-file .env -v /var/run/docker.sock:/var/run/docker.sock -v coolify-db-sqlite coollabsio/coolify:latest /bin/sh -c "env | grep COOLIFY > .env && docker compose up -d --force-recreate"
使用
安裝后,第一個注冊用戶是 Coolify 實例的 root/admin 用戶,它將可以查看/更改所有部署的資源、訪問系統范圍的配置、一鍵更新過程等。其他用戶都不會訪問系統范圍的配置,只能看到他們團隊的資源。
此外每個注冊用戶都會自動擁有自己的團隊,每個團隊只能訪問自己的資源。你可以注冊任意數量的團隊并邀請任意數量的用戶加入。
然后 Git Sources 定義了可以在哪里獲取/拉取你的應用代碼。這些來源可以用于:
- 在你的 Git 提供商處創建應用(例如 GitHub App、GitLab App)。
- 提供通過令牌/ssh 密鑰訪問你的倉庫。
- 克隆你的應用代碼。
- 為自動部署設置 webhook,等等。
無論你托管什么服務,都可以將其部署在任何地方,本地 Docker 引擎、遠程 Docker 引擎或 Kubernetes。
要想創建應用就需要先去管理 Git Source,如果要創建一個數據庫實例,可以直接選擇想要部署的數據庫類型:
然后要配置一個部署的目的地,比如本地 Docker:
然后根據自己的需求配置數據庫:
配置完過后點擊右上角的 Start Database 即可,如果想要通過公網進行訪問,記得勾選 Set it public,然后我們就可以通過上面的數據庫地址去訪問這個服務了。
最后要創建 Service 也是一樣的操作,直接點擊添加按鈕,選擇需要的服務,然后進行配置啟動即可:
比如我這里部署一個 Uptime Kuma 的應用,只需要點擊下這個應用,即可:
這個服務啟動后我們就可以通過 http://cl3mj6djx00003g6amc3izaze.demo.coolify.io 進行訪問了:
關于 Coolify 的更多使用可以參考官方網站 https://coolify.io/ 了解更多信息。
Git 倉庫:https://github.com/coollabsio/coolify。