hotfix: prevent STACK_NAME env crash in production deploy

This commit is contained in:
Christian 2026-05-04 19:59:47 +02:00
parent 25530c7c94
commit 988450919b
3 changed files with 37 additions and 4 deletions

21
RELEASE_NOTES_v2.2.82.md Normal file
View File

@ -0,0 +1,21 @@
# Release Notes v2.2.82
Dato: 2026-05-04
## Hotfix
- `updateto.sh` fjerner nu automatisk `STACK_NAME` fra `.env` inden startup.
- `updateto.sh` vaelger automatisk `STACK_NAME=v2` i `/srv/podman/bmc_hub_v2` (ellers `prod`).
## Hvorfor
Nogle prod-deployments crashede API ved startup med:
- `ValidationError: STACK_NAME Extra inputs are not permitted`
Aarsagen var, at `STACK_NAME` laa i `.env` og blev indlaest af FastAPI Settings.
## Berort fil
- `updateto.sh`
- `VERSION`

View File

@ -1 +1 @@
2.2.81
2.2.82

View File

@ -17,9 +17,6 @@ if [ "${EUID:-$(id -u)}" -eq 0 ]; then
fi
PODMAN_COMPOSE_FILE="docker-compose.prod.yml"
STACK_NAME="${STACK_NAME:-prod}"
POSTGRES_CONTAINER="bmc-hub-postgres-${STACK_NAME}"
API_CONTAINER="bmc-hub-api-${STACK_NAME}"
if [ -z "$VERSION" ]; then
echo "❌ Fejl: Ingen version angivet"
@ -30,6 +27,10 @@ fi
# SAFETY CHECK: Verify we're on production server
CURRENT_IP=$(hostname -I | awk '{print $1}' 2>/dev/null || echo "unknown")
CURRENT_DIR=$(pwd)
DEFAULT_STACK_NAME="prod"
if [ "$CURRENT_DIR" = "/srv/podman/bmc_hub_v2" ]; then
DEFAULT_STACK_NAME="v2"
fi
if [[ "$CURRENT_IP" != "172.16.31.183" ]] && [[ "$CURRENT_DIR" != "/srv/podman/bmc_hub_v2" ]]; then
echo "⚠️ ADVARSEL: Dette script skal kun køres på PRODUCTION serveren!"
@ -60,11 +61,22 @@ if [ ! -f "$PODMAN_COMPOSE_FILE" ]; then
exit 1
fi
# STACK_NAME must NOT live in .env because FastAPI Settings rejects unknown keys.
# Keep stack selection as shell/env only.
if grep -q '^STACK_NAME=' .env; then
echo "⚠️ Fjerner STACK_NAME fra .env (forhindrer API crash i Settings loader)..."
sed -i.bak '/^STACK_NAME=/d' .env
fi
# Load environment variables (DB credentials)
set -a
source .env
set +a
STACK_NAME="${STACK_NAME:-$DEFAULT_STACK_NAME}"
POSTGRES_CONTAINER="bmc-hub-postgres-${STACK_NAME}"
API_CONTAINER="bmc-hub-api-${STACK_NAME}"
if [ -z "${API_PORT:-}" ]; then
if [ "$CURRENT_DIR" = "/srv/podman/bmc_hub_v2" ]; then
API_PORT="8001"