119
правок
Maks1mS (обсуждение | вклад) Нет описания правки |
Maks1mS (обсуждение | вклад) Нет описания правки |
||
Строка 23: | Строка 23: | ||
==== Продвинутая установка ==== | ==== Продвинутая установка ==== | ||
Caddy поставляется как единый бинарный файл со статической линковкой. Поэтому, для того чтобы добавить дополнительные модули (плагины), необходимо выполнять повторную сборку Caddy. | |||
Для сборки необходим Go версии 1.19 или новее. Установим его: | |||
$ su - | $ su - | ||
# apt-get update && apt-get install go | # apt-get update && apt-get install go | ||
# exit | # exit | ||
Для удобной сборки, когда требуется добавить какие-то плагины, можно воспользоваться утилитой [https://caddyserver.com/docs/build#xcaddy xcaddy]. Установить xcaddy можно данной командой: | |||
$ GOBIN=$HOME/bin go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest | $ GOBIN=$HOME/bin go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest | ||
$ xcaddy build --with github.com/abiosoft/caddy-yaml | Сборка происходит с помощью команды <code>xcaddy build</code>, а плагины перечисляются с помощью | ||
$ xcaddy build \ | |||
--with github.com/caddyserver/nginx-adapter \ | |||
--with github.com/abiosoft/caddy-yaml | |||
После этого, в текущей директории появится бинарный файл <code>caddy</code>. | |||
$ ./caddy version | |||
v2.6.4 h1:2hwYqiRwk1tf3VruhMpLcYTg+11fCdr8S3jhNAdnPy8= | |||
Далее сделаем такой трюк: установим пакет caddy, удалим его из базы rpm и заменим исполняемый файл <code>/usr/bin/caddy</code> на собранный только что. Эта процедура позволит воспользоваться преимуществами конфигурации по умолчанию, служебными файлами systemd и bash-комплектацией из официального пакета. | |||
$ su - | |||
# apt-get install caddy | |||
# rpm -e --justdb caddy | |||
# chmod --reference /usr/bin/caddy /home/sysadmin/caddy | |||
# chown --reference=/usr/bin/caddy /home/sysadmin/caddy | |||
# rm /usr/bin/caddy && cp /home/sysadmin/caddy /usr/bin/ | |||
Проверим работоспособность | |||
$ caddy list-modules | grep yaml | |||
caddy.adapters.yaml | |||
Чтобы случайно не установить заново пакет caddy и не заменить собранный нами файл, можно выполнить данную команду: | |||
# cat <<EOF | tee /etc/apt/preferences.d/forbid-caddy | |||
Package: caddy | |||
Pin: origin "" | |||
Pin-Priority: 1001 | |||
EOF | |||
После этого, пакет caddy не будет устанавливаться, т.к. "пустой" источник будет более приоритетным: | |||
# apt-get install caddy | |||
Чтение списков пакетов... Завершено | |||
Построение дерева зависимостей... Завершено | |||
Пакет caddy присутствует в базе данных, но не имеет доступной версии. | |||
Как правило это означает, что хотя пакет упоминается в списке зависимостей, | |||
он отсутствует в репозитории, был вытеснен, либо в sources.list нет адреса | |||
репози�E: Для пакета caddy не найдено подходящего кандидата для установки | |||
=== Управление службой === | === Управление службой === |