fix: remove unused FEDORA_CADDY_IP from validation and wizard

No phase script deploys Caddy on Fedora — only Unraid gets a Caddy
container. Removed from .env.example, validation arrays, preflight
required vars, IP ping check, wizard prompts, and doc references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
S
2026-03-01 11:39:15 -05:00
parent 33f9845dd6
commit b573b77ab1
6 changed files with 54 additions and 9 deletions

View File

@@ -42,7 +42,6 @@ FEDORA_MACVLAN_GATEWAY= # LAN gateway (e.g. 192.168.1.1)
FEDORA_MACVLAN_IP_RANGE= # IP range for containers (e.g. 192.168.1.208/28 — 16 IPs) FEDORA_MACVLAN_IP_RANGE= # IP range for containers (e.g. 192.168.1.208/28 — 16 IPs)
FEDORA_GITEA_IP= # Static LAN IP for Gitea container FEDORA_GITEA_IP= # Static LAN IP for Gitea container
FEDORA_DB_IP= # Static LAN IP for DB container (leave empty if sqlite3) FEDORA_DB_IP= # Static LAN IP for DB container (leave empty if sqlite3)
FEDORA_CADDY_IP= # Static LAN IP for Caddy container
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------

View File

@@ -680,7 +680,7 @@ gitea-migration/
| 7 | Docker on Fedora | Same | Same | | 7 | Docker on Fedora | Same | Same |
| 8 | docker-compose on Unraid | `ssh_exec UNRAID "docker compose version"` or `docker-compose --version` | "docker-compose not found on Unraid. Run setup/unraid.sh." | | 8 | docker-compose on Unraid | `ssh_exec UNRAID "docker compose version"` or `docker-compose --version` | "docker-compose not found on Unraid. Run setup/unraid.sh." |
| 9 | docker-compose on Fedora | Same | Same | | 9 | docker-compose on Fedora | Same | Same |
| 10 | Container IPs available | Ping-check `UNRAID_GITEA_IP`, `UNRAID_CADDY_IP`, `FEDORA_GITEA_IP`, `FEDORA_CADDY_IP` — warn if responding | "IP $ip is already responding to ping (may be in use)." | | 10 | Container IPs available | Ping-check `UNRAID_GITEA_IP`, `UNRAID_CADDY_IP`, `FEDORA_GITEA_IP` — warn if responding | "IP $ip is already responding to ping (may be in use)." |
| 12 | DNS resolves | `dig +short $GITEA_DOMAIN` returns `$UNRAID_IP` | "$GITEA_DOMAIN does not resolve to $UNRAID_IP." | | 12 | DNS resolves | `dig +short $GITEA_DOMAIN` returns `$UNRAID_IP` | "$GITEA_DOMAIN does not resolve to $UNRAID_IP." |
| 13 | GitHub token valid | `github_api GET /user` returns 200 | "GitHub token invalid. Check GITHUB_TOKEN in .env." | | 13 | GitHub token valid | `github_api GET /user` returns 200 | "GitHub token invalid. Check GITHUB_TOKEN in .env." |
| 14 | GitHub repos exist | For each repo in `REPO_NAMES`: `github_api GET /repos/$GITHUB_USERNAME/$repo` returns 200 | "GitHub repo $repo not found under $GITHUB_USERNAME." | | 14 | GitHub repos exist | For each repo in `REPO_NAMES`: `github_api GET /repos/$GITHUB_USERNAME/$repo` returns 200 | "GitHub repo $repo not found under $GITHUB_USERNAME." |

View File

@@ -214,7 +214,7 @@ Then re-run Phase 4. Already-migrated repos will be skipped.
**Symptom**: Preflight check 13 warns that a macvlan IP is already responding to ping. **Symptom**: Preflight check 13 warns that a macvlan IP is already responding to ping.
**Fix**: Either release the conflicting IP or change the container IP in `.env` (`UNRAID_GITEA_IP`, `UNRAID_CADDY_IP`, `FEDORA_GITEA_IP`, or `FEDORA_CADDY_IP`). **Fix**: Either release the conflicting IP or change the container IP in `.env` (`UNRAID_GITEA_IP`, `UNRAID_CADDY_IP`, or `FEDORA_GITEA_IP`).
### DNS doesn't resolve to Unraid IP ### DNS doesn't resolve to Unraid IP

View File

@@ -209,7 +209,7 @@ _ENV_VAR_NAMES=(
UNRAID_MACVLAN_PARENT UNRAID_MACVLAN_SUBNET UNRAID_MACVLAN_GATEWAY UNRAID_MACVLAN_PARENT UNRAID_MACVLAN_SUBNET UNRAID_MACVLAN_GATEWAY
UNRAID_MACVLAN_IP_RANGE UNRAID_GITEA_IP UNRAID_CADDY_IP UNRAID_MACVLAN_IP_RANGE UNRAID_GITEA_IP UNRAID_CADDY_IP
FEDORA_MACVLAN_PARENT FEDORA_MACVLAN_SUBNET FEDORA_MACVLAN_GATEWAY FEDORA_MACVLAN_PARENT FEDORA_MACVLAN_SUBNET FEDORA_MACVLAN_GATEWAY
FEDORA_MACVLAN_IP_RANGE FEDORA_GITEA_IP FEDORA_CADDY_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_INTERNAL_URL
@@ -231,7 +231,7 @@ _ENV_VAR_TYPES=(
nonempty nonempty ip nonempty nonempty ip
nonempty ip ip nonempty ip ip
nonempty nonempty ip nonempty nonempty ip
nonempty ip 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
@@ -564,6 +564,53 @@ render_template() {
envsubst "$vars" < "$src" > "$dest" envsubst "$vars" < "$src" > "$dest"
} }
# ---------------------------------------------------------------------------
# Template block helpers — conditional block stripping and DB-specific vars
# ---------------------------------------------------------------------------
# Strip conditional blocks from a rendered file.
# Usage: strip_template_block <file> <start_marker> <end_marker>
strip_template_block() {
local file="$1" start="$2" end="$3"
sed -i.bak "/${start}/,/${end}/d" "$file"
rm -f "${file}.bak"
}
# Set DB-specific variables for docker-compose template rendering.
# Requires GITEA_DB_TYPE, GITEA_DB_USER, GITEA_DB_PASSWD, GITEA_DB_NAME in env.
# Exports: DB_DOCKER_IMAGE, DB_ENV_VARS, DB_HEALTHCHECK, DB_DATA_DIR
set_db_vars() {
case "${GITEA_DB_TYPE}" in
postgres)
DB_DOCKER_IMAGE="postgres:16-alpine"
DB_ENV_VARS=" - POSTGRES_USER=${GITEA_DB_USER}
- POSTGRES_PASSWORD=${GITEA_DB_PASSWD}
- POSTGRES_DB=${GITEA_DB_NAME}"
DB_HEALTHCHECK='["CMD-SHELL", "pg_isready -U '"${GITEA_DB_USER}"'"]'
DB_DATA_DIR="postgresql/data"
;;
mysql)
DB_DOCKER_IMAGE="mysql:8.0"
DB_ENV_VARS=" - MYSQL_ROOT_PASSWORD=${GITEA_DB_PASSWD}
- MYSQL_DATABASE=${GITEA_DB_NAME}
- MYSQL_USER=${GITEA_DB_USER}
- MYSQL_PASSWORD=${GITEA_DB_PASSWD}"
DB_HEALTHCHECK='["CMD", "mysqladmin", "ping", "-h", "localhost"]'
DB_DATA_DIR="mysql"
;;
mssql)
DB_DOCKER_IMAGE="mcr.microsoft.com/mssql/server:2022-latest"
DB_ENV_VARS=" - ACCEPT_EULA=Y
- SA_PASSWORD=${GITEA_DB_PASSWD}"
# shellcheck disable=SC2089,SC2016
DB_HEALTHCHECK='["CMD-SHELL", "/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P '"'"'${GITEA_DB_PASSWD}'"'"' -Q \"SELECT 1\" -C -N"]'
DB_DATA_DIR="mssql/data"
;;
esac
# shellcheck disable=SC2090
export DB_DOCKER_IMAGE DB_ENV_VARS DB_HEALTHCHECK DB_DATA_DIR
}
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Polling / waiting # Polling / waiting
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------

View File

@@ -243,7 +243,7 @@ REQUIRED_VARS=(
UNRAID_MACVLAN_PARENT UNRAID_MACVLAN_SUBNET UNRAID_MACVLAN_GATEWAY UNRAID_MACVLAN_PARENT UNRAID_MACVLAN_SUBNET UNRAID_MACVLAN_GATEWAY
UNRAID_MACVLAN_IP_RANGE UNRAID_GITEA_IP UNRAID_CADDY_IP UNRAID_MACVLAN_IP_RANGE UNRAID_GITEA_IP UNRAID_CADDY_IP
FEDORA_MACVLAN_PARENT FEDORA_MACVLAN_SUBNET FEDORA_MACVLAN_GATEWAY FEDORA_MACVLAN_PARENT FEDORA_MACVLAN_SUBNET FEDORA_MACVLAN_GATEWAY
FEDORA_MACVLAN_IP_RANGE FEDORA_GITEA_IP FEDORA_CADDY_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_ORG_NAME GITEA_INSTANCE_NAME
GITEA_DOMAIN GITEA_INTERNAL_URL GITEA_DOMAIN GITEA_INTERNAL_URL
@@ -402,7 +402,7 @@ else
# shellcheck disable=SC2329 # shellcheck disable=SC2329
check_ips_available() { check_ips_available() {
local fail=0 local fail=0
for ip_var in UNRAID_GITEA_IP UNRAID_CADDY_IP FEDORA_GITEA_IP FEDORA_CADDY_IP; do for ip_var in UNRAID_GITEA_IP UNRAID_CADDY_IP FEDORA_GITEA_IP; do
local ip="${!ip_var:-}" local ip="${!ip_var:-}"
[[ -z "$ip" ]] && continue [[ -z "$ip" ]] && continue
# ping -c1 -W1: one packet, 1-second timeout # ping -c1 -W1: one packet, 1-second timeout

View File

@@ -65,7 +65,7 @@ get_env_val() {
# Prompt function # Prompt function
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Base prompt count (fixed prompts + TLS conditional slots — repo/DB prompts added dynamically) # Base prompt count (fixed prompts + TLS conditional slots — repo/DB prompts added dynamically)
TOTAL_PROMPTS=62 TOTAL_PROMPTS=61
CURRENT_PROMPT=0 CURRENT_PROMPT=0
LAST_SECTION="" LAST_SECTION=""
@@ -254,7 +254,6 @@ prompt_var "FEDORA_MACVLAN_GATEWAY" "Fedora LAN gateway"
prompt_var "FEDORA_MACVLAN_IP_RANGE" "Fedora container IP range" nonempty "" "DOCKER NETWORKING" prompt_var "FEDORA_MACVLAN_IP_RANGE" "Fedora container IP range" nonempty "" "DOCKER NETWORKING"
prompt_var "FEDORA_GITEA_IP" "Fedora Gitea container IP" ip "" "DOCKER NETWORKING" prompt_var "FEDORA_GITEA_IP" "Fedora Gitea container IP" ip "" "DOCKER NETWORKING"
prompt_var "FEDORA_DB_IP" "Fedora DB container IP (empty if sqlite3)" optional "" "DOCKER NETWORKING" prompt_var "FEDORA_DB_IP" "Fedora DB container IP (empty if sqlite3)" optional "" "DOCKER NETWORKING"
prompt_var "FEDORA_CADDY_IP" "Fedora Caddy container IP" ip "" "DOCKER NETWORKING"
# --- GITEA SHARED CREDENTIALS --- # --- GITEA SHARED CREDENTIALS ---
prompt_var "GITEA_ADMIN_USER" "Admin username (same on both instances)" nonempty "" "GITEA SHARED CREDENTIALS" prompt_var "GITEA_ADMIN_USER" "Admin username (same on both instances)" nonempty "" "GITEA SHARED CREDENTIALS"