From cdf0cbdfefef78e3d12fabaa805b15f327ac4f1e Mon Sep 17 00:00:00 2001 From: CI Bot Date: Mon, 13 Jul 2026 18:15:05 +0800 Subject: [PATCH] fix: use python script for downgrade to avoid heredoc issues --- .gitea/workflows/downgrade-runners.yml | 5 +- frontend-v21-ui-prototype-final.html | 6432 ++++++++++++++++++++++++ scripts/downgrade_v026.py | 117 + 3 files changed, 6551 insertions(+), 3 deletions(-) create mode 100755 frontend-v21-ui-prototype-final.html create mode 100755 scripts/downgrade_v026.py diff --git a/.gitea/workflows/downgrade-runners.yml b/.gitea/workflows/downgrade-runners.yml index ca1f8cb96..0179442c0 100644 --- a/.gitea/workflows/downgrade-runners.yml +++ b/.gitea/workflows/downgrade-runners.yml @@ -13,6 +13,5 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Downgrade all runners on new server to v0.2.6 - run: | - bash scripts/downgrade_runners_v026.sh + - name: Downgrade all runners to v0.2.6 host mode + run: python3 scripts/downgrade_v026.py diff --git a/frontend-v21-ui-prototype-final.html b/frontend-v21-ui-prototype-final.html new file mode 100755 index 000000000..15065f65a --- /dev/null +++ b/frontend-v21-ui-prototype-final.html @@ -0,0 +1,6432 @@ + + + + + +小虾智剪 - AI智能视频创作平台 + + + +
+
+ + + + + +
+ +
+
+
+
+ 🦐 小虾智剪 · AI智能视频创作平台 +

上传素材,AI自动剪辑
一键生成短视频

+

面向口播、产品介绍、直播切片和企业宣传的智能视频创作平台。素材管理、智能分类、一键生成、成片查重,全流程自动化处理。

+
+ + +
+
+
+
+
▶
+
+
+
+ ✨ AI智能剪辑 + ⚡ 30秒生成 +
+ 可发布 +
+

小虾智剪 让视频创作变得简单高效

+
+
+ +
+
+
🎬
+

AI智能剪辑

+

智能分析素材内容,自动匹配最佳剪辑方案,一键生成专业级短视频。

+
+
+
📦
+

素材自动分类

+

AI自动识别素材内容,智能打标签,支持视频、音频、图片统一管理。

+
+
+
✨
+

一键生成视频

+

选择模板和素材,系统自动完成剪辑、配音、字幕,30秒快速出片。

+
+
+
🔍
+

成片查重检测

+

智能检测视频相似度,支持MP4/AVI/MOV/MKV格式,确保内容原创性。

+
+
+ +
+
+

工作流程

+
+
+
+
1
+

上传素材

+

上传视频、音频、图片素材

+
+
+
2
+

AI分析

+

智能识别内容自动分类

+
+
+
3
+

智能剪辑

+

选择模板自动生成剪辑方案

+
+
+
4
+

一键导出

+

快速导出高质量成片

+
+
+
+ +
+
+

定价方案

+ +
+
+
+
入
+

体验版

+

免费体验基础功能

+
¥0 / 永久
+
+
✓ 1个工作空间
+
✓ 基础素材库管理
+
✓ 每月10次视频生成
+
+ +
+ +
+
专
+

专业版

+

适合团队高频创作

+
¥299 / 月
+
+
✓ 20个项目空间
+
✓ 5000条素材管理
+
✓ 每月1000次视频生成
+
+ +
+
+
企
+

企业版

+

专属定制服务

+
定制 / 方案
+
+
✓ 无限项目空间
+
✓ 私有化部署
+
✓ 专属技术支持
+
+ +
+
+
+ +
+

准备好开始了吗?

+

立即注册,体验AI智能视频创作的便捷

+ +
+
+
+ + +
+ +
+ + +
+
+
+
+ 订阅与定价 +

选择适合你的方案

+

从个人试用到团队批量生产,灵活选择,按需升级

+
+
+
+
+
入
+

体验版

+

适合先体验基础功能

+
¥0 / 永久免费
+
+
✓ 1个工作空间
+
✓ 基础素材库 / 标题库
+
✓ 每月10次视频生成
+
✓ 成片预览与下载
+
✓ 不含团队协作
+
+ +
+ +
+
专
+

专业版

+

适合高频创作团队

+
¥299 / 月
+
+
✓ 20个项目空间
+
✓ 5000条素材管理
+
✓ 每月1000次视频生成
+
✓ 高风险素材诊断
+
✓ 失败任务重试与协作
+
+ +
+
+
企
+

企业版

+

适合品牌和机构

+
定制 / 专属报价
+
+
✓ 无限项目与团队席位
+
✓ 私有化部署 / 专属存储
+
✓ 专属模板与品牌素材库
+
✓ API对接与权限审计
+
✓ 运维支持与SLA
+
+ +
+
+
+
+ + +
+
+ +
+
+
+

欢迎回来,演示用户 👋

+

今天是2024年,您有3个任务正在进行中

+
+ +
+ +
+
+
12
+
项目总数
+
↑ 2 本月新增
+
+
+
486
+
素材总数
+
↑ 38 本月上传
+
+
+
156
+
本月生成数
+
↑ 23% vs 上月
+
+
+
2.4GB
+
存储空间
+
已用 24%
+
+
+ +
+
+

最近任务

+ +
+
+
+
+

产品卖点混剪视频

+
一键生成 · 模板:画中画混剪
+
+ 已完成 +
+ 今天 14:32 + 耗时 28秒 +
+
+
+
+

直播切片成片

+
一键生成 · 模板:人物口播
+
+ 进行中 +
+ 今天 14:28 + 已耗时 2分钟 +
+
+
+
+

新品上市宣传片

+
一键生成 · 模板:品牌宣传
+
+ 已完成 +
+ 昨天 16:45 + 耗时 35秒 +
+
+
+
+ +
+
+

快速入口

+
+
+
+
📝
+

标题库

+

24条标题 · 5个分类

+
+
+
📦
+

素材库

+

486个素材 · 3个素材库

+
+
+
✨
+

一键生成

+

开始创作新视频

+
+
+
🎬
+

成片库

+

89个成片 · 3个待复核

+
+
+
+
+
+
+ + +
+
+ +
+
+
+

标题库

+

管理常用标题,生成时直接选择使用

+
+
+ + +
+
+
+
+
+

全部标题

+ 24 条 +
+
+

口播开场

+ 8 条 +
+
+

产品介绍

+ 6 条 +
+
+

教程类

+ 5 条 +
+
+

种草推荐

+ 3 条 +
+
+

直播引流

+ 2 条 +
+
+
+
+
3秒抓住注意力,30秒讲清卖点
+
+
+ 口播开场 + 使用 6 次 +
+
+ + + ★ +
+
+
+
+
新手也能看懂的自动剪辑教程
+
+
+ 教程类 + 使用 3 次 +
+ ☆ +
+
+
+
这款产品让效率提升10倍的秘密
+
+
+ 种草推荐 + 使用 4 次 +
+ ★ +
+
+
+
直播预告:今晚8点准时开始
+
+
+ 直播引流 + 使用 2 次 +
+ ☆ +
+
+
+
产品功能详解,看这一期就够了
+
+
+ 产品介绍 + 使用 5 次 +
+ ★ +
+
+
+
揭秘!达人都在用的剪辑技巧
+
+
+ 口播开场 + 使用 3 次 +
+ ☆ +
+
+
+
实测对比:传统方法VS智能剪辑
+
+
+ 种草推荐 + 使用 2 次 +
+ ★ +
+
+
+
如何使用小虾智剪快速生成视频
+
+
+ 教程类 + 使用 4 次 +
+ ☆ +
+
+
+
限时福利!今天下单立减100元
+
+
+ 直播引流 + 使用 1 次 +
+ ☆ +
+
+
+
+
+
+
+ + +
+
+ +
+
+
+

素材库

+

管理视频、音频、图片素材,AI自动分类

+
+
+ + +
+
+
+
+
+

直播切片素材库

+ 186 个素材 · 1.2GB +
+
+

产品展示素材库

+ 156 个素材 · 980MB +
+
+

用户反馈素材库

+ 144 个素材 · 320MB +
+
+
+
+
+
▶
+
+
+

主播口播开场.mp4

+
+ 视频 + 00:32 +
+ +
+
+
+
+
▶
+
+
+

产品特写镜头.mp4

+
+ 待复核 + 00:18 +
+ +
+
+
+
+
▶
+
+
+

用户评价片段.mp4

+
+ 已通过 + 00:25 +
+ +
+
+
+
+
▶
+
+
+

开箱展示.mp4

+
+ 视频 + 00:16 +
+ +
+
+
+
+
▶
+
+
+

使用场景演示.mp4

+
+ 已通过 + 00:22 +
+ +
+
+
+
+
▶
+
+
+

低清素材片段.mp4

+
+ 高风险 + 00:09 +
+ +
+
+
+
+
▶
+
+
+

直播高光时刻.mp4

+
+ 已通过 + 01:15 +
+ +
+
+
+
+
▶
+
+
+

产品细节特写.mp4

+
+ 视频 + 00:14 +
+ +
+
+
+
+
+
+
+ + +
+
+ +
+
+
+

配音库

+

管理配音素材,支持AI生成和手动创建

+
+
+ + + +
+
+
+
+
+

短视频带货配音

+ 8 条配音 +
+
+

知识分享配音

+ 5 条配音 +
+
+

品牌宣传配音

+ 3 条配音 +
+
+
+
+
🎙️
+
+

温柔女声 - 轻松种草

+
短视频带货配音 · 00:28 · 女声
+
+
+
+ +
+
+
+
🎙️
+
+

专业男声 - 产品介绍

+
品牌宣传配音 · 00:35 · 男声
+
+
+
+ +
+
+
+
🎙️
+
+

活力女声 - 直播预告

+
短视频带货配音 · 00:15 · 女声
+
+
+
+ +
+
+
+
🎙️
+
+

知性女声 - 知识讲解

+
知识分享配音 · 00:42 · 女声
+
+
+
+ +
+
+
+
🎙️
+
+

磁性男声 - 深度测评

+
知识分享配音 · 00:55 · 男声
+
+
+
+ +
+
+
+
+
+
+
+ + +
+
+ +
+
+
+

模板库

+

选择适合的模板,快速生成专业视频

+
+ +
+
+ +
+ + + + + +
+
+
+
+
+ PIP +
+
+

画中画混剪

+
+ 产品展示 + 使用 56 次 +
+ +
+
+
+
+ ONE +
+
+

一镜到底

+
+ 口播 + 使用 42 次 +
+ +
+
+
+
+ PER +
+
+

人物口播

+
+ 口播 + 使用 38 次 +
+ +
+
+
+
+ SUP +
+
+

种草推荐

+
+ 种草 + 使用 35 次 +
+ +
+
+
+
+ REV +
+
+

产品评测

+
+ 产品 + 使用 28 次 +
+ +
+
+
+
+ BRD +
+
+

品牌宣传

+
+ 品牌 + 使用 22 次 +
+ +
+
+
+
+ LIV +
+
+

直播切片

+
+ 直播 + 使用 48 次 +
+ +
+
+
+
+ TIP +
+
+

技巧教程

+
+ 教程 + 使用 18 次 +
+ +
+
+
+
+
+
+ + +
+
+ +
+
+
+

一键生成视频

+

选择模板和素材,系统自动完成剪辑

+
+ +
+ +
+
+
1
+ 选择模板 +
+ → +
+
2
+ 选择素材 +
+ → +
+
3
+ 选择标题 +
+ → +
+
4
+ 选择配音 +
+
+ +
+
+
+

🎨 选择模板

+
+
+ ✓ +
PIP
+

画中画混剪

+

产品展示 · 30秒

+
+
+ ✓ +
ONE
+

一镜到底

+

口播 · 45秒

+
+
+ ✓ +
PER
+

人物口播

+

知识分享 · 60秒

+
+
+
+ + + + + + + +
+ + +
+
+ +
+
+
▶
+
+
3秒抓住注意力,30秒讲清卖点
+
剪辑计划预览
+
+
+
1
+ 主讲口播 · 开场钩子 + 0-8s +
+
+
2
+ 产品特写 · B-roll + 8-20s +
+
+
3
+ 用户反馈 · 结尾 + 20-30s +
+
+
+ + +
+
+
+
+
+
+ + +
+
+ +
+
+
+

成片库

+

查看和管理生成的视频成品

+
+
+ + 已选 0 个视频 + + +
+
+
+
+ +
+
▶
+ 00:28 +
+
+

产品卖点混剪

+
+ 待复核 + 今天 14:28 +
+
+ + +
+
+
+
+ +
+
▶
+ 00:35 +
+
+

种草推荐视频

+
+ 可发布 + 昨天 16:45 +
+
+ + +
+
+
+
+ +
+
▶
+ 00:45 +
+
+

品牌宣传片

+
+ 可发布 + 昨天 11:20 +
+
+ + +
+
+
+
+ +
+
▶
+ 00:30 +
+
+

新品上市预告

+
+ 已下载 + 3天前 +
+
+ + +
+
+
+
+ +
+
▶
+ 00:22 +
+
+

技巧教程第一期

+
+ 可发布 + 5天前 +
+
+ + +
+
+
+
+ +
+
▶
+ 00:18 +
+
+

产品评测视频

+
+ 已下载 + 1周前 +
+
+ + +
+
+
+
+ +
已发布
+
+
▶
+ 00:32 +
+
+

直播切片成片_v2

+
+ 可发布 + 今天 14:32 +
+
+ + ✅ 已发布 +
+
+
+
+
+
▶
+ 00:40 +
+
+

直播高光合集

+
+ 可发布 + 1周前 +
+
+ + +
+
+
+
+
+
+
+ + +
+
+ +
+
+
+

任务历史

+

查看所有视频生成任务的执行记录

+
+
+
+
全部 (156)
+
进行中 (3)
+
已完成 (150)
+
失败 (3)
+
+
+
+
+

产品卖点混剪视频

+
一键生成 · 模板:画中画混剪
+
+ 已完成 +
+ 今天 14:32 + 耗时 28秒 +
+ +
+
+
+

直播切片成片

+
一键生成 · 模板:人物口播
+
+ 进行中 +
+ 今天 14:28 + 已耗时 2分钟 +
+ +
+
+
+

新品上市宣传片

+
一键生成 · 模板:品牌宣传
+
+ 已完成 +
+ 昨天 16:45 + 耗时 35秒 +
+ +
+
+
+

产品评测视频

+
一键生成 · 模板:产品评测
+
+ 失败 +
+ 昨天 10:30 + 失败 +
+ +
+
+
+

技巧教程第一期

+
一键生成 · 模板:技巧教程
+
+ 已完成 +
+ 3天前 15:20 + 耗时 42秒 +
+ +
+
+
+

直播高光合集

+
一键生成 · 模板:直播切片
+
+ 已完成 +
+ 5天前 11:15 + 耗时 55秒 +
+ +
+
+
+
+
+ + +
+
+ +
+
+
+

视频查重检测

+

上传视频文件,检测与现有视频的相似度

+
+
+
+
+
+
📤
+

拖拽上传视频文件

+

或点击选择文件上传

+
支持格式:MP4 / AVI / MOV / MKV,单文件 ≤ 2GB
+
+
+ + +
+
+
+
+

查重结果

+ 待检测 +
+
+
+
12%
+
相似度
+
+

该视频相似度较低,原创性良好

+
+
+

匹配的视频片段

+
+
▶
+
+

直播切片成片_v1.mp4

+

相似片段:0:08-0:12

+
+ 8% +
+
+
▶
+
+

产品卖点混剪.mp4

+

相似片段:0:22-0:25

+
+ 4% +
+
+ +
+
+
+
+
+
+ + + +
+
+ +
+
+
+

🎤 我的音色库

+

克隆和管理你的专属音色,用AI生成个性化配音

+
+ +
+ + +
+ +
+
+ + +
+
+
🎤
+
+

我的默认音色

+ 已就绪 +
+
+
+
🎵 时长:15秒
+
📅 创建于:2024年6月15日
+
+
+ + +
+
+ +
+ + + +
+
+
+ + + +
+
+ +
+
+
+

订阅管理

+

查看和管理您的订阅套餐

+
+
+ + +
+
+
+
+ 专业版 + 已激活 +
+

到期时间:2025年6月15日 · 自动续费

+
+
+ + + +
+
+
+ + +
+
+
🆓
+

免费版

+

入门体验

+
¥0/月
+
+
✓ 5个视频/月
+
✓ 基础剪辑功能
+
✓ 标准画质导出
+
✗ 无AI高级功能
+
+ +
+
+
⭐
+

个人进阶版

+

创作者首选

+
¥299/月
+
+
✓ 50个视频/月
+
✓ 高级剪辑功能
+
✓ 1080P高清导出
+
✓ AI智能剪辑
+
+ +
+ +
+
🏢
+

企业版

+

团队协作

+
¥1999/月
+
+
✓ 无限视频生成
+
✓ 团队协作空间
+
✓ API接口调用
+
✓ 专属客服支持
+
+ +
+
+ + +
+
+

账单记录

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
订单号套餐金额支付方式时间状态
ORD20240615001专业版(年付)¥1,299支付宝2024-06-15已支付
ORD20240615001专业版(年付)¥1,299支付宝2024-06-15已支付
ORD20230615001专业版(年付)¥1,199微信支付2023-06-15已支付
+
+
+
+
+
+ + +
+
+ +
+
+
+

🔑 账号管理

+

绑定您的社交平台账号,用于视频一键发布到各平台

+
+
+ +
+
+ +
+
+ 📱 +
+

抖音

+

Douyin

+
+
+
+ +
+
🎬
+
+
小虾智剪-官方号
+ 已连接 +
+ +
+ +
+
物
+
+
小虾智剪-好物推荐
+ 已连接 +
+ +
+
+ +
+ + +
+
+ 🎬 +
+

快手

+

Kuaishou

+
+
+
+ +
+
快
+
+
小虾智剪-快手
+ 已连接 +
+ +
+
+ +
+ + +
+
+ 📕 +
+

小红书

+

Xiaohongshu

+
+
+
+ +
+
📕
+
+
小虾智剪-种草号
+ 已连接 +
+ +
+
+ +
+ + +
+
+ 💬 +
+

微信视频号

+

WeChat Channels

+
+
+
+ +
+
🔓
+

暂未绑定账号

+
+
+ +
+
+ + +
+ 📊 + 已绑定 4 个账号 / 支持 4 个平台 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + +
+
+ ✂️ 剪辑计划编辑器 + 空白模板 + +
+
+ + +
+
+ + +
+ 剪辑模式: +
+ + + + +
+
+ + +
+ + +
+
+ 📋 已保存模板 + +
+ + +
+ 🔍 + +
+ + +
+ 全部 + 种草 + 知识 + 日常 + 推荐 +
+ + +
+ +
+
+ + +
+ + +
+ + +
+
🎬 视频预览
+
+
+ 9:41 + 📶 🔋 +
+
+
🎬
+
视频预览区域
+
画中画模式
+
+
+ +
+
00:00/02:00
+
+ +
+ 00:00 +
+
+
+ 02:00 +
+
+ + +
+
🖼️ 封面预览
+
+
+
+
+
👤
+
封面预览区
+
+
+
🤖 AI选帧
+
+ +
+ 🤖 AI选帧 + 👆 手动选 + 📤 上传 + 🔄 AI重选 +
+
+
+
+ + +
+
+
+ 🎬 时间线 + 总时长: 0:00 + +
+
+ + +
+
+ +
+ 0:00 + 0:30 + 1:00 + 1:30 +
+ +
+ +
+
+
+ + +
+
+ +
+
+ 📌 标题设置 +
+
+
+ +
+ +
+
+ + +
+
+ + +
+
+ + + 18px +
+
+ + + + +
+
💡 标题将贯穿整个视频显示
+
+
+ + +
+
+ 💬 字幕设置 +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ 🎵 BGM设置 +
+
+ +
+
+ + + +
+
+
+
+
+ + +
+ + + + + + + + + + + + + + + + diff --git a/scripts/downgrade_v026.py b/scripts/downgrade_v026.py new file mode 100755 index 000000000..7a9e95d76 --- /dev/null +++ b/scripts/downgrade_v026.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +"""将新服务器Runner全部降级为v0.2.6 host模式""" +import base64 +import subprocess +import sys + +NEW_SERVER = "172.30.18.199" +KEY_B64 = "b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZWQyNTUxOQAAACD6GquAk5vBEfbtaJCTSfnQEhjzC8e5GF60hSbPP0BJbAAAAJiQxGNokMRjaAAAAAtzc2gtZWQyNTUxOQAAACD6GquAk5vBEfbtaJCTSfnQEhjzC8e5GF60hSbPP0BJbAAAAED2muzuU4BAiCqbg0ayGxgiDvfS/xI1SFvb32oLzTnn8/oaq4CTm8ER9u1okJNJ+dASGPMLx7kYXrSFJs8/QElsAAAAFHJ1bm5lci1hZG1pbkB4aWFveGlhAQ==" +REG_TOKEN = "ZMFH02WcdElay5ATmhhQYe1WNTESO9XMXcF0H9Tj" +GITEA_URL = "https://git.xiaoxiajianji.com" +LABELS = "saas,runtime-builder,host,ubuntu-latest,ubuntu-22.04" + +# 写入密钥 +key_path = "/tmp/new_server_ed25519" +with open(key_path, "wb") as f: + f.write(base64.b64decode(KEY_B64)) +import os +os.chmod(key_path, 0o600) + +def ssh(cmd): + """执行SSH命令,返回输出""" + full_cmd = f'ssh -i {key_path} -o StrictHostKeyChecking=no -o ConnectTimeout=10 root@{NEW_SERVER} "{cmd}"' + print(f"\n$ {cmd[:80]}...") + result = subprocess.run(full_cmd, shell=True, capture_output=True, text=True) + if result.stdout: + print(result.stdout.strip()) + if result.stderr: + print("STDERR:", result.stderr.strip()[:200]) + if result.returncode != 0: + print(f" [RC={result.returncode}]") + return result + +def ssh_check(cmd): + """执行SSH命令,失败则退出""" + r = ssh(cmd) + if r.returncode != 0: + print(f"命令失败,退出") + sys.exit(1) + return r + +print("=" * 60) +print("步骤1: 停止所有现有Runner服务和进程") +print("=" * 60) +ssh("systemctl stop gitea-runner-1.service gitea-runner-2.service gitea-runner-3.service gitea-runner-4.service gitea-runner-5.service gitea-runner-6.service 2>/dev/null; systemctl disable gitea-runner-1.service gitea-runner-2.service gitea-runner-3.service gitea-runner-4.service gitea-runner-5.service gitea-runner-6.service 2>/dev/null; pkill -f act_runner 2>/dev/null; sleep 1; echo 'done'") + +print("\n" + "=" * 60) +print("步骤2: 备份现有配置") +print("=" * 60) +ssh_check("cp -r /opt/act-runner /opt/act-runner-backup-$(date +%Y%m%d%H%M) && echo backup_ok") + +print("\n" + "=" * 60) +print("步骤3: 下载v0.2.6 act_runner") +print("=" * 60) +ssh_check("cd /opt/act-runner && curl -sL -o act_runner_v0.2.6 https://gitea.com/gitea/act_runner/releases/download/v0.2.6/act_runner-0.2.6-linux-amd64 && chmod +x act_runner_v0.2.6 && ./act_runner_v0.2.6 --version") + +print("\n" + "=" * 60) +print("步骤4: 注册6个仓库级Runner (host模式)") +print("=" * 60) +for i in range(1, 7): + print(f"\n--- 注册 Runner {i} ---") + cmd = f""" + mkdir -p /opt/act-runner/runner-{i} + cd /opt/act-runner/runner-{i} + rm -f .runner config.yaml 2>/dev/null + /opt/act-runner/act_runner_v0.2.6 register \ + --instance {GITEA_URL} \ + --token {REG_TOKEN} \ + --name xiaoxia-ci-runner-new-{i} \ + --labels {LABELS} \ + --no-interactive 2>&1 + echo '---注册完成---' + """ + ssh(cmd.strip()) + +print("\n" + "=" * 60) +print("步骤5: 创建systemd服务") +print("=" * 60) +for i in range(1, 7): + service_file = f"/etc/systemd/system/act-runner-{i}.service" + service_content = f"""[Unit] +Description=Gitea Act Runner {i} +After=network.target + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/act-runner/runner-{i} +ExecStart=/opt/act-runner/act_runner_v0.2.6 daemon +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target +""" + # 用base64传内容避免转义问题 + content_b64 = base64.b64encode(service_content.encode()).decode() + ssh(f"echo {content_b64} | base64 -d > {service_file} && echo service_{i}_ok") + +print("\n" + "=" * 60) +print("步骤6: 启动所有Runner") +print("=" * 60) +start_cmd = """ +systemctl daemon-reload +for i in 1 2 3 4 5 6; do + systemctl enable act-runner-$i.service + systemctl start act-runner-$i.service + echo "act-runner-$i: $(systemctl is-active act-runner-$i.service)" +done +sleep 3 +echo "进程数: $(ps aux | grep act_runner_v0.2.6 | grep -v grep | wc -l)" +ps aux | grep act_runner_v0.2.6 | grep -v grep +""" +ssh(start_cmd.strip()) + +print("\n" + "=" * 60) +print("全部完成!") +print("=" * 60)