fix install sh

This commit is contained in:
lendry
2026-06-26 09:02:43 +03:00
parent 838a5ad923
commit a15be4365c

View File

@@ -81,8 +81,8 @@ ${BOLD}Режим локальной сети (без интернета / AD-д
--intranet Локальная сеть: HTTP или самоподписанный HTTPS --intranet Локальная сеть: HTTP или самоподписанный HTTPS
--ssl TYPE none | selfsigned | custom | letsencrypt --ssl TYPE none | selfsigned | custom | letsencrypt
--cert-dir PATH Папка со своими сертификатами (для --ssl custom) --cert-dir PATH Папка со своими сертификатами (для --ssl custom)
--cert-fullchain FILE Файл сертификата в --cert-dir (по умолчанию: fullchain.pem / cert.pem) --cert-fullchain FILE Файл сертификата (fullchain.pem, _wildcard.domain.pem, …)
--cert-key FILE Файл ключа в --cert-dir (по умолчанию: privkey.pem / key.pem) --cert-key FILE Файл ключа (privkey.pem, _wildcard.domain-key.pem, …)
--nginx-http-port PORT HTTP-порт Nginx (если 80 занят, например 8080) --nginx-http-port PORT HTTP-порт Nginx (если 80 занят, например 8080)
--nginx-https-port PORT HTTPS-порт Nginx (если 443 занят, например 8443) --nginx-https-port PORT HTTPS-порт Nginx (если 443 занят, например 8443)
--offline Не скачивать Docker из интернета (только если уже установлен) --offline Не скачивать Docker из интернета (только если уже установлен)
@@ -1426,6 +1426,36 @@ find_custom_cert_file() {
return 1 return 1
} }
find_custom_cert_file_auto() {
local dir="$1"
local kind="$2"
local f base
shopt -s nullglob
if [[ "$kind" == "key" ]]; then
for f in "$dir"/*-key.pem "$dir"/*_key.pem "$dir"/*.key; do
if [[ -f "$f" ]]; then
shopt -u nullglob
echo "$f"
return 0
fi
done
shopt -u nullglob
return 1
fi
for f in "$dir"/_wildcard*.pem "$dir"/*wildcard*.pem "$dir"/*.pem "$dir"/*.crt; do
[[ -f "$f" ]] || continue
base="$(basename "$f")"
[[ "$base" == *-key.pem || "$base" == *_key.pem ]] && continue
shopt -u nullglob
echo "$f"
return 0
done
shopt -u nullglob
return 1
}
resolve_custom_cert_source_dir() { resolve_custom_cert_source_dir() {
if [[ -n "$CLI_CERT_DIR" ]]; then if [[ -n "$CLI_CERT_DIR" ]]; then
SSL_CERT_DIR="$CLI_CERT_DIR" SSL_CERT_DIR="$CLI_CERT_DIR"
@@ -1455,7 +1485,8 @@ prompt_custom_cert_settings() {
echo "" echo ""
echo -e "${BOLD}Свои SSL-сертификаты:${NC}" echo -e "${BOLD}Свои SSL-сертификаты:${NC}"
echo " Положите на сервер файлы сертификата и ключа, затем укажите папку." echo " Положите на сервер файлы сертификата и ключа, затем укажите папку."
echo " Поддерживаются имена: fullchain.pem / cert.pem и privkey.pem / key.pem" echo " Поддерживаются имена: fullchain.pem, cert.pem, _wildcard.domain.pem"
echo " и ключи: privkey.pem, key.pem, _wildcard.domain-key.pem"
echo " Рекомендуемая папка: ${DEFAULT_CERT_UPLOAD_DIR}/" echo " Рекомендуемая папка: ${DEFAULT_CERT_UPLOAD_DIR}/"
echo "" echo ""
@@ -1513,10 +1544,12 @@ install_custom_certificates() {
local src_fullchain src_key local src_fullchain src_key
src_fullchain="$(find_custom_cert_file "$SSL_CERT_DIR" "$SSL_CERT_FULLCHAIN" \ src_fullchain="$(find_custom_cert_file "$SSL_CERT_DIR" "$SSL_CERT_FULLCHAIN" \
fullchain.pem cert.pem certificate.pem server.crt)" \ fullchain.pem cert.pem certificate.pem server.crt)" \
|| fail "Не найден файл сертификата в ${SSL_CERT_DIR}. Положите fullchain.pem или cert.pem, либо укажите --cert-fullchain" || src_fullchain="$(find_custom_cert_file_auto "$SSL_CERT_DIR" cert)" \
|| fail "Не найден файл сертификата в ${SSL_CERT_DIR}. Положите fullchain.pem, _wildcard.domain.pem и т.п., либо укажите --cert-fullchain"
src_key="$(find_custom_cert_file "$SSL_CERT_DIR" "$SSL_CERT_KEY" \ src_key="$(find_custom_cert_file "$SSL_CERT_DIR" "$SSL_CERT_KEY" \
privkey.pem key.pem server.key)" \ privkey.pem key.pem server.key)" \
|| fail "Не найден файл ключа в ${SSL_CERT_DIR}. Положите privkey.pem или key.pem, либо укажите --cert-key" || src_key="$(find_custom_cert_file_auto "$SSL_CERT_DIR" key)" \
|| fail "Не найден файл ключа в ${SSL_CERT_DIR}. Положите privkey.pem, domain-key.pem и т.п., либо укажите --cert-key"
validate_custom_certificate_pair "$src_fullchain" "$src_key" validate_custom_certificate_pair "$src_fullchain" "$src_key"