fix: enhance load_env function to derive internal API URLs from container IPs

This commit is contained in:
S
2026-03-02 10:50:22 -05:00
parent 61e450de74
commit c5676679e8

View File

@@ -70,8 +70,10 @@ _project_root() {
} }
# Source .env and export all variables. # Source .env and export all variables.
# Uses set -a/+a to auto-export every variable defined in the file, # Internal API URLs are auto-derived from container IPs:
# making them available to child processes (envsubst, ssh, etc.). # GITEA_INTERNAL_URL = http://UNRAID_GITEA_IP:3000
# GITEA_BACKUP_INTERNAL_URL = http://FEDORA_GITEA_IP:3000
# so users do not need to set these URL vars manually in .env.
load_env() { load_env() {
local env_file local env_file
env_file="$(_project_root)/.env" env_file="$(_project_root)/.env"
@@ -105,6 +107,15 @@ load_env() {
value="${value%"${value##*[! ]}"}" value="${value%"${value##*[! ]}"}"
export "$key=$value" export "$key=$value"
done < "$env_file" done < "$env_file"
# Derive internal API URLs from dedicated container IPs.
# This keeps one source of truth: *_GITEA_IP.
if [[ -n "${UNRAID_GITEA_IP:-}" ]]; then
export GITEA_INTERNAL_URL="http://${UNRAID_GITEA_IP}:3000"
fi
if [[ -n "${FEDORA_GITEA_IP:-}" ]]; then
export GITEA_BACKUP_INTERNAL_URL="http://${FEDORA_GITEA_IP}:3000"
fi
} }
save_env_var() { save_env_var() {
@@ -220,8 +231,8 @@ _ENV_VAR_NAMES=(
FEDORA_MACVLAN_IP_RANGE FEDORA_GITEA_IP FEDORA_MACVLAN_IP_RANGE FEDORA_GITEA_IP
GITEA_ADMIN_USER GITEA_ADMIN_PASSWORD GITEA_ADMIN_EMAIL GITEA_ADMIN_USER GITEA_ADMIN_PASSWORD GITEA_ADMIN_EMAIL
GITEA_ORG_NAME GITEA_INSTANCE_NAME GITEA_DB_TYPE GITEA_VERSION ACT_RUNNER_VERSION GITEA_ORG_NAME GITEA_INSTANCE_NAME GITEA_DB_TYPE GITEA_VERSION ACT_RUNNER_VERSION
GITEA_DOMAIN GITEA_INTERNAL_URL GITEA_DOMAIN
GITEA_BACKUP_INTERNAL_URL GITEA_BACKUP_MIRROR_INTERVAL GITEA_BACKUP_MIRROR_INTERVAL
BACKUP_STORAGE_PATH BACKUP_RETENTION_COUNT BACKUP_STORAGE_PATH BACKUP_RETENTION_COUNT
RUNNER_DEFAULT_IMAGE RUNNER_DEFAULT_IMAGE
GITHUB_USERNAME GITHUB_TOKEN GITHUB_USERNAME GITHUB_TOKEN
@@ -243,8 +254,8 @@ _ENV_VAR_TYPES=(
nonempty ip nonempty ip
nonempty password email nonempty password email
nonempty nonempty db_type nonempty nonempty nonempty nonempty db_type nonempty nonempty
nonempty url nonempty
url nonempty nonempty
path integer path integer
nonempty nonempty
nonempty nonempty nonempty nonempty