Добавлен установщик

This commit is contained in:
2026-10-07 17:28:55 +03:00
parent cc194b8eee
commit 962681630f
6 changed files with 657 additions and 348 deletions

View File

@@ -6,12 +6,12 @@
# Список имён: sudo ls /etc/letsencrypt/live/
#
# Имя сертификата берётся из --cert, иначе — родительский домен от --domain
# (schedule.example.ru -> example.ru). Порт фронта берётся из --port, иначе из
# FRONTEND_PORT файла .env в корне проекта, иначе 8090.
# (sched.example.ru -> example.ru). Порт фронта берётся из --port, иначе из
# FRONTEND_PORT файла .env в корне проекта, иначе 8080.
#
# Примеры:
# deploy/nginx-site.sh --print # показать конфиг, ничего не менять
# sudo deploy/nginx-site.sh # поставить и перечитать nginx
# deploy/nginx-site.sh --print --domain sched.example.ru # показать конфиг
# sudo deploy/nginx-site.sh --domain sched.example.ru # поставить и перечитать nginx
# sudo deploy/nginx-site.sh --domain sched.example.ru --cert example.ru
set -euo pipefail
@@ -19,7 +19,9 @@ usage() {
grep '^#' "$0" | sed 's/^# \{0,1\}//' | tail -n +2
}
DOMAIN="schedule.our-place.ru"
die() { echo "Ошибка: $*" >&2; exit 2; }
DOMAIN=""
CERT_NAME=""
FRONTEND_PORT=""
PRINT=0
@@ -35,9 +37,10 @@ while [[ $# -gt 0 ]]; do
esac
done
[[ $DOMAIN =~ ^[a-zA-Z0-9.-]+$ ]] || { echo "Кривое имя домена: $DOMAIN" >&2; exit 2; }
[[ -n $DOMAIN ]] || die "Укажите домен: --domain sched.example.ru (см. --help)"
[[ $DOMAIN =~ ^[a-zA-Z0-9.-]+$ ]] || die "Кривое имя домена: $DOMAIN"
if [[ -z $CERT_NAME ]]; then
CERT_NAME="${DOMAIN#*.}" # schedule.our-place.ru -> our-place.ru (wildcard родителя)
CERT_NAME="${DOMAIN#*.}" # sched.example.ru -> example.ru (wildcard родителя)
fi
[[ $CERT_NAME =~ ^[a-zA-Z0-9.-]+$ ]] || { echo "Кривое имя сертификата: $CERT_NAME" >&2; exit 2; }
@@ -48,7 +51,7 @@ if [[ -z $FRONTEND_PORT ]]; then
| tr -d ' "' | awk -F: '{print $NF}'
) || FRONTEND_PORT=""
fi
FRONTEND_PORT=${FRONTEND_PORT:-8090}
FRONTEND_PORT=${FRONTEND_PORT:-8080}
[[ $FRONTEND_PORT =~ ^[0-9]+$ ]] || { echo "Не разобрал FRONTEND_PORT из .env, задайте --port" >&2; exit 2; }
read -r -d '' CONFIG <<'TEMPLATE' || true