fix: update phase8_cutover.sh to clarify Docker network requirements and add network existence check

This commit is contained in:
S
2026-03-02 10:39:50 -05:00
parent 82b6a9de95
commit a3342d6612

View File

@@ -3,7 +3,7 @@ set -euo pipefail
# ============================================================================= # =============================================================================
# phase8_cutover.sh — HTTPS via Caddy + Mark GitHub repos as mirrors # 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. # This is the "go live" script — after this, Gitea is the primary git host.
# #
# Caddy handles TLS automatically. TLS_MODE from .env controls how: # 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" read -ra REPOS <<< "$REPO_NAMES"
PHASE8_STATE_DIR="$(_project_root)/.manifests" PHASE8_STATE_DIR="$(_project_root)/.manifests"
PHASE8_STATE_FILE="${PHASE8_STATE_DIR}/phase8_github_repo_state.json" 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 # 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 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" log_info "Caddy docker-compose.yml already exists — skipping"
else 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) TMPFILE=$(mktemp)
CADDY_CONTAINER_IP="${UNRAID_CADDY_IP}" 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 if [[ "$TLS_MODE" == "cloudflare" ]]; then
CADDY_ENV_VARS=" - CF_API_TOKEN=${CLOUDFLARE_API_TOKEN}" CADDY_ENV_VARS=" - CF_API_TOKEN=${CLOUDFLARE_API_TOKEN}"
@@ -187,7 +195,7 @@ else
export CADDY_ENV_VARS CADDY_EXTRA_VOLUMES export CADDY_ENV_VARS CADDY_EXTRA_VOLUMES
render_template "${SCRIPT_DIR}/templates/docker-compose-caddy.yml.tpl" "$TMPFILE" \ 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 # Strip empty YAML blocks left when optional vars are blank
if [[ -z "$CADDY_ENV_VARS" ]]; then if [[ -z "$CADDY_ENV_VARS" ]]; then
sed -i.bak '/^[[:space:]]*environment:$/d' "$TMPFILE" sed -i.bak '/^[[:space:]]*environment:$/d' "$TMPFILE"