Files
opsx 88b2ac2a6d
CI / Backend (go vet + test) (push) Canceled after 0s
CI / Frontend (lint + build + test) (push) Canceled after 0s
feat(install): 一键安装脚本 — 对标 1Panel/雷池体验
bash -c "$(curl -fsSL …/scripts/quick_start.sh)" 一条命令:
架构自检(x86_64/arm64)→ 发布包下载(默认 Gitea Release,可镜像)→ 随机密钥生成持久化
→ systemd 开机自启 → 健康等待 → 打印访问地址/初始密码/常用命令;重复执行即升级(数据自动备份)。
CentOS 7 真机验证:安装、登录、文档/落地页、升级幂等全通。
配套 upload-release.sh(make dist 后一键发布双架构包到 Gitea Release);README/手册/CHANGELOG 同步。
2026-10-29 16:05:40 +08:00

35 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# ============================================================================
# 上传双架构发布包到 Gitea Release:
# make dist && GITEA_TOKEN=xxx bash scripts/upload-release.sh v2.0.1
# GITEA_TOKEN: 具备 repo 权限的 token(设置 → 应用 → 生成令牌)
# ============================================================================
set -euo pipefail
REPO="rlwj-lab/LokiStack"
GITEA="https://gitea.91ai.io"
VERSION="${1:?用法: GITEA_TOKEN=xxx bash scripts/upload-release.sh vX.Y.Z}"
TOKEN="${GITEA_TOKEN:?请设置 GITEA_TOKEN}"
for f in dist/lokistack-linux-amd64.tar.gz dist/lokistack-linux-arm64.tar.gz; do
[ -f "$f" ] || { echo "缺少 $f,先执行 make dist"; exit 1; }
done
# 已存在则复用,不存在则创建
REL_ID="$(curl -fsSL -H "Authorization: token $TOKEN" "$GITEA/api/v1/repos/$REPO/releases/tags/$VERSION" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2 || true)"
if [ -z "$REL_ID" ]; then
echo "==> 创建 Release $VERSION"
REL_ID="$(curl -fsSL -X POST -H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"$VERSION\",\"name\":\"LokiStack $VERSION\"}" \
"$GITEA/api/v1/repos/$REPO/releases" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)"
fi
[ -n "$REL_ID" ] || { echo "Release 创建/获取失败"; exit 1; }
for f in dist/lokistack-linux-*.tar.gz; do
echo "==> 上传 $f"
curl -fsSL -X POST -H "Authorization: token $TOKEN" \
-F "attachment=@$f" \
"$GITEA/api/v1/repos/$REPO/releases/$REL_ID/assets?name=$(basename "$f")" >/dev/null
done
echo "==> 完成: $GITEA/$REPO/releases/tag/$VERSION"