fix: support panel bootstrap without github api
This commit is contained in:
@ -117,11 +117,14 @@ PT_SERVER="server-01-random-block"
|
||||
PT_JAVA_ARGS="-Xms1G -Xmx1G"
|
||||
```
|
||||
|
||||
`panel-start.sh` 默认会额外下载 `packwiz-installer.jar`,并通过本地文件方式交给 bootstrap 使用,适合 GitHub API 受限(例如 403)的面板环境。
|
||||
|
||||
这个脚本会:
|
||||
|
||||
1. 从 Gitea 下载整个仓库归档
|
||||
2. 解压到当前目录下的 `pt-minecraft-modpack/`
|
||||
3. 自动调用仓库里的 `start.sh`
|
||||
3. 额外下载 `packwiz-installer.jar`
|
||||
4. 自动调用仓库里的 `start.sh`
|
||||
|
||||
### 直接下载链接
|
||||
|
||||
@ -215,6 +218,7 @@ bash ./start.sh
|
||||
- `PT_SERVER_JAR`:手动指定启动的服务端 jar 路径
|
||||
- `PT_RUNTIME_DIR`:缓存下载内容与状态文件的目录,默认 `.pt-panel-runtime/`
|
||||
- `PT_PACKWIZ_BOOTSTRAP_NO_UPDATE=1`:禁用 bootstrap 自更新
|
||||
- `PT_PACKWIZ_BOOTSTRAP_MAIN_JAR`:手动指定本地 `packwiz-installer.jar` 路径(适合 GitHub API 受限环境)
|
||||
- `PT_FABRIC_INSTALLER_VERSION`:手动指定 Fabric installer 版本
|
||||
- `PT_PACKWIZ_BOOTSTRAP_URL`:手动指定 bootstrap 下载地址
|
||||
|
||||
|
||||
@ -15,6 +15,7 @@ INSTALL_DIR="${INSTALL_DIR:-$(pwd)/pt-minecraft-modpack}"
|
||||
ARCHIVE_PATH="${ARCHIVE_PATH:-$(pwd)/pt-minecraft-modpack.tar.gz}"
|
||||
TMP_DIR="${TMP_DIR:-$(pwd)/pt-minecraft-modpack.__tmp}"
|
||||
PT_JAVA_ARGS="${PT_JAVA_ARGS:--Xms1G -Xmx1G}"
|
||||
PACKWIZ_INSTALLER_URL="${PACKWIZ_INSTALLER_URL:-https://github.com/packwiz/packwiz-installer/releases/latest/download/packwiz-installer.jar}"
|
||||
|
||||
log() {
|
||||
printf '[panel-entry] %s\n' "$*"
|
||||
@ -56,9 +57,22 @@ mv "$EXTRACTED_DIR" "$INSTALL_DIR"
|
||||
rm -rf "$TMP_DIR" "$ARCHIVE_PATH"
|
||||
|
||||
cd "$INSTALL_DIR"
|
||||
mkdir -p .pt-panel-runtime/downloads
|
||||
|
||||
log "下载 packwiz-installer"
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -fL --retry 3 --retry-delay 2 -o .pt-panel-runtime/downloads/packwiz-installer.jar "$PACKWIZ_INSTALLER_URL"
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
wget -O .pt-panel-runtime/downloads/packwiz-installer.jar "$PACKWIZ_INSTALLER_URL"
|
||||
else
|
||||
fail "缺少 curl 或 wget"
|
||||
fi
|
||||
|
||||
log "调用仓库内 start.sh"
|
||||
PT_REPO_URL="$REPO_URL" \
|
||||
PT_REPO_REF="$REPO_REF" \
|
||||
PT_SERVER="$PT_SERVER" \
|
||||
PT_JAVA_ARGS="$PT_JAVA_ARGS" \
|
||||
PT_PACKWIZ_BOOTSTRAP_NO_UPDATE="${PT_PACKWIZ_BOOTSTRAP_NO_UPDATE:-1}" \
|
||||
PT_PACKWIZ_BOOTSTRAP_MAIN_JAR="$(pwd)/.pt-panel-runtime/downloads/packwiz-installer.jar" \
|
||||
bash ./start.sh
|
||||
|
||||
7
start.sh
7
start.sh
@ -18,6 +18,7 @@ AUTO_EULA="${PT_AUTO_EULA:-TRUE}"
|
||||
PACKWIZ_BOOTSTRAP_NO_UPDATE="${PT_PACKWIZ_BOOTSTRAP_NO_UPDATE:-0}"
|
||||
FABRIC_INSTALLER_VERSION="${PT_FABRIC_INSTALLER_VERSION:-}"
|
||||
PACKWIZ_BOOTSTRAP_URL="${PT_PACKWIZ_BOOTSTRAP_URL:-https://github.com/packwiz/packwiz-installer-bootstrap/releases/latest/download/packwiz-installer-bootstrap.jar}"
|
||||
PACKWIZ_BOOTSTRAP_MAIN_JAR="${PT_PACKWIZ_BOOTSTRAP_MAIN_JAR:-}"
|
||||
|
||||
PACK_DIR=""
|
||||
PACK_URL=""
|
||||
@ -198,7 +199,11 @@ install_fabric_server() {
|
||||
run_packwiz_installer() {
|
||||
local args=( -jar "$BOOTSTRAP_JAR" -g --side server --pack-folder "$INSTALL_ROOT" --meta-file "$PACKWIZ_META_FILE" "$PACK_URL" )
|
||||
|
||||
if [ "$PACKWIZ_BOOTSTRAP_NO_UPDATE" = "1" ]; then
|
||||
if [ -n "$PACKWIZ_BOOTSTRAP_MAIN_JAR" ] && [ "$PACKWIZ_BOOTSTRAP_NO_UPDATE" = "1" ]; then
|
||||
args=( -jar "$BOOTSTRAP_JAR" --bootstrap-no-update --bootstrap-main-jar "$PACKWIZ_BOOTSTRAP_MAIN_JAR" -g --side server --pack-folder "$INSTALL_ROOT" --meta-file "$PACKWIZ_META_FILE" "$PACK_URL" )
|
||||
elif [ -n "$PACKWIZ_BOOTSTRAP_MAIN_JAR" ]; then
|
||||
args=( -jar "$BOOTSTRAP_JAR" --bootstrap-main-jar "$PACKWIZ_BOOTSTRAP_MAIN_JAR" -g --side server --pack-folder "$INSTALL_ROOT" --meta-file "$PACKWIZ_META_FILE" "$PACK_URL" )
|
||||
elif [ "$PACKWIZ_BOOTSTRAP_NO_UPDATE" = "1" ]; then
|
||||
args=( -jar "$BOOTSTRAP_JAR" --bootstrap-no-update -g --side server --pack-folder "$INSTALL_ROOT" --meta-file "$PACKWIZ_META_FILE" "$PACK_URL" )
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user