From a3342d6612f7cc4ff1088b7db2ecd1eba5f8dfaa Mon Sep 17 00:00:00 2001 From: S Date: Mon, 2 Mar 2026 10:39:50 -0500 Subject: [PATCH] fix: update phase8_cutover.sh to clarify Docker network requirements and add network existence check --- phase8_cutover.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/phase8_cutover.sh b/phase8_cutover.sh index 3744a9b..67084cb 100755 --- a/phase8_cutover.sh +++ b/phase8_cutover.sh @@ -3,7 +3,7 @@ set -euo pipefail # ============================================================================= # phase8_cutover.sh — HTTPS via Caddy + Mark GitHub repos as mirrors -# Depends on: All prior phases complete, macvlan network created on Unraid +# Depends on: All prior phases complete, required Docker network present on Unraid # This is the "go live" script — after this, Gitea is the primary git host. # # Caddy handles TLS automatically. TLS_MODE from .env controls how: @@ -37,6 +37,8 @@ phase_header 8 "Cutover (HTTPS via Caddy + Mark GitHub Mirrors)" read -ra REPOS <<< "$REPO_NAMES" PHASE8_STATE_DIR="$(_project_root)/.manifests" PHASE8_STATE_FILE="${PHASE8_STATE_DIR}/phase8_github_repo_state.json" +# Reuse Unraid's existing Docker network. +UNRAID_DOCKER_NETWORK_NAME="br0" # --------------------------------------------------------------------------- # Helper: persist original GitHub repo settings for teardown symmetry @@ -171,9 +173,15 @@ log_step 3 "Deploying Caddy docker-compose..." if ssh_exec UNRAID "test -f '${CADDY_DATA_PATH}/docker-compose.yml'" 2>/dev/null; then log_info "Caddy docker-compose.yml already exists — skipping" else + if ! ssh_exec UNRAID "docker network inspect '${UNRAID_DOCKER_NETWORK_NAME}'" &>/dev/null; then + log_error "Required Docker network '${UNRAID_DOCKER_NETWORK_NAME}' not found on Unraid." + log_error "Create it in Unraid first or update phase8_cutover.sh to match your network name." + exit 1 + fi TMPFILE=$(mktemp) CADDY_CONTAINER_IP="${UNRAID_CADDY_IP}" - export CADDY_CONTAINER_IP CADDY_DATA_PATH + GITEA_NETWORK_NAME="${UNRAID_DOCKER_NETWORK_NAME}" + export CADDY_CONTAINER_IP CADDY_DATA_PATH GITEA_NETWORK_NAME if [[ "$TLS_MODE" == "cloudflare" ]]; then CADDY_ENV_VARS=" - CF_API_TOKEN=${CLOUDFLARE_API_TOKEN}" @@ -187,7 +195,7 @@ else export CADDY_ENV_VARS CADDY_EXTRA_VOLUMES render_template "${SCRIPT_DIR}/templates/docker-compose-caddy.yml.tpl" "$TMPFILE" \ - "\${CADDY_DATA_PATH} \${CADDY_CONTAINER_IP} \${CADDY_ENV_VARS} \${CADDY_EXTRA_VOLUMES}" + "\${CADDY_DATA_PATH} \${CADDY_CONTAINER_IP} \${CADDY_ENV_VARS} \${CADDY_EXTRA_VOLUMES} \${GITEA_NETWORK_NAME}" # Strip empty YAML blocks left when optional vars are blank if [[ -z "$CADDY_ENV_VARS" ]]; then sed -i.bak '/^[[:space:]]*environment:$/d' "$TMPFILE"