install.sh: флаг --monitoring — install.sh ни в одном пресете не поднимал monitoring
set_env_var COMPOSE_PROFILES перезаписывает значение целиком по пресету, затирая media,monitoring из .env.example — Grafana/Prometheus оставались не поднятыми, пока оператор не допишет профиль в .env вручную. --monitoring дописывает monitoring к профилю, который выставил пресет, и включает его сразу в тот же docker compose up (не только в .env).
This commit is contained in:
44
install.sh
44
install.sh
@@ -21,6 +21,7 @@
|
||||
# ./install.sh # интерактивный опросник
|
||||
# ./install.sh --preset 3 # неинтерактивно, пресет 3
|
||||
# ./install.sh --preset 3 --yes # без подтверждений (скрипты/CI)
|
||||
# ./install.sh --preset 2 --monitoring --yes # + профиль monitoring (Grafana/Prometheus)
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
@@ -33,6 +34,12 @@ VERSION_FILE="$SCRIPT_DIR/VERSION"
|
||||
|
||||
PRESET=""
|
||||
ASSUME_YES=0
|
||||
# По умолчанию 0: `set_env_var COMPOSE_PROFILES` ниже (по каждому пресету)
|
||||
# перезаписывает значение целиком, затирая `media,monitoring` из
|
||||
# .env.example — без этого флага мониторинг остаётся не поднятым, пока
|
||||
# оператор не допишет профиль вручную (см. .forcc/deploy/SESSION4-FINDINGS.md,
|
||||
# ГРАБЛИ 2).
|
||||
MONITORING=0
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
@@ -44,6 +51,10 @@ while [ $# -gt 0 ]; do
|
||||
ASSUME_YES=1
|
||||
shift
|
||||
;;
|
||||
--monitoring)
|
||||
MONITORING=1
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
grep -E '^#( |$)' "$0" | sed 's/^#//'
|
||||
exit 0
|
||||
@@ -466,6 +477,17 @@ case "$PRESET" in
|
||||
;;
|
||||
esac
|
||||
|
||||
# --monitoring: дописать профиль monitoring к тому, что выставил пресет
|
||||
# выше (set_env_var перезаписывает значение целиком, поэтому мониторинг
|
||||
# нельзя было получить только сменой пресета — см. комментарий у MONITORING).
|
||||
if [ "$MONITORING" = "1" ]; then
|
||||
current_profiles="$(get_env_var COMPOSE_PROFILES)"
|
||||
case ",${current_profiles}," in
|
||||
*,monitoring,*) ;;
|
||||
*) set_env_var COMPOSE_PROFILES "${current_profiles},monitoring" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo "[install] .env обновлён (пресет ${PRESET}, COMPOSE_PROFILES=$(get_env_var COMPOSE_PROFILES))"
|
||||
|
||||
echo "[install] Проверяю .env на dev-плейсхолдеры перед подъёмом стека"
|
||||
@@ -562,6 +584,23 @@ ADMIN_EMAIL="$(get_env_var SEED_ADMIN_EMAIL)"
|
||||
ADMIN_PASSWORD="$(get_env_var SEED_ADMIN_PASSWORD)"
|
||||
GRAFANA_USER="$(get_env_var GRAFANA_ADMIN_USER)"
|
||||
|
||||
if [ "$MONITORING" = "1" ]; then
|
||||
MONITORING_BLOCK="$(cat <<EOF2
|
||||
Мониторинг (Grafana/Prometheus) поднят вместе со стеком (--monitoring):
|
||||
Prometheus: http://127.0.0.1:9090 (только localhost, см. docs/deploy/DEPLOYMENT.md)
|
||||
Grafana: http://127.0.0.1:3001 (${GRAFANA_USER:-admin} / см. .env GRAFANA_ADMIN_PASSWORD)
|
||||
EOF2
|
||||
)"
|
||||
else
|
||||
MONITORING_BLOCK="$(cat <<EOF2
|
||||
Мониторинг (Grafana/Prometheus) — отдельный профиль compose, не входит
|
||||
в базовые пресеты. Поднять сейчас: docker compose -f ${COMPOSE_FILE} --env-file ${ENV_FILE} --profile monitoring up -d
|
||||
(или перезапустите install.sh с флагом --monitoring).
|
||||
Grafana: http://localhost:3001 (${GRAFANA_USER:-admin} / см. .env GRAFANA_ADMIN_PASSWORD)
|
||||
EOF2
|
||||
)"
|
||||
fi
|
||||
|
||||
cat <<EOF
|
||||
|
||||
============================================================
|
||||
@@ -572,10 +611,7 @@ cat <<EOF
|
||||
Админ: ${ADMIN_EMAIL:-см. .env SEED_ADMIN_EMAIL} / ${ADMIN_PASSWORD:-см. .env SEED_ADMIN_PASSWORD}
|
||||
(смените пароль сразу после первого входа)
|
||||
|
||||
Мониторинг (Grafana/Prometheus) — отдельный профиль compose, не входит
|
||||
в базовые пресеты:
|
||||
docker compose -f ${COMPOSE_FILE} --env-file ${ENV_FILE} --profile monitoring up -d
|
||||
Grafana: http://localhost:3001 (${GRAFANA_USER:-admin} / см. .env GRAFANA_ADMIN_PASSWORD)
|
||||
${MONITORING_BLOCK}
|
||||
|
||||
Настройки модулей инстанса (чат, уровень AI) синхронизированы под
|
||||
пресет ${PRESET} (админка → Настройки, при желании переключите вручную).
|
||||
|
||||
Reference in New Issue
Block a user