# SafeLine 源码推送到内网 Gitea 指南 适用环境 -------- Gitea Web 地址:http://192.168.1.122:3000 目标组织:Shanghai-Wind-Season-Network 项目本地路径:Z:\SafeLine-9.3.9\SafeLine-9.3.9 当前 Gitea 仓库地址:http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git Git HTTP remote:http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git 访问令牌:b8b03d0cbc921ae2a540f0116f1e96f9b4396484 (只显示一次,用完建议在 Gitea 里删除重新生成) --- 一、准备 Gitea 仓库 ------------------ 1. 打开 http://192.168.1.122:3000 2. 登录账号 3. 在 Shanghai-Wind-Season-Network 组织下创建仓库 - 仓库名:SafeLine - **不要勾选**:初始化 README、初始化 .gitignore、初始化 License - 选择可见性:私有(推荐) --- 二、进入项目目录 -------------- ```powershell Set-Location Z:\SafeLine-9.3.9\SafeLine-9.3.9 ``` --- 三、初始化 Git 仓库(如果还没初始化) ------------------------------- ```powershell # 检查是否已有 .git ls -Force .git # 如果没有,初始化 git init git branch -m main ``` --- 四、配置 .gitignore(防止提交敏感文件) ------------------------------- ```powershell # 创建或更新 .gitignore cat > .gitignore << 'EOF' # 敏感配置 .env *.env .env.local .env.*.local # 数据库 *.db *.db-wal *.db-shm *.sqlite *.sqlite3 # 依赖目录 node_modules/ vendor/ # 构建产物 *.exe *.dll *.so *.dylib build/ dist/ out/ # IDE .idea/ .vscode/ *.swp *.swo # 日志 *.log logs/ # 临时文件 *.tmp *.temp .DS_Store Thumbs.db # 证书/密钥 *.pem *.key *.crt *.p12 *.pfx # Gitea token 等密钥 gitea-token.txt token.txt EOF ``` --- 五、配置 Git 用户信息 ------------------ ```powershell git config user.name "YourName" git config user.email "your@email.com" ``` --- 六、添加 Gitea remote ------------------- ```powershell # 检查现有 remote git remote -v # 如果没有 gitea remote,添加 git remote add gitea http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git # 如果已有但地址不对,修改 git remote set-url gitea http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git # 确认 git remote -v # 应该显示: # gitea http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git (fetch) # gitea http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git (push) ``` --- 七、检查工作区状态 --------------- ```powershell git status --short --branch ``` --- 八、提交所有修改 ------------- ```powershell # 暂存所有文件 git add -A # 查看将要提交的文件 git status # 提交 git commit -m "feat: SafeLine CE 9.3.9 with pro features - Remove telemetry: disabled all phone-home (installation notify, false positives, behavior tracking, upgrade tips) - Version branding: removed 'ce-' prefix, product name changed to '长亭雷池 WAF' - Detection engine enhancement: strict preset enables all 17 modules with aggressive configs - Multi-user RBAC: admin/operator/viewer roles with password + TOTP 2FA - Rate limiting: nginx limit_req per website (RPS, burst, action) - JS Challenge: browser fingerprint verification page with cookie-based bypass - Security fixes: removed InsecureSkipVerify, hardcoded credentials, NO_AUTH backdoor " ``` --- 九、推送到 Gitea(使用令牌认证) -------------------------- ### 方式 1:临时 Header 推送(推荐,不把令牌写入配置) ```powershell $token = "b8b03d0cbc921ae2a540f0116f1e96f9b4396484" $user = "YourGiteaUsername" $pair = "${user}:${token}" $basic = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($pair)) $header = "Authorization: Basic $basic" # 推送 git -c http.extraHeader="$header" -c http.postBuffer=524288000 -c http.version=HTTP/1.1 push -u gitea main ``` ### 方式 2:Git Credential Manager(会弹窗) ```powershell git push -u gitea main # 弹窗时: # 用户名:YourGiteaUsername # 密码:粘贴 b8b03d0cbc921ae2a540f0116f1e96f9b4396484 ``` --- 十、常见错误处理 -------------- | 错误 | 处理 | |------|------| | Authentication failed | 确认用户名和令牌正确,令牌有仓库写入权限 | | repository not found | 检查 remote 地址是否为 `http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git` | | rejected (remote has work) | `git pull --rebase gitea main` 后重新推送 | | RPC failed / postBuffer | 已在命令中加了 `-c http.postBuffer=524288000` | | Permission denied (Z盘) | 执行 `Get-ChildItem -LiteralPath ".git\objects\pack" -Force | ForEach-Object { $_.Attributes = $_.Attributes -band (-bnot [System.IO.FileAttributes]::ReadOnly) -band (-bnot [System.IO.FileAttributes]::Hidden) }` 然后 `git multi-pack-index write` | --- 十一、确认推送成功 -------------- 打开浏览器访问:http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine 查看最新提交是否出现。 本地验证: ```powershell git status --short --branch # 应该显示:## main...gitea/main ``` --- 十二、安全提醒 ------------ 1. ✅ 已使用临时 Header 推送,令牌未写入 remote URL 或 Git 配置 2. ✅ .gitignore 已忽略 .env、密钥、证书、数据库文件 3. 用完令牌后,建议在 Gitea 设置里删除旧令牌并重新生成 4. 不要把令牌发到聊天窗口、写进文件、提交到仓库 --- 完整一键推送脚本(复制到 PowerShell 执行) ----------------------------------- ```powershell Set-Location Z:\SafeLine-9.3.9\SafeLine-9.3.9 # 1. 配置用户信息(按需修改) git config user.name "YourName" git config user.email "your@email.com" # 2. 确保 .gitignore 存在 if (-not (Test-Path .gitignore)) { cat > .gitignore << 'EOF' .env *.env *.db *.db-* node_modules/ vendor/ build/ dist/ *.exe *.log logs/ .idea/ .vscode/ *.pem *.key *.crt gitea-token.txt EOF } # 3. 初始化/检查 Git if (-not (Test-Path .git)) { git init; git branch -m main } # 4. 配置 remote git remote remove gitea 2>$null git remote add gitea http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git # 5. 提交 git add -A git commit -m "feat: SafeLine CE 9.3.9 with pro features - Remove telemetry: disabled all phone-home (installation notify, false positives, behavior tracking, upgrade tips) - Version branding: removed 'ce-' prefix, product name changed to '长亭雷池 WAF' - Detection engine enhancement: strict preset enables all 17 modules with aggressive configs - Multi-user RBAC: admin/operator/viewer roles with password + TOTP 2FA - Rate limiting: nginx limit_req per website (RPS, burst, action) - JS Challenge: browser fingerprint verification page with cookie-based bypass - Security fixes: removed InsecureSkipVerify, hardcoded credentials, NO_AUTH backdoor " # 6. 推送(使用令牌) $token = "b8b03d0cbc921ae2a540f0116f1e96f9b4396484" $user = "YourGiteaUsername" $pair = "${user}:${token}" $basic = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($pair)) $header = "Authorization: Basic $basic" git -c http.extraHeader="$header" -c http.postBuffer=524288000 -c http.version=HTTP/1.1 push -u gitea main # 7. 验证 git status --short --branch ``` --- ⚠️ 执行前请修改脚本中的 `YourGiteaUsername` 和 `YourName/your@email.com`。生成完成。保存为 `Z:\SafeLine-9.3.9\SafeLine-9.3.9\GITEA-PUSH-GUIDE.md`。 **关键点:** 1. **目标仓库**:`http://192.168.1.122:3000/Shanghai-Wind-Season-Network/SafeLine.git` 2. **令牌**:`b8b03d0cbc921ae2a540f0116f1e91e96f9b4396484` 3. **推送方式**:临时 Header 认证(不写入配置/历史) 4. **需先在 Gitea 创建仓库**:组织 `Shanghai-Wind-Season-Network` 下新建 `SafeLine`,**不要勾选**初始化选项 执行前请将脚本中的 `YourGiteaUsername` 改为你的 Gitea 用户名,`YourName/your@email.com` 改为提交者信息。