文件
一個 專案

從原始碼建置

如果您需要自訂建置(例如,使用外掛程式),則有多種建置 Caddy 的選項

  • Git:從 Git 儲存庫建置
  • xcaddy:使用 xcaddy 建置
  • Docker:建置自訂 Docker 映像檔

需求

  • Go 1.20 或更新版本

套件支援檔案 部分包含針對使用 APT 指令在 Debian 衍生系統上安裝 Caddy,但仍需要自訂建置可執行檔來執行作業的使用者提供說明。

Git

需求

  • 已安裝 Go(請參閱上方)

複製儲存庫

git clone "https://github.com/caddyserver/caddy.git"

如果您沒有 git,您可以從 GitHub 下載原始碼作為檔案封存。

建置

cd caddy/cmd/caddy/
go build

Go 程式很容易編譯成其他平台。只要設定不同的 GOOSGOARCH 和/或 GOARM 環境變數即可。(有關詳細資訊,請參閱 go 文件。

例如,當您不在 Windows 上時,編譯適用於 Windows 的 Caddy

GOOS=windows go build

或者,當您不在 Linux 或 ARMv6 上時,編譯適用於 Linux ARMv6

GOOS=linux GOARCH=arm GOARM=6 go build

xcaddy

xcaddy 命令 是使用版本資訊和/或外掛程式來建置 Caddy 的最簡單方法。

需求

  • 已安裝 Go(請參閱上方)
  • 請確定您的 PATH 中有 xcaddy

不需要下載 Caddy 原始碼(它會為您執行此動作)。

然後,建置 Caddy(含版本資訊)就像這樣簡單

xcaddy build

若要使用外掛程式建置,請使用 --with

xcaddy build \
    --with github.com/caddyserver/nginx-adapter
	--with github.com/caddyserver/ntlm-transport@v0.1.1

如您所見,您可以使用 @ 語法自訂外掛程式的版本。版本可以是標籤名稱、提交 SHA 或分支。

使用 xcaddy 的跨平台編譯與使用 go 命令相同。例如,要跨編譯成 macOS

GOOS=darwin xcaddy build

Docker

您可以使用 :builder 映像作為建置新 Caddy 二進位檔的捷徑,並使用自訂模組

FROM caddy:<version>-builder AS builder

RUN xcaddy build \
    --with github.com/caddyserver/nginx-adapter \
    --with github.com/hairyhenderson/caddy-teapot-module@v0.0.3-0

FROM caddy:<version>

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

請務必將 <version> 替換為 Caddy 的最新版本以開始。

請注意第二個 FROM 指令 — 這會透過將新建置的二進位檔疊加在一般 caddy 映像上,產生一個更小的映像。

建置器使用 xcaddy 使用提供的模組來建置 Caddy,類似於 上面概述 的流程。

若要使用 Docker Compose,請參閱我們建議的 compose.yml 和使用說明。

針對 Debian/Ubuntu/Raspbian 的自訂建置的套件支援檔案

此程序旨在簡化執行自訂 caddy 二進位檔,同時保留 caddy 套件的支援檔案。

此程序允許使用者利用官方套件的預設組態、systemd 服務檔案和 bash 完成。

需求

  • 根據 這些說明 安裝 caddy 套件
  • 建置您的自訂 caddy 二進位檔(請參閱上述各節),或 下載 自訂建置
  • 您的自訂 caddy 二進位檔應位於目前的目錄中

程序

sudo dpkg-divert --divert /usr/bin/caddy.default --rename /usr/bin/caddy
sudo mv ./caddy /usr/bin/caddy.custom
sudo update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.default 10
sudo update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.custom 50
sudo systemctl restart caddy

說明

  • dpkg-divert 會將 /usr/bin/caddy 二進位檔移至 /usr/bin/caddy.default,並在任何套件想要安裝檔案至這個位置時,在其中放置一個轉向。

  • update-alternatives 會從所需的 caddy 二進位檔建立一個符號連結至 /usr/bin/caddy

  • systemctl restart caddy 會關閉 Caddy 伺服器的預設版本,並啟動自訂版本。

執行以下指令,並遵循螢幕上顯示的資訊,即可在自訂和預設的 caddy 二進位檔之間切換。然後,重新啟動 Caddy 服務。

update-alternatives --config caddy

在此之後要升級 Caddy,您可以執行 caddy upgrade。這會嘗試 下載一個與您目前版本相同外掛程式的組建,並使用最新版本的 Caddy,然後用新的二進位檔取代目前的二進位檔。