Spec-Zone.ru › Caddy

Сборка из исходного кода

Существует несколько вариантов сборки Caddy, если вам нужна настраиваемая сборка (например, с плагинами):

  • Git: Сборка из репозитория Git
  • xcaddy: Сборка с использованием xcaddy
  • Docker: Сборка пользовательского образа Docker

Требования:

  • Go 1.20 или более поздней версии

В разделе Файлы поддержки пакетов для настраиваемых сборок для Debian/Ubuntu/Raspbian содержатся инструкции для пользователей, которые установили Caddy с помощью команды APT в системе на базе Debian, но нуждаются в исполняемом файле настраиваемой сборки для своих операций.

Git

Требования:

  • Установлен Go (см. выше)

Клонирование репозитория:

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

Если у вас нет git, вы можете скачать исходный код в виде архива с GitHub. Каждое выпуск также имеет снимки исходного кода.

Сборка:

cd caddy/cmd/caddy/
go build

Из-за ошибки в Go, эти базовые шаги не включают информацию о версии. Если вам нужна версия (caddy version), вам нужно скомпилировать Caddy как зависимость, а не как основной модуль. Инструкции по этому вопросу находятся в файле main.go Caddy. Или вы можете использовать xcaddy, который автоматизирует это.

Программы на Go легко компилируются для других платформ. Просто установите GOOS, GOARCH и/или GOARM переменные среды, которые отличаются. (См. документацию go для получения подробностей.)

Например, для компиляции Caddy для Windows, когда вы не на Windows:

GOOS=windows go build

Или аналогично для Linux ARMv6, когда вы не на Linux или ARMv6:

GOOS=linux GOARCH=arm GOARM=6 go build

xcaddy

Команда xcaddy — это самый простой способ собрать Caddy с информацией о версии и/или плагинами.

Требования:

  • Установлен Go (см. выше)
  • Убедитесь, что xcaddy находится в вашей PATH

Вам не нужно загружать исходный код 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 builderRUN xcaddy build \
    --with github.com/caddyserver/nginx-adapter \
    --with github.com/hairyhenderson/caddy-teapot-module@v0.0.3-0FROM 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-completion из официального пакета.

Требования:

  • Установите пакет 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, затем заменить текущий двоичный файл новым.

© 2015-2025 Matthew Holt and The Caddy Authors
Licensed under the Apache License 2.0.
Caddy is a registered trademark of Stack Holdings GmbH.
https://caddyserver.com/docs/build

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API