Spec-Zone.ru › Caddy

Командная строка

Caddy имеет стандартный интерфейс командной строки, похожий на Unix. Основное использование:

caddy <command> [<args...>]

Значения <carets> заменяются вашим вводом.

Значения [brackets] — необязательные параметры. Значения (brackets) — обязательные параметры.

Многоточие ... указывает на продолжение, то есть на один или несколько параметров.

У --flags может быть однобуквенное сокращение, например, -f.

Быстрый старт: caddy, caddy help или man caddy (если установлено)


  • caddy adapt Преобразует документ конфигурации в собственный формат JSON

  • caddy build-info Выводит информацию о сборке

  • caddy completion Создает скрипт завершения оболочки

  • caddy environ Выводит окружение

  • caddy file-server Простой, но готовый к использованию в продакшене сервер файлов

  • caddy file-server export-template Вспомогательная команда для сервера файлов для экспорта шаблона стандартного файлового обозревателя

  • caddy fmt Форматирует Caddyfile

  • caddy hash-password Хэширует пароль и выводит результат в формате base64

  • caddy help Отображает справку по командам caddy

  • caddy list-modules Выводит список установленных модулей Caddy

  • caddy manpage Создаёт страницы руководства

  • caddy reload Изменяет конфигурацию работающего процесса Caddy

  • caddy respond Быстрый и чистый HTTP-сервер с жёстко заданными настройками для разработки и тестирования

  • caddy reverse-proxy Простой, но готовый к использованию в продакшене HTTP(S) обратный прокси-сервер

  • caddy run Запускает процесс Caddy в фоновом режиме

  • caddy start Запускает процесс Caddy в фоновом режиме

  • caddy stop Останавливает работающий процесс Caddy

  • caddy storage export Экспортирует содержимое настроенного хранилища в архив tar

  • caddy storage import Импортирует ранее экспортированный архив tar в настроенное хранилище

  • caddy trust Устанавливает сертификат в локальный хранилище(а) доверия

  • caddy untrust Удаляет сертификат из локального хранилища доверия

  • caddy upgrade Обновляет Caddy до последней версии

  • caddy add-package Обновляет Caddy до последней версии с добавлением дополнительных плагинов

  • caddy remove-package Обновляет Caddy до последней версии, удаляя некоторые плагины

  • caddy validate Проверяет, является ли файл конфигурации допустимым

  • caddy version Выводит версию

  • Сигналы Как Caddy обрабатывает сигналы

  • Коды завершения Возвращаются при завершении процесса Caddy

Подкоманды

caddy adapt

caddy adapt
	[-c, --config <path>]
	[-a, --adapter <name>]
	[-p, --pretty]
	[--validate]

Преобразует конфигурацию в собственную структуру конфигурации Caddy в формате JSON и выводит результат в стандартный вывод, а любые предупреждения — в стандартный ошибочный вывод, после чего завершает работу.

--config — путь к файлу конфигурации. Если опущено, предполагается файл Caddyfile в текущем каталоге, если он существует; в противном случае этот флаг является обязательным.

--adapter задаёт адаптер конфигурации; по умолчанию используется caddyfile.

--pretty отформатирует вывод с отступами для удобства чтения человеком.

--validate загрузит и подготовит адаптированную конфигурацию для проверки её корректности (но фактически не запустит конфигурацию).

Обратите внимание, что успешно адаптированная конфигурация может всё ещё не пройти проверку на корректность. Для примера используйте этот Caddyfile:

localhosttls cert_notexist.pem key_notexist.pem

Попробуйте адаптировать его:

caddy adapt --config Caddyfile

Это выполняется без ошибок. Затем попробуйте:

caddy adapt --config Caddyfile --validate
adapt: validation: loading app modules: module name 'tls': provision tls: loading certificates: open cert_notexist.pem: no such file or directory

Несмотря на то, что этот Caddyfile можно адаптировать в JSON без ошибок, фактические файлы сертификата и/или ключа отсутствуют, поэтому проверка на корректность завершается ошибкой, так как эта ошибка возникает на стадии подготовки. Таким образом, проверка на корректность является более строгим контролем ошибок, чем адаптация.

Пример

Чтобы адаптировать Caddyfile в JSON, который можно легко читать и изменять вручную:

caddy adapt --config /path/to/Caddyfile --pretty

caddy build-info

caddy build-info

Выводит информацию от Go о сборке (путь к основному модулю, версии пакетов, замены модулей).

caddy completion

caddy completion [bash|zsh|fish|powershell]

Создает скрипты завершения оболочки. Это позволяет вам получить автодополнение (или подобную функцию, в зависимости от вашей оболочки) при вводе команд caddy.

Для получения инструкций по установке этого скрипта в вашей оболочке выполните caddy help completion или caddy completion -h.

caddy environ

caddy environ

Выводит окружение, которое видит caddy, а затем завершается. Это может быть полезно при отладке систем инициализации или систем управления процессами, таких как systemd.

caddy file-server

caddy file-server
	[-r, --root <path>]
	[--listen <addr>]
	[-d, --domain <example.com>]
	[-b, --browse]
	[--reveal-symlinks]
	[-t, --templates]
	[--access-log]
	[-v, --debug]
	[--no-compress]
	[-p, --precompressed]

Запускает простой, но готовый к использованию в продакшене сервер статических файлов.

--root задаёт корневой путь к файлам. По умолчанию используется текущий рабочий каталог.

--listen принимает адрес слушателя. По умолчанию используется :80, если не используется --domain, то :443 будет значением по умолчанию.

--domain будет обслуживать файлы только через указанный хост, и Caddy попытается обслуживать его через HTTPS, поэтому убедитесь, что общедоступный DNS настроен правильно, если это общедоступное доменное имя. Порт по умолчанию будет изменён на 443.

--browse включит списки каталогов, если запрос адресован каталогу без файла индекса.

--reveal-symlinks покажет целевой объект символических ссылок в списках каталогов, когда --browse включено.

--templates включит рендеринг шаблонов.

--access-log включает запрос/лог доступа.

--debug включает подробное ведение журнала.

--no-compress отключает сжатие. По умолчанию включены сжатие Zstandard и Gzip.

--precompressed указывает форматы кодирования для поиска предварительно сжатых файлов sidecar. Можно указывать несколько форматов. Подробнее см. директиву file_server.

Эта команда отключает API администрирования, что упрощает запуск нескольких экземпляров на локальной машине разработки.

caddy file-server export-template

caddy file-server export-template

Экспортирует стандартный шаблон просмотра файлов в стандартный вывод.

caddy fmt

caddy fmt [<path>]
	[-w, --overwrite]
	[-d, --diff]

Форматирует или улучшает удобочитаемость Caddyfile, а затем завершает работу. Результат печатается в стандартный вывод, если не используется --overwrite и завершит работу с кодом 1 если есть отличия.

<path> указывает путь к Caddyfile. Если -, входной поток считывается со стандартного ввода. Если опущено, предполагается файл с именем Caddyfile в текущем каталоге.

--overwrite приводит к тому, что результат записывается в входной файл вместо вывода на терминал. Если входной файл не является обычным файлом, этот флаг не имеет эффекта.

--diff приводит к сравнению выходных данных с входными, а строки будут префиксны - и +, где они различаются. Обратите внимание, что неизменённые строки предваряются двумя пробелами для выравнивания, и это не действительный формат патчей; это просто средство визуального отображения.

caddy hash-password

caddy hash-password
	[-p, --plaintext <password>]
	[-a, --algorithm <name>]

Удобный способ хэширования пароля в текстовом виде. Результирующий хэш записывается в стандартный вывод в формате, который можно напрямую использовать в вашей конфигурации Caddy.

--plaintext — текстовая форма пароля. Если опущено, предполагается интерактивный режим, и пользователю будет показано сообщение для ввода пароля вручную.

--algorithm может быть bcrypt или любым установленным алгоритмом хэширования. По умолчанию используется bcrypt.

caddy help

caddy help [<command>]

Выводит текст справки CLI, необязательно для конкретной подкоманды, а затем завершает работу.

caddy list-modules

caddy list-modules
	[--packages]
	[--versions]
	[-s, --skip-standard]

Выводит список установленных модулей Caddy, необязательно с информацией о пакетах и/или версиях из связанных модулей Go, а затем завершает работу.

В некоторых скриптовых ситуациях может быть избыточно выводить все стандартные модули, поэтому можно использовать --skip-standard, чтобы исключить их из вывода.

ПРИМЕЧАНИЕ: Из-за ошибки в Go, информация о версии доступна только если Caddy скомпилирован как зависимость, а не как основной модуль. Используйте xcaddy, чтобы это упростить.

caddy manpage

caddy manpage
	(-o, --directory <path>)

Создаёт страницы руководства/документации для команд Caddy и записывает их в каталог по указанному пути. Вывод этой команды можно прочитать с помощью команды man.

--directory (обязательно) — путь к каталогу, в который необходимо записать страницы руководства. Он будет создан, если не существует.

После создания страницы руководства обычно необходимо установить их. Эта процедура варьируется в зависимости от платформы, но на типичных системах Linux это примерно так:

$ caddy manpage --directory man
$ gzip -r man/
$ sudo cp man/* /usr/share/man/man8/
$ sudo mandb

Затем можно запустить man caddy (или man caddy-* для подкоманд), чтобы просмотреть документацию в вашем терминале.

Страницы руководства — это отдельная документация от той, что есть на нашем сайте. На нашем сайте есть более подробная документация, которая часто обновляется.

caddy reload

caddy reload
	[-c, --config <path>]
	[-a, --adapter <name>]
	[--address <interface>]
	[-f, --force]

Предоставляет экземпляру Caddy новую конфигурацию. Это эквивалентно отправке документа POST на /load конечную точку, но эта команда удобна для простых рабочих процессов, связанных с файлами конфигурации. По сравнению с командами stop, start и run, эта единственная команда является правильным и семантически корректным способом изменения/перезагрузки активной конфигурации.

Поскольку эта команда использует API, конечная точка администрирования не должна быть отключена.

--config — это файл конфигурации для применения. Если -, конфигурация читается из стандартного ввода. Если не указано, будет предпринята попытка использования файла под названием Caddyfile в текущей рабочей директории, и, если он существует, он будет адаптирован с помощью адаптера конфигурации caddyfile; в противном случае, если файл конфигурации для загрузки отсутствует, это будет ошибка.

--adapter определяет адаптер конфигурации для использования, если он необходим. Этот флаг не нужен, если имя файла --config начинается с Caddyfile или заканчивается на .caddyfile, что предполагает использование адаптера caddyfile. В противном случае, этот флаг необходим, если предоставленный файл конфигурации не находится в родном формате JSON Caddy.

--address необходимо использовать, если конечная точка администрирования не прослушивает по умолчанию и если она отличается от адреса в предоставленном файле конфигурации. Обратите внимание, что в настоящее время поддерживаются только адреса TCP.

--force заставит произойти перезагрузку, даже если указанная конфигурация совпадает с той, что уже запущена в Caddy. Может быть полезно принудительно перепровизировать модули Caddy, что может иметь побочные эффекты, например, при ручном перезагружении загруженных TLS-сертификатов.

caddy respond

caddy respond
	[-s, --status <code>]
	[-H, --header "<Field>: <value>"]
	[-b, --body <content>]
	[-l, --listen <addr>]
	[-v, --debug]
	[--access-log]
	[<status|body>]

Запускает один или несколько простых, жёстко закодированных HTTP-серверов, полезных для разработки, тестирования и некоторых производственных случаев. Может быть полезно для проверки или отладки HTTP-клиентов, скриптов или даже балансировщиков нагрузки.

--status — это код HTTP-статуса, который нужно вернуть.

--header добавляет HTTP-заголовок; ожидается формат Field: value. Этот флаг можно использовать несколько раз.

--body указывает тело ответа. В качестве альтернативы тело может быть прочитано из стандартного ввода.

--listen — это адрес слушателя, который может быть любым сетевым адресом, распознаваемым Caddy, и может включать диапазон портов для запуска нескольких серверов.

--debug включает подробную отладку в логах.

--access-log включает ведение логов доступа/запросов.

При отсутствии опций эта команда прослушивает случайный доступный порт и отвечает на HTTP-запросы пустым ответом 200. Адрес прослушивания можно настроить с помощью флага --listen, и он всегда будет выводиться в стандартный вывод. Если адрес прослушивания включает диапазон портов, будут запущены несколько серверов.

Если в конце задан аргумент без имени, он будет интерпретироваться как код состояния (аналогично флагу --status), если это трехзначное число. В противном случае он используется как тело ответа (аналогично флагу --body). Флаги --status и --body всегда переопределят этот аргумент.

Тело может быть предоставлено тремя способами: флаг, заключительный (и безымянный) аргумент команды или через стандартный ввод (если флаг и аргумент не заданы). Ограниченная поддержка обработки шаблонов поддерживается для тела с использованием следующих переменных:

Переменная Описание
.N Номер сервера
.Port Порт слушателя
.Address Адрес слушателя

Примеры

Пустой ответ 200 на случайном порту:

caddy respond

HTTP-ответ с телом:

caddy respond "Hello, world!"

Несколько серверов и шаблоны:

$ caddy respond --listen :2000-2004 "I'm server {{.N}} on port {{.Port}}"

Server address: [::]:2000
Server address: [::]:2001
Server address: [::]:2002
Server address: [::]:2003
Server address: [::]:2004

$ curl 127.0.0.1:2002
I'm server 2 on port 2002

Передача страницы технического обслуживания через стандартный ввод:

cat maintenance.html | caddy respond \
	--listen :80 \
	--status 503 \
	--header "Content-Type: text/html"

caddy reverse-proxy

caddy reverse-proxy
	[-f, --from <addr>]
	(-t, --to <addr>)
	[-H, --header-up "<Field>: <value>"]
	[-d, --header-down "<Field>: <value>"]
	[-c, --change-host-header]
	[-r, --disable-redirects]
	[-i, --internal-certs]
	[-v, --debug]
	[--access-log]
	[--insecure]

Простой, но готовый к использованию в продакшене обратный прокси-сервер. Полезен для быстрой развертывания, демонстрации и разработки.

Просто пересылает HTTP(S) трафик с адреса --from на адрес --to. Несколько адресов --to могут быть указаны путём повторения флага. Требуется хотя бы один адрес --to. Адрес --to может иметь диапазон портов как способ сокращённого указания нескольких upstream.

Если в адресах не указано иное, предполагается, что адрес --from будет HTTPS, если задано имя хоста, и адрес --to будет HTTP.

Если адрес --from имеет имя хоста или IP, Caddy попытается обслуживать прокси через HTTPS с сертификатом (если схема или порт HTTP не переопределены).

Если используется HTTPS:

  • --disable-redirects может быть использован для избежания привязки к порту HTTP.

  • --internal-certs может быть использован для принудительного выдачи сертификатов с помощью внутренней CA вместо попытки выдачи публичного сертификата.

Для проксирования:

  • --header-up может быть использован для задания заголовка запроса для отправки upstream.

  • --header-down может быть использован для задания заголовка ответа для отправки клиенту.

  • --change-host-header задаёт заголовок Host в запросе на адрес upstream вместо использования заголовка Host из входящего запроса.

    Это сокращение для --header-up "Host: {http.reverse_proxy.upstream.hostport}"

  • --insecure отключает проверку TLS с upstream. ВНИМАНИЕ: ЭТО ОТКЛЮЧАЕТ БЕЗОПАСНОСТЬ, НЕ ПРОВЕРЯЯ СЕРТИФИКАТ UPSTREAM.

  • --debug включает подробную регистрацию.

Эта команда отключает API администрирования, что упрощает запуск нескольких экземпляров на локальной машине разработки.

caddy run

caddy run
	[-c, --config <path>]
	[-a, --adapter <name>]
	[--pidfile <file>]
	[-e, --environ]
	[--envfile <file>]
	[-r, --resume]
	[-w, --watch]

Запускает Caddy и блокируется бесконечно; т.е. режим "демон".

--config указывает начальный файл конфигурации, который будет загружен и использован немедленно. Если -, конфигурация читается из стандартного ввода. Если конфигурация не указана, Caddy запустится с пустой конфигурацией и будет использовать настройки по умолчанию для конечных точек API администрирования, которые могут быть использованы для подачи новой конфигурации. В качестве специального случая, если в текущей рабочей директории есть файл под названием "Caddyfile", и адаптер конфигурации caddyfile подключен (по умолчанию), то этот файл будет загружен и использован для настройки Caddy, даже без флагов командной строки.

--adapter — это имя адаптера конфигурации для использования при загрузке начальной конфигурации, если необходимо. Этот флаг не нужен, если имя файла --config начинается с Caddyfile или заканчивается на .caddyfile, что предполагает использование адаптера caddyfile. В противном случае этот флаг необходим, если предоставленный файл конфигурации не находится в родном формате JSON Caddy. Любые предупреждения будут выведены в лог, но будьте внимательны, любая адаптация без ошибок будет немедленно использована, даже если есть предупреждения. Если вы хотите сначала проверить результаты адаптации, используйте подкоманду caddy adapt.

--pidfile записывает PID в указанный файл.

--environ выводит окружение перед запуском. Это то же самое, что и команда caddy environ, но не завершается после вывода.

--envfile загружает переменные окружения из указанного файла в формате KEY=VALUE. Поддерживаются комментарии, начинающиеся с #; ключи могут быть префиксены export; значения могут быть заключены в двойные кавычки (двойные кавычки внутри могут быть экранированы); поддерживаются многострочные значения.

--resume использует последнюю загруженную конфигурацию, которая была автоматически сохранена, переопределяя флаг --config (если он задан). Использование этого флага гарантирует сохранение конфигурации при перезагрузке машины или перезапуске процесса. Это наиболее полезно в развертываниях, ориентированных на API API.

--watch будет отслеживать файл конфигурации и автоматически перезагружать его после изменения. ⚠️ Эта функция предназначена только для использования в локальных средах разработки!

Не останавливайте сервер для изменения конфигурации во время работы в продакшене! Это приведёт к простою. (Это должно быть очевидно, но вы удивитесь, сколько жалоб мы получаем по этому поводу.) Вместо этого используйте команду caddy reload.

caddy start

caddy start
	[-c, --config <path>]
	[-a, --adapter <name>]
	[--envfile <file>]
	[--pidfile <file>]
	[-w, --watch]

То же самое, что и caddy run, но в фоновом режиме. Эта команда блокируется только до момента успешного запуска фонового процесса (или до момента неудачной попытки запуска), затем возвращает результат.

Примечание: флаг --config не поддерживает - для чтения конфигурации из стандартного ввода.

Использование этой команды не рекомендуется с системными сервисами или в Windows. В Windows дочерний процесс останется присоединённым к терминалу, поэтому закрытие окна принудительно остановит Caddy, что не очевидно. Вместо этого рассмотрите запуск Caddy как сервиса.

После запуска вы можете использовать caddy stop или конечную точку API POST /stop для выхода из фонового процесса.

caddy stop

caddy stop
	[--address <interface>]
	[-c, --config <path> [-a, --adapter <name>]]

Остановка (и перезапуск) сервера независимы от изменений конфигурации. Не используйте команду stop для изменения конфигурации в продакшене, если вы не хотите остановить работу. Вместо этого используйте команду caddy reload.

Вежливо останавливает запущенный процесс Caddy (кроме процесса остановки) и вызывает его завершение. Использует конечную точку POST /stop API администрирования для выполнения плавного завершения работы.

Адрес этого запроса можно настроить с помощью флага --address или из указанного значения --config, если API администрирования текущего экземпляра не использует адрес прослушивания по умолчанию.

Если вы хотите остановить текущую конфигурацию, но не хотите завершать процесс, используйте caddy reload с пустой конфигурацией или конечную точку DELETE /config/.

caddy storage

⚠️ Экспериментально

Разрешает экспорт и импорт содержимого конфигурированного хранилища данных Caddy.

Это полезно при переходе от одного модуля хранилища к другому, экспортировав из старого, обновив вашу конфигурацию, а затем импортировав в новый.

Следующая команда может быть использована для копирования хранилища между различными модулями за один раз, используя старую и новую конфигурации, передавая вывод команды экспорта в команду импорта.

$ caddy storage export -c Caddyfile.old -o- |
  caddy storage import -c Caddyfile.new -i-

Обратите внимание, что при использовании хранения на файловой системе, команду экспорта необходимо запускать от того же пользователя, под которым обычно работает Caddy, иначе может быть использован неверный путь к хранилищу.

Например, при запуске Caddy в качестве службы systemd, он будет работать от пользователя caddy, поэтому команды экспорта или импорта следует запускать от этого пользователя. Обычно это делается с помощью sudo -u caddy <command>.

caddy storage export

caddy storage export
	-c, --config <path>
	[-o, --output <path>]

--config — это файл конфигурации для загрузки. Это необходимо для подключения к правильному модулю хранения.

--output — это имя файла для записи архива tar. Если -, вывод записывается в стандартный поток вывода.

caddy storage import

caddy storage import
	-c, --config <path>
	-i, --input <path>

--config — это файл конфигурации для загрузки. Это необходимо для подключения к правильному модулю хранения.

--input — это имя файла архива tar для чтения. Если -, входной поток читается из стандартного потока ввода.

caddy trust

caddy trust
	[--ca <id>]
	[--address <interface>]
	[-c, --config <path> [-a, --adapter <name>]]

Устанавливает корневой сертификат для центра сертификации (CA), управляемого приложением PKI Caddy, в локальные хранилища доверенных сертификатов.

Caddy попытается автоматически установить свои корневые сертификаты в локальные хранилища доверенных сертификатов при их первом создании, но может потерпеть неудачу, если у Caddy недостаточно прав для записи в хранилище доверенных сертификатов. Эта команда необходима для предварительной установки сертификатов перед их использованием, если процесс сервера запускается от непривилегированного пользователя (например, через systemd). Возможно, вам потребуется запустить эту команду с помощью sudo для Unix-систем.

По умолчанию эта команда устанавливает корневой сертификат для стандартного CA Caddy (т.е. "local"). Вы можете указать идентификатор другого CA с помощью флага --ca.

Эта команда попытается подключиться к административному API Caddy для получения корневого сертификата, используя конечную точку GET /pki/ca/<id>/certificates. Вы можете явно указать --address, или использовать флаг --config для загрузки адреса административного API из вашей конфигурации, если административный API запущенного экземпляра не использует адрес прослушивания по умолчанию.

Вы также можете использовать бинарник caddy с этой командой для установки сертификатов на других машинах в вашей сети, если административный API доступен другим машинам — будьте осторожны, не делайте это, если административный API открыт для недоверенных клиентов.

caddy untrust

caddy untrust
	[-p, --cert <path>]
	[--ca <id>]
	[--address <interface>]
	[-c, --config <path> [-a, --adapter <name>]]

Отменяет доверие к корневому сертификату из локального хранилища доверенных сертификатов.

Эта команда отменяет доверие; она не обязательно полностью удаляет корневой сертификат из хранилищ доверенных сертификатов. Таким образом, многократное доверие и отмена доверия к новым сертификатам могут заполнить базы данных доверенных сертификатов.

Эта команда не удаляет и не изменяет файлы сертификатов из конфигурированного хранилища Caddy.

Эта команда может быть использована двумя способами:

  • Указав прямой путь к корневому сертификату для отмены доверия с помощью флага --cert.
  • Получив корневой сертификат из административного API с использованием конечной точки GET /pki/ca/<id>/certificates. Это поведение по умолчанию, если не указаны флаги.

Если используется административный API, идентификатор CA по умолчанию — "local". Вы можете указать идентификатор другого CA с помощью флага --ca. Вы можете явно указать --address, или использовать флаг --config для загрузки адреса административного API из вашей конфигурации, если административный API запущенного экземпляра не использует адрес прослушивания по умолчанию.

caddy upgrade

⚠️ Экспериментальный

caddy upgrade
	[-k, --keep-backup]

Заменяет текущий бинарник Caddy последней версией с нашего страницы загрузки с теми же модулями, включая все сторонние плагины, зарегистрированные на сайте Caddy.

Обновления не прерывают работающие серверы; в настоящее время команда только заменяет бинарник на диске. Это может измениться в будущем, если мы придумаем хороший способ сделать это.

Процесс обновления устойчив к ошибкам; текущий бинарник сначала резервируется (копируется рядом с текущим) и автоматически восстанавливается, если что-то пойдёт не так. Если вы хотите сохранить резервную копию после завершения процесса обновления, вы можете использовать опцию --keep-backup.

Эта команда может потребовать повышенных привилегий, если у вашего пользователя нет разрешения на запись в исполняемый файл.

caddy add-package

⚠️ Экспериментальный

caddy add-package <packages...>
	[-k, --keep-backup]

Аналогично caddy upgrade, заменяет текущий бинарник Caddy последней версией с теми же модулями, плюс пакеты, перечисленные в качестве аргументов, включенные в новый бинарник. Список пакетов, которые можно установить, можно найти на нашей странице загрузки. Каждый аргумент должен быть полным именем пакета.

Например:

caddy add-package github.com/caddy-dns/cloudflare

caddy remove-package

⚠️ Экспериментальный

caddy remove-package <packages...>
	[-k, --keep-backup]

Аналогично caddy upgrade, заменяет текущий бинарник Caddy последней версией с теми же модулями, но без пакетов, указанных в качестве аргументов, если они существовали в текущем бинарнике. Запустите caddy list-modules --packages, чтобы увидеть список имён пакетов нестандартных модулей, включённых в текущий бинарник.

caddy validate

caddy validate
	[-c, --config <path>]
	[-a, --adapter <name>]
	[--envfile <file>]

Проверяет файл конфигурации, затем завершается. Эта команда десериализует конфигурацию, затем загружает и инициализирует все её модули так, как если бы конфигурация должна была быть запущена, но конфигурация фактически не запускается. Это позволяет выявить ошибки в конфигурации, возникающие во время этапов загрузки или инициализации, и является более строгим способом проверки ошибок, чем просто сериализация конфигурации в формате JSON.

--config — это файл конфигурации для проверки. Если -, конфигурация считывается из стандартного потока ввода. По умолчанию используется Caddyfile в текущем каталоге, если таковой имеется.

--adapter — это имя адаптера конфигурации для использования. Этот флаг не нужен, если имя файла --config начинается с Caddyfile или заканчивается на .caddyfile, что предполагает использование адаптера caddyfile. В противном случае этот флаг необходим, если предоставленный файл конфигурации не находится в родном формате JSON Caddy.

--envfile загружает переменные окружения из указанного файла в формате KEY=VALUE. Поддерживаются комментарии, начинающиеся с #; ключи могут быть префиксом export; значения могут быть заключены в двойные кавычки (внутри можно использовать экранирование двойных кавычек); поддерживаются многострочные значения.

caddy version

caddy version

Выводит версию и завершается.

Сигналы

Caddy обрабатывает определённые сигналы и игнорирует другие. Сигналы могут инициировать определённое поведение процесса.

Сигнал Поведение
SIGINT Плавный выход. Отправьте сигнал ещё раз, чтобы принудительно завершить процесс немедленно.
SIGQUIT Немедленно завершает Caddy, но всё же очищает блокировки в хранилище, так как это важно.
SIGTERM Плавный выход.
SIGUSR1 Игнорируется. Для обновлений конфигурации используйте команду caddy reload или API.
SIGUSR2 Игнорируется.
SIGHUP Игнорируется.

Плавный выход означает, что новые подключения больше не принимаются, а существующие подключения будут закрыты до закрытия сокета. Может применяться (и настраивается) период ожидания. После истечения периода ожидания подключения будут принудительно закрыты. Блокировки в хранилище и другие ресурсы, которые отдельные модули должны освободить, очищаются во время плавного завершения работы.

Коды выхода

Caddy возвращает код при завершении процесса:

Код Значение
0 Нормальное завершение.
1 Ошибка запуска. Не пытайтесь автоматически перезапустить процесс; он, вероятно, снова ошибётся, если не внести изменения.
2 Принудительное завершение. Caddy был принудительно завершён без очистки ресурсов.
3 Ошибка завершения. Caddy завершился с некоторыми ошибками во время очистки.

В bash, вы можете получить код выхода последней команды с помощью echo $?.

© 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/command-line

Spec-Zone.ru

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