mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-03-31 08:19:54 +02:00
Add files via upload
This commit is contained in:
18
README.md
18
README.md
@@ -174,20 +174,10 @@ go build -o cyberstrike-ai cmd/server/main.go
|
||||
|
||||
### Version Update (No Breaking Changes)
|
||||
|
||||
**CyberStrikeAI one-click upgrade (recommended):**
|
||||
1. (First time) enable the script: `chmod +x upgrade.sh`
|
||||
2. Upgrade with: `./upgrade.sh` (optional flags: `--tag vX.Y.Z`, `--no-venv`, `--preserve-custom`, `--yes`)
|
||||
3. The script will back up your `config.yaml` and `data/`, upgrade the code from GitHub Release, update `config.yaml`'s `version`, then restart the server.
|
||||
|
||||
Recommended one-liner:
|
||||
`chmod +x upgrade.sh && ./upgrade.sh --yes`
|
||||
|
||||
If something goes wrong, you can restore from `.upgrade-backup/` (or manually copy `/data` and `config.yaml` back) and run `./run.sh` again.
|
||||
|
||||
Requirements / tips:
|
||||
* You need `curl` or `wget` for downloading Release packages.
|
||||
* `rsync` is recommended/required for the safe code sync.
|
||||
* If GitHub API rate-limits you, set `export GITHUB_TOKEN="..."` before running `./upgrade.sh`.
|
||||
**CyberStrikeAI version update (when there are no compatibility changes):**
|
||||
1. Download the latest source code.
|
||||
2. Copy the old project's `/data` folder and `config.yaml` file into the new source directory.
|
||||
3. Restart with: `chmod +x run.sh && ./run.sh`
|
||||
|
||||
⚠️ **Note:** This procedure only applies to version updates without compatibility or breaking changes. If a release includes compatibility changes, this method may not apply.
|
||||
|
||||
|
||||
16
README_CN.md
16
README_CN.md
@@ -173,19 +173,9 @@ go build -o cyberstrike-ai cmd/server/main.go
|
||||
|
||||
### CyberStrikeAI 版本更新(无兼容性问题)
|
||||
|
||||
1. (首次使用)启用脚本:`chmod +x upgrade.sh`
|
||||
2. 一键升级:`./upgrade.sh`(可选参数:`--tag vX.Y.Z`、`--no-venv`、`--preserve-custom`、`--yes`)
|
||||
3. 脚本会备份你的 `config.yaml` 和 `data/`,从 GitHub Release 升级代码,更新 `config.yaml` 的 `version` 字段后重启服务。
|
||||
|
||||
推荐的一键指令:
|
||||
`chmod +x upgrade.sh && ./upgrade.sh --yes`
|
||||
|
||||
如果升级失败,可以从 `.upgrade-backup/` 恢复,或按旧方式手动拷贝 `/data` 和 `config.yaml` 后再运行 `./run.sh`。
|
||||
|
||||
依赖/提示:
|
||||
* 需要 `curl` 或 `wget` 用于下载 GitHub Release 包。
|
||||
* 建议/需要 `rsync` 用于安全同步代码。
|
||||
* 如果遇到 GitHub API 限流,运行前设置 `export GITHUB_TOKEN="..."` 再执行 `./upgrade.sh`。
|
||||
1. 下载最新源代码;
|
||||
2. 将旧项目的 `/data` 文件夹、`config.yaml` 文件复制至新版源代码目录;
|
||||
3. 执行命令重启:`chmod +x run.sh && ./run.sh`
|
||||
|
||||
⚠️ **注意:** 仅适用于无兼容性变更的版本更新。若版本存在兼容性调整,此方法不适用。
|
||||
|
||||
|
||||
30
upgrade.sh
30
upgrade.sh
@@ -69,9 +69,11 @@ http_get() {
|
||||
if have_cmd curl; then
|
||||
# If GITHUB_TOKEN is provided, use it for api.github.com to avoid low rate limits.
|
||||
if [[ -n "${GITHUB_TOKEN:-}" && "$1" == https://api.github.com/* ]]; then
|
||||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" "$1"
|
||||
# Do not use `-f` so we can parse GitHub error JSON bodies and show `message`.
|
||||
curl -sSL -H "Authorization: Bearer ${GITHUB_TOKEN}" "$1"
|
||||
else
|
||||
curl -fsSL "$1"
|
||||
# Do not use `-f` so we can parse GitHub error JSON bodies and show `message`.
|
||||
curl -sSL "$1"
|
||||
fi
|
||||
elif have_cmd wget; then
|
||||
wget -qO- "$1"
|
||||
@@ -208,11 +210,33 @@ PY
|
||||
if [[ -z "$TAG" ]]; then
|
||||
local msg
|
||||
msg="$(printf '%s' "$json" | python3 -c "import sys,json; d=json.loads(sys.stdin.read() or '{}'); print(d.get('message',''))" 2>/dev/null || true)"
|
||||
|
||||
# Fallback: try query releases list (sometimes latest endpoint returns error JSON without tag_name).
|
||||
local fallback_url="https://api.github.com/repos/${GITHUB_REPO}/releases?per_page=1"
|
||||
info "Fallback to: ${fallback_url}"
|
||||
local fallback_json
|
||||
fallback_json="$(http_get "$fallback_url" 2>/dev/null || true)"
|
||||
local fallback_tag
|
||||
fallback_tag="$(printf '%s' "$fallback_json" | python3 -c "import sys,json; d=json.loads(sys.stdin.read() or '[]'); print(d[0].get('tag_name','') if isinstance(d,list) and d else '')" 2>/dev/null || true)"
|
||||
|
||||
if [[ -n "$fallback_tag" ]]; then
|
||||
TAG="$fallback_tag"
|
||||
info "Latest Release tag (fallback): $TAG"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local snippet
|
||||
snippet="$(printf '%s' "$json" | python3 -c "import sys; s=sys.stdin.read(); print(s[:300].replace('\\n',' '))" 2>/dev/null || true)"
|
||||
|
||||
if [[ -n "$msg" ]]; then
|
||||
err "Failed to fetch latest tag: ${msg}"
|
||||
else
|
||||
err "Failed to fetch latest tag. Please try using --tag to specify the version."
|
||||
err "Failed to fetch latest tag."
|
||||
fi
|
||||
if [[ -n "$snippet" ]]; then
|
||||
err "API response snippet: ${snippet}"
|
||||
fi
|
||||
err "Please try using --tag to specify the version, or set export GITHUB_TOKEN=\"...\"."
|
||||
exit 1
|
||||
fi
|
||||
info "Latest Release tag: $TAG"
|
||||
|
||||
Reference in New Issue
Block a user