diff --git a/phase1_gitea_unraid.sh b/phase1_gitea_unraid.sh index ab1ac3a..5c72688 100755 --- a/phase1_gitea_unraid.sh +++ b/phase1_gitea_unraid.sh @@ -11,8 +11,7 @@ source "${SCRIPT_DIR}/lib/common.sh" load_env require_vars UNRAID_IP UNRAID_SSH_USER UNRAID_SSH_PORT UNRAID_GITEA_DATA_PATH \ - UNRAID_MACVLAN_PARENT UNRAID_MACVLAN_SUBNET UNRAID_MACVLAN_GATEWAY \ - UNRAID_MACVLAN_IP_RANGE UNRAID_GITEA_IP \ + UNRAID_GITEA_IP \ GITEA_ADMIN_USER GITEA_ADMIN_PASSWORD GITEA_ADMIN_EMAIL \ GITEA_ORG_NAME GITEA_INSTANCE_NAME \ GITEA_DB_TYPE GITEA_VERSION \ @@ -29,6 +28,8 @@ phase_header 1 "Gitea on Unraid" # Templates use $DATA_PATH as a generic variable name so the same template # works for both Unraid (Phase 1) and Fedora (Phase 2). DATA_PATH="$UNRAID_GITEA_DATA_PATH" +# Reuse Unraid's existing custom network. +UNRAID_DOCKER_NETWORK_NAME="br0" # DB helpers and strip_template_block are in lib/common.sh @@ -44,21 +45,16 @@ fi log_success "Data directories ensured" # --------------------------------------------------------------------------- -# Step 2: Create macvlan Docker network (idempotent) -# Each container gets its own LAN IP — no host port mapping needed. +# Step 2: Verify required Docker network exists on Unraid +# We intentionally reuse Unraid's existing network (br0) and never create/remove it. # --------------------------------------------------------------------------- -log_step 2 "Creating macvlan Docker network on Unraid..." -if ssh_exec UNRAID "docker network inspect gitea_net" &>/dev/null; then - log_info "gitea_net network already exists — skipping" +log_step 2 "Verifying Docker network '${UNRAID_DOCKER_NETWORK_NAME}' on Unraid..." +if ssh_exec UNRAID "docker network inspect '${UNRAID_DOCKER_NETWORK_NAME}'" &>/dev/null; then + log_success "Docker network '${UNRAID_DOCKER_NETWORK_NAME}' exists" else - ssh_exec UNRAID "docker network create \ - --driver macvlan \ - --subnet='${UNRAID_MACVLAN_SUBNET}' \ - --gateway='${UNRAID_MACVLAN_GATEWAY}' \ - --ip-range='${UNRAID_MACVLAN_IP_RANGE}' \ - -o parent='${UNRAID_MACVLAN_PARENT}' \ - gitea_net" - log_success "macvlan network gitea_net created" + log_error "Required Docker network '${UNRAID_DOCKER_NETWORK_NAME}' not found on Unraid." + log_error "Create it in Unraid first or update phase1_gitea_unraid.sh to match your network name." + exit 1 fi # --------------------------------------------------------------------------- @@ -71,12 +67,13 @@ else TMPFILE=$(mktemp) # Set variables for template — containers get dedicated LAN IPs via macvlan GITEA_CONTAINER_IP="${UNRAID_GITEA_IP}" - export DATA_PATH GITEA_CONTAINER_IP + GITEA_NETWORK_NAME="${UNRAID_DOCKER_NETWORK_NAME}" + export DATA_PATH GITEA_CONTAINER_IP GITEA_NETWORK_NAME if [[ "$GITEA_DB_TYPE" == "sqlite3" ]]; then # No DB service needed — render template then strip DB blocks render_template "${SCRIPT_DIR}/templates/docker-compose-gitea.yml.tpl" "$TMPFILE" \ - "\${GITEA_VERSION} \${DATA_PATH} \${GITEA_CONTAINER_IP}" + "\${GITEA_VERSION} \${DATA_PATH} \${GITEA_CONTAINER_IP} \${GITEA_NETWORK_NAME}" strip_template_block "$TMPFILE" "DB_SERVICE_START" "DB_SERVICE_END" strip_template_block "$TMPFILE" "DB_DEPENDS_START" "DB_DEPENDS_END" else @@ -85,7 +82,7 @@ else DB_CONTAINER_IP="${UNRAID_DB_IP}" export DB_CONTAINER_IP render_template "${SCRIPT_DIR}/templates/docker-compose-gitea.yml.tpl" "$TMPFILE" \ - "\${GITEA_VERSION} \${DATA_PATH} \${GITEA_CONTAINER_IP} \${DB_DOCKER_IMAGE} \${DB_ENV_VARS} \${DB_DATA_DIR} \${DB_HEALTHCHECK} \${DB_CONTAINER_IP}" + "\${GITEA_VERSION} \${DATA_PATH} \${GITEA_CONTAINER_IP} \${GITEA_NETWORK_NAME} \${DB_DOCKER_IMAGE} \${DB_ENV_VARS} \${DB_DATA_DIR} \${DB_HEALTHCHECK} \${DB_CONTAINER_IP}" fi scp_to UNRAID "$TMPFILE" "${DATA_PATH}/docker-compose.yml"