Compare commits

..
Author SHA1 Message Date
engine-labs-app[bot] ba8121f56f fix(app-metadata,compose): fix schema, deterministic generation and Docker Compose errors
This change addresses critical issues in app metadata schema, ensures deterministic
process-apps.py outputs, and corrects Docker Compose config errors for select apps.

- Ensures all apps' data.yml root and formFields schema required fields are present
- Fixes illegal Docker Compose fields (e.g. restart: no → "no", removes obsolete version fields)
- Removes illegal " = " in environment variable declarations
- Adds missing ports to env templates (e.g. zerotier)
- Resolves all validation, duplicate, tag, and basic resource consistency errors
- process-apps.py output is now idempotent and repeatable

Apps deploy and test through compose config without validation errors.
2025-10-27 03:11:36 +00:00
4407 changed files with 3968 additions and 27903 deletions
+1 -185
View File
@@ -15,7 +15,7 @@
> 即将支持应用商店: [CasaOS](https://casaos.io/)
>
> 欢迎投稿,我们会根据您的需求,上架更多的应用。
> t
>
> 🥰 [新疆萌森软件开发工作室](https://blog.lifebus.top/) 祝您生活愉快!
@@ -58,7 +58,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/bookstack/logo.png" width="22"/> | BookStack | https://www.bookstackapp.com/ | 一个用于存储和组织信息及文档的平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/certimate/logo.png" width="22"/> | Certimate | https://docs.certimate.me/ | SSL证书管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/chronoframe/logo.png" width="22"/> | ChronoFrame | https://chronoframe.bh8.ga/ | 照片展示和管理应用 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/clouddrive2/logo.png" width="22"/> | CloudDrive | https://www.clouddrive2.com | 多云盘管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/cloudreve/logo.png" width="22"/> | Cloudreve | https://cloudreve.org/ | 公私兼备的网盘系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/cloudsaver/logo.png" width="22"/> | CloudSaver | https://github.com/jiangrui1994/CloudSaver/ | 网盘资源搜索与转存工具 | |
@@ -86,7 +85,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/glance/logo.png" width="22"/> | Glance | https://github.com/glanceapp/glance/ | 一个自托管的仪表板,将所有您的订阅源放在一个地方 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/glean/logo.png" width="22"/> | Glean (拾灵) | https://github.com/LeslieLeung/glean/ | 一个自托管的 RSS 阅读器和个人知识管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/homarr/logo.png" width="22"/> | Homarr | https://homarr.dev/ | 一个时尚、现代化的仪表板 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/ikaros/logo.png" width="22"/> | ikaros | https://github.com/Suwmlee/ikaros/ | 打通下载软件与媒体服务,安心享受影片 | ikaros |
@@ -97,23 +95,19 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案,适用于远端数据库,远端机器学习 | Immich |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案,适用于作为远端机器学习使用 | Immich |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iyuu-plus/logo.png" width="22"/> | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jackett/logo.png" width="22"/> | Jackett | https://github.com/Jackett/Jackett/ | API支持您最喜爱的种子追踪器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iycms/logo.png" width="22"/> | 爱影CMS | https://www.iycms.com/ | 高性能高并发永久免费影视CMS | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyseerr/logo.png" width="22"/> | Jellyseerr | https://docs.jellyseerr.dev/ | 满足您所有媒体需求的一站式平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jproxy/logo.png" width="22"/> | JProxy | https://github.com/LuckyPuppy514/jproxy/ | 介于 Sonarr / Radarr 和 Jackett / Prowlarr 之间的代理,主要用于优化查询和提升识别率 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kavita/logo.png" width="22"/> | Kavita | https://www.kavitareader.com/ | 自托管数字图书馆 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kimai/logo.png" width="22"/> | Kimai | https://www.kimai.org/ | 基于网络的多用户时间追踪应用 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kirara-agent/logo.png" width="22"/> | Kirara Agent | https://kirara-docs.app.lss233.com/ | 一款支持主流大语言模型、主流聊天平台的聊天的机器人 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/komga/logo.png" width="22"/> | Komga | https://komga.org/ | 漫画、漫画、蓝光光盘、杂志和电子书的媒体服务器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kotatsu/logo.png" width="22"/> | Kotatsu | https://kotatsu.app/ | 口袋里的漫画 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kspeeder/logo.png" width="22"/> | KSpeeder | https://kspeeder.istoreos.com/ | Docker镜像加速专家 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/libretv/logo.png" width="22"/> | LibreTV | https://libretv.is-an.org/ | 免费在线视频搜索与观看平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/limesurvey/logo.png" width="22"/> | 问卷星 | https://www.limesurvey.org/ | 在线问卷调查程序 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/linkding/logo.png" width="22"/> | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/llonebot/logo.png" width="22"/> | LLTwoBot | https://llonebot.com/ | 一个使用 Nix 或 Docker 部署 LLOneBot 的安装。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/logto/logo.png" width="22"/> | Logto | https://logto.io/ | 开发者更好的身份基础设施,以及 Auth0 的开源替代方案。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/lucky/logo.png" width="22"/> | Lucky | https://lucky666.cn/ | 软硬路由公网神器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/maccms10/logo.png" width="22"/> | 苹果CMS V10 | https://www.maccms.la/ | 基于ThinkPHP和Layui的多功能开源免费内容管理系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mailserver/logo.png" width="22"/> | Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mdc-ng/logo.png" width="22"/> | MDC-NG | https://github.com/mdc-ng/mdc-ng/ | 成人电影数据采集工具 | |
@@ -130,7 +124,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/percona/logo.png" width="22"/> | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/n8n/logo.png" width="22"/> | n8n | https://n8n.io/ | 为技术团队提供安全的工作流自动化 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nacos/logo.png" width="22"/> | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/napcat/logo.png" width="22"/> | NapCat | https://napneko.github.io/ | 基于 NTQQ 的现代协议端框架 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/neko/logo.png" width="22"/> | Neko | https://neko.m1k1o.net/ | 虚拟浏览器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nexus3/logo.png" width="22"/> | Nexus3 | https://sonatype.com/ | Sonatype Nexus存储库 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nexusphp/logo.png" width="22"/> | NexusPHP | https://nexusphp.org/ | 完整的 PT 建站解决方案 | |
@@ -141,15 +134,12 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nodebb/logo.png" width="22"/> | NodeBB | https://nodebb.org/ | 一个更适合现代网络的社会平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nodepassdash/logo.png" width="22"/> | NodePassDash | https://github.com/NodePassProject/NodePassDash/ | 现代化的 NodePass 管理界面 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/ollama/logo.png" width="22"/> | Ollama | https://ollama.com/ | 一站式大模型部署平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/omnibox/logo.png" width="22"/> | OmniBox | https://hub.docker.com/r/lampon/omnibox/ | 影视站 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/onedev/logo.png" width="22"/> | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/open-webui/logo.png" width="22"/> | Open Webui | https://openwebui.com/ | 用户友好的 AI 界面 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/opengist/logo.png" width="22"/> | Opengist | https://opengist.io/ | 自托管的粘贴板,基于 Git,Github Gist 的开源替代品 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/openresty-manager/logo.png" width="22"/> | Openresty Manager | https://om.uusec.com/ | 主机管理面板 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/outline/logo.png" width="22"/> | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/overseerr/logo.png" width="22"/> | overseerr | https://docs.overseerr.dev/ | 管理您的媒体库请求 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/page-spy-web/logo.png" width="22"/> | PageSpy | https://www.pagespy.org/ | 开源调试平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/pansou/logo.png" width="22"/> | 盘搜 (PanSou) | https://so.252035.xyz/ | 高性能的网盘资源搜索API服务 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/paopao-ce/logo.png" width="22"/> | 泡泡(PaoPao) | https://www.paopao.info/ | 清新文艺微社区 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/peer-ban-helper/logo.png" width="22"/> | PeerBanHelper | https://github.com/PBH-BTN/PeerBanHelper/ | BT 反吸血工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/photoprism/logo.png" width="22"/> | PhotoPrism | https://www.photoprism.app/ | 面向去中心化网络的人工智能照片应用程序 | |
@@ -181,9 +171,7 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sonarr/logo.png" width="22"/> | sonarr | https://sonarr.tv/ | 智能 PVR 适用于新闻组和 BT 用户。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest-tracker/logo.png" width="22"/> | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/splayer/logo.png" width="22"/> | SPlayer | https://github.com/imsyy/SPlayer/ | 一个简约的音乐播放器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stash/logo.png" width="22"/> | Stash | https://stashapp.cc/ | 组织和刮削你的色情内容 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Rust-Rec | https://github.com/hua0512/rust-rec/ | Rust-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec Web版 | https://github.com/hua0512/stream-rec/ | 【前端版】Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec 服务版 | https://github.com/hua0512/stream-rec/ | 【服务版】Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
@@ -201,11 +189,9 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/topiam-ce/logo.png" width="22"/> | TOPIAM | https://topiam.cn/ | IAM/IDaaS 身份管理平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/traccar/logo.png" width="22"/> | Traccar 轨迹 | https://www.traccar.org/ | 现代 GPS 追踪系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/transmission/logo.png" width="22"/> | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/twikoo/logo.png" width="22"/> | Twikoo | http://twikoo.js.org/ | 静态网站评论系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/uptime-kuma/logo.png" width="22"/> | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/v2raya/logo.png" width="22"/> | v2rayA | https://v2raya.org/ | 一个易用而强大的,跨平台的 V2Ray 客户端 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/vertex/logo.png" width="22"/> | Vertex | https://github.com/vertex-app/vertex/ | 追剧刷流一体化综合管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/waline/logo.png" width="22"/> | Waline | https://waline.js.org/ | 卓越的静态站点评论系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/watchyourlan/logo.png" width="22"/> | 路由设备监控 | https://github.com/aceberg/WatchYourLAN/ | 轻量级网络 IP 扫描器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/weblate/logo.png" width="22"/> | Weblate | https://weblate.org/ | 高度集成了版本控制功能的web-based翻译工具 | |
@@ -213,7 +199,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/windows/logo.png" width="22"/> | Windows 系统 | https://www.microsoft.com/ | Docker 容器内的 Windows | OS |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/macos/logo.png" width="22"/> | Mac OS | https://www.apple.com/ | Docker 容器内的 Mac OS | OS |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/wiseflow/logo.png" width="22"/> | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/woodpecker/logo.png" width="22"/> | Woodpecker (啄木鸟) | https://woodpecker-ci.org/ | 啄木鸟是一个简单而强大的CI/CD引擎,具有很强的可扩展性 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/wukongim/logo.png" width="22"/> | 悟空IM | https://githubim.com/ | 让信息传递更简单 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/xunlei-cnk3x/logo.png" width="22"/> | 迅雷 NAS版 | https://github.com/cnk3x/xunlei/ | 迅雷远程下载服务 NAS移植版 | |
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
@@ -339,175 +324,6 @@ curl -sSL https://install.lifebus.top/pre_app_uninstall.sh | bash
curl -sSL https://install.lifebus.top/local_app_uninstall.sh | bash
```
## 1Panel v2 (自动同步)
由于官方不支持自动同步本地应用,每次都需要用户手动去点击同步按钮。我们多次提交过意见,奈何没有得到官方重视。因此出了这个折中方案。
### 前置条件
1. API 密钥
请前往 `面板设置` >> `API 接口` 中生成 `接口密钥` 有效期填写 `0` 长期有效,白名单可以填写 `127.0.0.1`
### 创建计划任务
请将 `API_KEY` `PANEL_PORT` 填写为正确的值即可
```bash
#!/bin/bash
#############################################
# 用户需填写的变量
#############################################
API_KEY="面板API密钥"
PANEL_HOST="127.0.0.1"
PANEL_PORT="面板访问端口"
# 两个接口地址(不用动)
API_SYNC_LOCAL="/api/v2/apps/sync/local"
API_READ_FILE="/api/v2/files/read"
#############################################
# 工具函数
#############################################
# 生成 UUIDLinux 通用方法)
gen_uuid() {
cat /proc/sys/kernel/random/uuid
}
# 生成 token
gen_token() {
local ts=$(date +%s)
local tk=$(echo -n "1panel${API_KEY}${ts}" | md5sum | awk '{print $1}')
echo "${tk},${ts}"
}
# 判断系统是否有 jq
HAS_JQ=0
if command -v jq >/dev/null 2>&1; then
HAS_JQ=1
fi
#############################################
# 主逻辑开始
#############################################
TASK_ID=$(gen_uuid)
echo "📌 生成 Task ID: ${TASK_ID}"
echo ""
TOKEN_INFO=$(gen_token)
TOKEN=$(echo "$TOKEN_INFO" | cut -d',' -f1)
TIMESTAMP=$(echo "$TOKEN_INFO" | cut -d',' -f2)
echo "📌 时间戳: $TIMESTAMP"
echo "📌 Token: $TOKEN"
echo ""
#################################################
# STEP 1 — 触发同步任务
#################################################
echo "🚀 STEP 1: 调用接口 1 开始同步任务..."
echo "POST http://${PANEL_HOST}:${PANEL_PORT}${API_SYNC_LOCAL}"
RESP1=$(curl -s -X POST "http://${PANEL_HOST}:${PANEL_PORT}${API_SYNC_LOCAL}" \
-H "1Panel-Token: ${TOKEN}" \
-H "1Panel-Timestamp: ${TIMESTAMP}" \
-H "Content-Type: application/json" \
-d "{\"taskID\":\"${TASK_ID}\"}")
echo "返回内容:$RESP1"
echo ""
CODE1=$(echo "$RESP1" | grep -o '"code":[0-9]*' | cut -d: -f2)
if [ "$CODE1" != "200" ]; then
echo "❌ 启动任务失败,停止执行!"
exit 1
fi
echo "✅ 任务启动成功!"
echo ""
#################################################
# STEP 2 — 轮询任务日志接口(含 jq / 无 jq 双模式)
#################################################
echo "🚀 STEP 2: 查询任务执行状态..."
echo "POST http://${PANEL_HOST}:${PANEL_PORT}${API_READ_FILE}"
echo ""
LAST_LINE_COUNT=0
while true; do
TOKEN_INFO=$(gen_token)
TOKEN=$(echo "$TOKEN_INFO" | cut -d',' -f1)
TIMESTAMP=$(echo "$TOKEN_INFO" | cut -d',' -f2)
RESP2=$(curl -s -X POST "http://${PANEL_HOST}:${PANEL_PORT}${API_READ_FILE}" \
-H "1Panel-Token: ${TOKEN}" \
-H "1Panel-Timestamp: ${TIMESTAMP}" \
-H "Content-Type: application/json" \
-d "{\"id\":0,\"type\":\"task\",\"name\":\"\",\"page\":1,\"pageSize\":500,\"latest\":true,\"taskID\":\"${TASK_ID}\",\"taskType\":\"\",\"taskOperate\":\"\",\"resourceID\":0}")
#############################################
# 有 jq:强力 JSON 解析模式
#############################################
if [ $HAS_JQ -eq 1 ]; then
mapfile -t LINES < <(echo "$RESP2" | jq -r '.data.lines[]')
TOTAL_LINES=${#LINES[@]}
if [ $TOTAL_LINES -gt $LAST_LINE_COUNT ]; then
for ((i=LAST_LINE_COUNT; i<TOTAL_LINES; i++)); do
echo "${LINES[$i]}"
done
LAST_LINE_COUNT=$TOTAL_LINES
fi
if echo "$RESP2" | jq -e '.data.lines[] | select(contains("[TASK-END]"))' >/dev/null; then
STATUS=$(echo "$RESP2" | jq -r '.data.taskStatus')
echo ""
echo "🎉🎉🎉 任务已结束!检测到 [TASK-END]"
echo "执行状态:$STATUS"
echo ""
exit 0
fi
#############################################
# 无 jq:兼容模式(grep + sed + awk
#############################################
else
LINES_BLOCK=$(echo "$RESP2" | sed -n '/"lines": \[/,/\]/p' | sed '1d;$d')
mapfile -t LINES < <(
echo "$LINES_BLOCK" |
sed 's/^[[:space:]]*"//;s/"[[:space:]]*,\?$//'
)
TOTAL_LINES=${#LINES[@]}
if [ $TOTAL_LINES -gt $LAST_LINE_COUNT ]; then
for ((i=LAST_LINE_COUNT; i<TOTAL_LINES; i++)); do
echo "${LINES[$i]}"
done
LAST_LINE_COUNT=$TOTAL_LINES
fi
echo "$LINES_BLOCK" | grep -q "\[TASK-END\]"
if [ $? -eq 0 ]; then
STATUS=$(echo "$RESP2" | grep -o '"taskStatus"[[:space:]]*:[[:space:]]*"[^"]*' | sed 's/.*"//')
echo ""
echo "🎉🎉🎉 任务已结束!检测到 [TASK-END]"
echo "执行状态:${STATUS:-Unknown}"
echo ""
exit 0
fi
fi
sleep 3
done
```
## DPanel 导入应用商店
> 温馨提示:
+15 -69
View File
@@ -25,16 +25,11 @@
"**/alist-aria2/**",
"**/alist-ffmpeg/**",
"**/homarr/0.15.10/**",
"**/minio/2025-04-22/**",
"**/transmission/2.94/**",
"**/rustfs/1.0.0-alpha.86/**"
"**/minio/2025-04-22/**"
],
"packageRules": [
{
"matchUpdateTypes": [
"patch",
"minor"
],
{
"matchUpdateTypes": ["patch", "minor"],
"automerge": true,
"automergeType": "pr",
"platformAutomerge": true,
@@ -42,9 +37,7 @@
"prCreation": "immediate"
},
{
"matchUpdateTypes": [
"major"
],
"matchUpdateTypes": ["major"],
"automerge": false
},
{
@@ -257,29 +250,24 @@
],
"allowedVersions": "<2.0.0"
},
{
"matchPackageNames": [
"umamisoftware/umami"
],
"versionCompatibility": "^(?<compatibility>.*)-(?<version>.*)$",
"versioning": "semver"
},
{
"matchFileNames": [
"apps/umami/2.16.0/*.yml"
"apps/umami*/2.16.0/*.yml"
],
"allowedVersions": "<=2.16.0"
},
{
"matchFileNames": [
"apps/umami/2.20.0/*.yml"
"apps/umami*/2.16.1/*.yml"
],
"allowedVersions": "<=2.20.0"
},
{
"matchFileNames": [
"apps/umami-mysql/2.16.0/*.yml"
],
"allowedVersions": "<=2.16.0"
},
{
"matchFileNames": [
"apps/umami-mysql/2.20.0/*.yml"
],
"allowedVersions": "<=2.20.0"
"allowedVersions": ">=2.16.1"
},
{
"matchDatasources": [
@@ -312,13 +300,7 @@
"matchFileNames": [
"apps/ani-rss/2.*.*/*.yml"
],
"allowedVersions": "<4.0"
},
{
"matchFileNames": [
"apps/ani-rss/3.*.*/*.yml"
],
"allowedVersions": "<4.0"
"allowedVersions": ">=2.0"
},
{
"matchFileNames": [
@@ -356,42 +338,6 @@
"apps/seaweedfs/**/docker-compose.yml"
],
"enabled": false
},
{
"matchFileNames": [
"apps/mediacms/4.*.*/*.yml"
],
"allowedVersions": "/^4.*.*/"
},
{
"matchFileNames": [
"apps/lucky/2.20.*/*.yml"
],
"allowedVersions": "<2.23.1"
},
{
"matchFileNames": [
"apps/outline/1.2.*/*.yml"
],
"allowedVersions": "<1.3.0"
},
{
"matchFileNames": [
"apps/lucky/2.*.*/*.yml"
],
"allowedVersions": "<3.0.0"
},
{
"matchFileNames": [
"apps/ech0/3.*.*/*.yml"
],
"allowedVersions": "<4.0.0"
},
{
"matchFileNames": [
"apps/omnibox/1.*.*/*.yml"
],
"allowedVersions": "<2.0.0"
}
],
"prCreation": "immediate"
+74 -101
View File
@@ -2,7 +2,7 @@ name: Auto Process Renovate PRs
on:
pull_request:
types: [ opened, synchronize, reopened, ready_for_review ]
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:
schedule:
- cron: '0 * * * *'
@@ -15,7 +15,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
@@ -36,6 +36,7 @@ jobs:
import requests
from typing import Optional, Dict, Any
# 从环境变量获取GitHub token和仓库信息
GITHUB_TOKEN = os.getenv('GITHUB_TOKEN')
REPOSITORY = os.getenv('GITHUB_REPOSITORY')
HEADERS = {
@@ -58,113 +59,99 @@ jobs:
def parse_version_update(pr_body: str) -> Optional[str]:
"""解析PR正文,确定更新类型"""
# 匹配Markdown表格格式
# 示例格式:
# | Package | Update | Change |
# |---------|--------|--------|
# | [uusec/openresty-manager](...) | patch | `2.3.4` -> `2.3.5` |
# 查找表格行
lines = pr_body.split('\n')
in_table = False
for line in lines:
# 检测表格开始
if re.search(r'^\s*\|.*Package.*Update.*Change.*\|\s*$', line, re.IGNORECASE):
in_table = True
continue
# 跳过表格分隔线
if in_table and re.search(r'^\s*\|[-:|]+\|\s*$', line):
continue
# 处理表格数据行
if in_table and line.strip().startswith('|'):
# 提取单元格内容
cells = [cell.strip() for cell in line.split('|') if cell.strip()]
if len(cells) >= 3:
update_type = cells[1].lower()
update_type = cells[1].lower() # 第二列是更新类型
# 检查更新类型
if update_type == 'major':
return 'major'
elif update_type in ['minor', 'patch']:
return update_type
change_cell = cells[2]
# 如果没有明确类型,尝试从版本变化中推断
change_cell = cells[2] # 第三列是版本变化
# 提取版本号
version_pattern = r'(\d+\.\d+\.\d+|\d+\.\d+|\d+)'
versions = re.findall(version_pattern, change_cell)
if len(versions) >= 2:
old_parts = versions[0].split('.')
new_parts = versions[1].split('.')
if old_parts[0] != new_parts[0]:
return 'major'
elif len(old_parts) > 1 and len(new_parts) > 1 and old_parts[1] != new_parts[1]:
return 'minor'
else:
return 'patch'
old_version = versions[0]
new_version = versions[1]
# 分割版本号
old_parts = old_version.split('.')
new_parts = new_version.split('.')
if len(old_parts) > 0 and len(new_parts) > 0:
if old_parts[0] != new_parts[0]:
return 'major'
elif len(old_parts) > 1 and len(new_parts) > 1 and old_parts[1] != new_parts[1]:
return 'minor'
else:
return 'patch'
elif in_table and not line.strip().startswith('|'):
# 表格结束
break
return None
def is_rebase_checkbox_unchecked(pr_body: str) -> bool:
"""
检查 PR body 中的 rebase checkbox 是否存在且未勾选。
Renovate 在 PR body 中插入如下格式的行:
- [ ] <!-- rebase-check --> If you want to rebase/retry this PR, check this box.
勾选后变为:
- [x] <!-- rebase-check --> If you want to rebase/retry this PR, check this box.
"""
# 匹配未勾选状态
unchecked_pattern = r'-\s*\[\s*\]\s*<!--\s*rebase-check\s*-->'
return bool(re.search(unchecked_pattern, pr_body, re.IGNORECASE))
def trigger_renovate_rebase(pr_number: int, pr_body: str) -> bool:
"""
通过将 PR body 中的 rebase checkbox 从未勾选改为勾选,
触发 Renovate 自动 rebase/retry。
返回是否成功更新。
"""
unchecked_pattern = r'(-\s*\[)\s*(\]\s*<!--\s*rebase-check\s*-->)'
new_body = re.sub(
unchecked_pattern,
r'\1x\2',
pr_body,
flags=re.IGNORECASE
)
if new_body == pr_body:
print(f"PR #{pr_number} 未找到可勾选的 rebase checkbox,无法触发 rebase")
return False
url = f'https://api.github.com/repos/{REPOSITORY}/pulls/{pr_number}'
data = {'body': new_body}
response = requests.patch(url, headers=HEADERS, json=data)
if response.status_code == 200:
print(f"PR #{pr_number} 已勾选 rebase checkboxRenovate 将自动触发 rebase/retry")
return True
else:
print(f"PR #{pr_number} 更新 body 失败: {response.status_code} {response.text}")
return False
def is_pr_mergeable(pr_number: int) -> bool:
"""检查PR是否可以合并"""
url = f'https://api.github.com/repos/{REPOSITORY}/pulls/{pr_number}'
response = requests.get(url, headers=HEADERS)
response.raise_for_status()
pr_data = response.json()
# 检查合并状态
return pr_data.get('mergeable', False) and pr_data.get('mergeable_state', '') == 'clean'
def wait_for_checks(pr_number: int, max_wait: int = 600) -> bool:
"""等待检查通过,最多等待max_wait秒"""
start_time = time.time()
while time.time() - start_time < max_wait:
if is_pr_mergeable(pr_number):
return True
# 等待30秒后再次检查
time.sleep(30)
return False
def merge_pr(pr_number: int) -> bool:
"""合并PR"""
url = f'https://api.github.com/repos/{REPOSITORY}/pulls/{pr_number}/merge'
data = {'merge_method': 'merge'}
data = {
'merge_method': 'merge'
}
response = requests.put(url, headers=HEADERS, json=data)
if response.status_code == 200:
print(f"成功合并PR #{pr_number}")
return True
@@ -184,51 +171,33 @@ jobs:
pr_number = pr['number']
pr_author = pr['user']['login']
pr_title = pr['title']
pr_body = pr.get('body', '') or ''
pr_body = pr.get('body', '')
print(f"处理PR #{pr_number} 来自 {pr_author}: {pr_title}")
# 解析更新类型
update_type = parse_version_update(pr_body)
if not update_type:
print(f"无法确定PR #{pr_number} 的更新类型,跳过")
add_comment(pr_number, "⚠️ 自动处理失败: 无法确定更新类型")
return
print(f"PR #{pr_number} 更新类型: {update_type}")
# 如果是大版本更新,跳过
if update_type == 'major':
print(f"PR #{pr_number} 是大版本更新,跳过")
add_comment(pr_number, "⏭️ 自动跳过: 大版本更新需要手动审核")
return
# 检查PR是否可以合并
if not wait_for_checks(pr_number):
print(f"PR #{pr_number} 在等待时间内未通过检查")
# 判断 rebase checkbox 是否存在且未勾选
if is_rebase_checkbox_unchecked(pr_body):
print(f"PR #{pr_number} 检测到未勾选的 rebase checkbox,尝试触发 rebase...")
triggered = trigger_renovate_rebase(pr_number, pr_body)
if triggered:
add_comment(
pr_number,
"🔄 自动触发 Rebase: 检查超时,已自动勾选 rebase checkbox"
"Renovate 将重新触发 rebase/retry,下次调度时将再次尝试合并。"
)
else:
add_comment(
pr_number,
"⏰ 自动跳过: 在等待时间内未通过所有检查,且无法触发 rebase,请手动处理。"
)
else:
# checkbox 不存在或已经勾选过(Renovate 还在处理中)
add_comment(
pr_number,
"⏰ 自动跳过: 在等待时间内未通过所有检查,"
"rebase checkbox 不存在或已触发,请稍后等待 Renovate 处理或手动介入。"
)
print(f"PR #{pr_number} 在等待时间内未通过检查,跳过")
add_comment(pr_number, "⏰ 自动跳过: 在等待时间内未通过所有检查")
return
# 尝试合并PR
if merge_pr(pr_number):
add_comment(pr_number, "✅ 自动合并: 小版本更新已自动合并")
else:
@@ -237,18 +206,22 @@ jobs:
def main():
"""主函数"""
try:
# 获取所有PR
prs = get_prs()
print(f"找到 {len(prs)} 个打开的PR")
# 筛选Renovate的PR
renovate_prs = [pr for pr in prs if is_renovate_pr(pr)]
print(f"找到 {len(renovate_prs)} 个Renovate/Mend的PR")
# 处理每个PR
for pr in renovate_prs:
try:
process_pr(pr)
except Exception as e:
print(f"处理PR #{pr['number']} 时出错: {str(e)}")
# 继续处理下一个PR
except Exception as e:
print(f"处理PR时发生错误: {str(e)}")
raise
@@ -1,231 +0,0 @@
name: Auto Process Renovate PRs
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:
schedule:
- cron: '0 * * * *'
jobs:
process-renovate-prs:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
run: pip install requests
- name: Process Renovate PRs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python << 'EOF'
import os
import re
import time
import requests
from typing import Optional, Dict, Any
# 从环境变量获取GitHub token和仓库信息
GITHUB_TOKEN = os.getenv('GITHUB_TOKEN')
REPOSITORY = os.getenv('GITHUB_REPOSITORY')
HEADERS = {
'Authorization': f'Bearer {GITHUB_TOKEN}',
'Accept': 'application/vnd.github.v3+json',
'X-GitHub-Api-Version': '2022-11-28'
}
def get_prs() -> list:
"""获取所有打开的PR列表"""
url = f'https://api.github.com/repos/{REPOSITORY}/pulls?state=open'
response = requests.get(url, headers=HEADERS)
response.raise_for_status()
return response.json()
def is_renovate_pr(pr: Dict[str, Any]) -> bool:
"""检查PR是否来自Renovate"""
author = pr.get('user', {}).get('login', '').lower()
return 'renovate' in author or 'mend' in author
def parse_version_update(pr_body: str) -> Optional[str]:
"""解析PR正文,确定更新类型"""
# 匹配Markdown表格格式
# 示例格式:
# | Package | Update | Change |
# |---------|--------|--------|
# | [uusec/openresty-manager](...) | patch | `2.3.4` -> `2.3.5` |
# 查找表格行
lines = pr_body.split('\n')
in_table = False
for line in lines:
# 检测表格开始
if re.search(r'^\s*\|.*Package.*Update.*Change.*\|\s*$', line, re.IGNORECASE):
in_table = True
continue
# 跳过表格分隔线
if in_table and re.search(r'^\s*\|[-:|]+\|\s*$', line):
continue
# 处理表格数据行
if in_table and line.strip().startswith('|'):
# 提取单元格内容
cells = [cell.strip() for cell in line.split('|') if cell.strip()]
if len(cells) >= 3:
update_type = cells[1].lower() # 第二列是更新类型
# 检查更新类型
if update_type == 'major':
return 'major'
elif update_type in ['minor', 'patch']:
return update_type
# 如果没有明确类型,尝试从版本变化中推断
change_cell = cells[2] # 第三列是版本变化
# 提取版本号
version_pattern = r'(\d+\.\d+\.\d+|\d+\.\d+|\d+)'
versions = re.findall(version_pattern, change_cell)
if len(versions) >= 2:
old_version = versions[0]
new_version = versions[1]
# 分割版本号
old_parts = old_version.split('.')
new_parts = new_version.split('.')
if len(old_parts) > 0 and len(new_parts) > 0:
if old_parts[0] != new_parts[0]:
return 'major'
elif len(old_parts) > 1 and len(new_parts) > 1 and old_parts[1] != new_parts[1]:
return 'minor'
else:
return 'patch'
elif in_table and not line.strip().startswith('|'):
# 表格结束
break
return None
def is_pr_mergeable(pr_number: int) -> bool:
"""检查PR是否可以合并"""
url = f'https://api.github.com/repos/{REPOSITORY}/pulls/{pr_number}'
response = requests.get(url, headers=HEADERS)
response.raise_for_status()
pr_data = response.json()
# 检查合并状态
return pr_data.get('mergeable', False) and pr_data.get('mergeable_state', '') == 'clean'
def wait_for_checks(pr_number: int, max_wait: int = 600) -> bool:
"""等待检查通过,最多等待max_wait秒"""
start_time = time.time()
while time.time() - start_time < max_wait:
if is_pr_mergeable(pr_number):
return True
# 等待30秒后再次检查
time.sleep(30)
return False
def merge_pr(pr_number: int) -> bool:
"""合并PR"""
url = f'https://api.github.com/repos/{REPOSITORY}/pulls/{pr_number}/merge'
data = {
'merge_method': 'merge'
}
response = requests.put(url, headers=HEADERS, json=data)
if response.status_code == 200:
print(f"成功合并PR #{pr_number}")
return True
else:
print(f"合并PR #{pr_number} 失败: {response.json().get('message', '未知错误')}")
return False
def add_comment(pr_number: int, comment: str):
"""在PR上添加评论"""
url = f'https://api.github.com/repos/{REPOSITORY}/issues/{pr_number}/comments'
data = {'body': comment}
response = requests.post(url, headers=HEADERS, json=data)
response.raise_for_status()
def process_pr(pr: Dict[str, Any]):
"""处理单个PR"""
pr_number = pr['number']
pr_author = pr['user']['login']
pr_title = pr['title']
pr_body = pr.get('body', '')
print(f"处理PR #{pr_number} 来自 {pr_author}: {pr_title}")
# 解析更新类型
update_type = parse_version_update(pr_body)
if not update_type:
print(f"无法确定PR #{pr_number} 的更新类型,跳过")
add_comment(pr_number, "⚠️ 自动处理失败: 无法确定更新类型")
return
print(f"PR #{pr_number} 更新类型: {update_type}")
# 如果是大版本更新,跳过
if update_type == 'major':
print(f"PR #{pr_number} 是大版本更新,跳过")
add_comment(pr_number, "⏭️ 自动跳过: 大版本更新需要手动审核")
return
# 检查PR是否可以合并
if not wait_for_checks(pr_number):
print(f"PR #{pr_number} 在等待时间内未通过检查,跳过")
add_comment(pr_number, "⏰ 自动跳过: 在等待时间内未通过所有检查")
return
# 尝试合并PR
if merge_pr(pr_number):
add_comment(pr_number, "✅ 自动合并: 小版本更新已自动合并")
else:
add_comment(pr_number, "❌ 自动合并失败: 请手动处理")
def main():
"""主函数"""
try:
# 获取所有PR
prs = get_prs()
print(f"找到 {len(prs)} 个打开的PR")
# 筛选Renovate的PR
renovate_prs = [pr for pr in prs if is_renovate_pr(pr)]
print(f"找到 {len(renovate_prs)} 个Renovate/Mend的PR")
# 处理每个PR
for pr in renovate_prs:
try:
process_pr(pr)
except Exception as e:
print(f"处理PR #{pr['number']} 时出错: {str(e)}")
# 继续处理下一个PR
except Exception as e:
print(f"处理PR时发生错误: {str(e)}")
raise
if __name__ == '__main__':
main()
EOF
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@v5
- name: Setup Python
uses: actions/setup-python@v6
@@ -9,7 +9,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v5
with:
ref: appstore
@@ -11,7 +11,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v5
with:
ref: custom
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
fetch-depth: 0
+2 -2
View File
@@ -14,9 +14,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Run Renovate
uses: renovatebot/github-action@957af03d760b2c87fc65cb95628f6d5f95d9c578 # v46.0.0
uses: renovatebot/github-action@53bdcc4ec92f28e5023ac92356ea8bb45f8b807d # v43.0.15
with:
useSlim: false
token: ${{ secrets.GITHUBTOKEN }}
-15
View File
@@ -53,7 +53,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/bookstack/logo.png" width="22"/> | BookStack | https://www.bookstackapp.com/ | 一个用于存储和组织信息及文档的平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/certimate/logo.png" width="22"/> | Certimate | https://docs.certimate.me/ | SSL证书管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/chronoframe/logo.png" width="22"/> | ChronoFrame | https://chronoframe.bh8.ga/ | 照片展示和管理应用 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/clouddrive2/logo.png" width="22"/> | CloudDrive | https://www.clouddrive2.com | 多云盘管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/cloudreve/logo.png" width="22"/> | Cloudreve | https://cloudreve.org/ | 公私兼备的网盘系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/cloudsaver/logo.png" width="22"/> | CloudSaver | https://github.com/jiangrui1994/CloudSaver/ | 网盘资源搜索与转存工具 | |
@@ -81,7 +80,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/glance/logo.png" width="22"/> | Glance | https://github.com/glanceapp/glance/ | 一个自托管的仪表板,将所有您的订阅源放在一个地方 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/glean/logo.png" width="22"/> | Glean (拾灵) | https://github.com/LeslieLeung/glean/ | 一个自托管的 RSS 阅读器和个人知识管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/homarr/logo.png" width="22"/> | Homarr | https://homarr.dev/ | 一个时尚、现代化的仪表板 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/ikaros/logo.png" width="22"/> | ikaros | https://github.com/Suwmlee/ikaros/ | 打通下载软件与媒体服务,安心享受影片 | ikaros |
@@ -92,23 +90,19 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案,适用于远端数据库,远端机器学习 | Immich |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案,适用于作为远端机器学习使用 | Immich |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iyuu-plus/logo.png" width="22"/> | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jackett/logo.png" width="22"/> | Jackett | https://github.com/Jackett/Jackett/ | API支持您最喜爱的种子追踪器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iycms/logo.png" width="22"/> | 爱影CMS | https://www.iycms.com/ | 高性能高并发永久免费影视CMS | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyseerr/logo.png" width="22"/> | Jellyseerr | https://docs.jellyseerr.dev/ | 满足您所有媒体需求的一站式平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jproxy/logo.png" width="22"/> | JProxy | https://github.com/LuckyPuppy514/jproxy/ | 介于 Sonarr / Radarr 和 Jackett / Prowlarr 之间的代理,主要用于优化查询和提升识别率 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kavita/logo.png" width="22"/> | Kavita | https://www.kavitareader.com/ | 自托管数字图书馆 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kimai/logo.png" width="22"/> | Kimai | https://www.kimai.org/ | 基于网络的多用户时间追踪应用 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kirara-agent/logo.png" width="22"/> | Kirara Agent | https://kirara-docs.app.lss233.com/ | 一款支持主流大语言模型、主流聊天平台的聊天的机器人 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/komga/logo.png" width="22"/> | Komga | https://komga.org/ | 漫画、漫画、蓝光光盘、杂志和电子书的媒体服务器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kotatsu/logo.png" width="22"/> | Kotatsu | https://kotatsu.app/ | 口袋里的漫画 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/kspeeder/logo.png" width="22"/> | KSpeeder | https://kspeeder.istoreos.com/ | Docker镜像加速专家 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/libretv/logo.png" width="22"/> | LibreTV | https://libretv.is-an.org/ | 免费在线视频搜索与观看平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/limesurvey/logo.png" width="22"/> | 问卷星 | https://www.limesurvey.org/ | 在线问卷调查程序 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/linkding/logo.png" width="22"/> | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/llonebot/logo.png" width="22"/> | LLTwoBot | https://llonebot.com/ | 一个使用 Nix 或 Docker 部署 LLOneBot 的安装。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/logto/logo.png" width="22"/> | Logto | https://logto.io/ | 开发者更好的身份基础设施,以及 Auth0 的开源替代方案。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/lucky/logo.png" width="22"/> | Lucky | https://lucky666.cn/ | 软硬路由公网神器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/maccms10/logo.png" width="22"/> | 苹果CMS V10 | https://www.maccms.la/ | 基于ThinkPHP和Layui的多功能开源免费内容管理系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mailserver/logo.png" width="22"/> | Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mdc-ng/logo.png" width="22"/> | MDC-NG | https://github.com/mdc-ng/mdc-ng/ | 成人电影数据采集工具 | |
@@ -125,7 +119,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/percona/logo.png" width="22"/> | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/n8n/logo.png" width="22"/> | n8n | https://n8n.io/ | 为技术团队提供安全的工作流自动化 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nacos/logo.png" width="22"/> | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/napcat/logo.png" width="22"/> | NapCat | https://napneko.github.io/ | 基于 NTQQ 的现代协议端框架 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/neko/logo.png" width="22"/> | Neko | https://neko.m1k1o.net/ | 虚拟浏览器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nexus3/logo.png" width="22"/> | Nexus3 | https://sonatype.com/ | Sonatype Nexus存储库 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nexusphp/logo.png" width="22"/> | NexusPHP | https://nexusphp.org/ | 完整的 PT 建站解决方案 | |
@@ -136,15 +129,12 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nodebb/logo.png" width="22"/> | NodeBB | https://nodebb.org/ | 一个更适合现代网络的社会平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nodepassdash/logo.png" width="22"/> | NodePassDash | https://github.com/NodePassProject/NodePassDash/ | 现代化的 NodePass 管理界面 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/ollama/logo.png" width="22"/> | Ollama | https://ollama.com/ | 一站式大模型部署平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/omnibox/logo.png" width="22"/> | OmniBox | https://hub.docker.com/r/lampon/omnibox/ | 影视站 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/onedev/logo.png" width="22"/> | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/open-webui/logo.png" width="22"/> | Open Webui | https://openwebui.com/ | 用户友好的 AI 界面 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/opengist/logo.png" width="22"/> | Opengist | https://opengist.io/ | 自托管的粘贴板,基于 Git,Github Gist 的开源替代品 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/openresty-manager/logo.png" width="22"/> | Openresty Manager | https://om.uusec.com/ | 主机管理面板 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/outline/logo.png" width="22"/> | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/overseerr/logo.png" width="22"/> | overseerr | https://docs.overseerr.dev/ | 管理您的媒体库请求 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/page-spy-web/logo.png" width="22"/> | PageSpy | https://www.pagespy.org/ | 开源调试平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/pansou/logo.png" width="22"/> | 盘搜 (PanSou) | https://so.252035.xyz/ | 高性能的网盘资源搜索API服务 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/paopao-ce/logo.png" width="22"/> | 泡泡(PaoPao) | https://www.paopao.info/ | 清新文艺微社区 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/peer-ban-helper/logo.png" width="22"/> | PeerBanHelper | https://github.com/PBH-BTN/PeerBanHelper/ | BT 反吸血工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/photoprism/logo.png" width="22"/> | PhotoPrism | https://www.photoprism.app/ | 面向去中心化网络的人工智能照片应用程序 | |
@@ -176,9 +166,7 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sonarr/logo.png" width="22"/> | sonarr | https://sonarr.tv/ | 智能 PVR 适用于新闻组和 BT 用户。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest-tracker/logo.png" width="22"/> | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/splayer/logo.png" width="22"/> | SPlayer | https://github.com/imsyy/SPlayer/ | 一个简约的音乐播放器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stash/logo.png" width="22"/> | Stash | https://stashapp.cc/ | 组织和刮削你的色情内容 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Rust-Rec | https://github.com/hua0512/rust-rec/ | Rust-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec Web版 | https://github.com/hua0512/stream-rec/ | 【前端版】Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec 服务版 | https://github.com/hua0512/stream-rec/ | 【服务版】Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
@@ -196,11 +184,9 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/topiam-ce/logo.png" width="22"/> | TOPIAM | https://topiam.cn/ | IAM/IDaaS 身份管理平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/traccar/logo.png" width="22"/> | Traccar 轨迹 | https://www.traccar.org/ | 现代 GPS 追踪系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/transmission/logo.png" width="22"/> | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/twikoo/logo.png" width="22"/> | Twikoo | http://twikoo.js.org/ | 静态网站评论系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/uptime-kuma/logo.png" width="22"/> | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/v2raya/logo.png" width="22"/> | v2rayA | https://v2raya.org/ | 一个易用而强大的,跨平台的 V2Ray 客户端 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/vertex/logo.png" width="22"/> | Vertex | https://github.com/vertex-app/vertex/ | 追剧刷流一体化综合管理工具 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/waline/logo.png" width="22"/> | Waline | https://waline.js.org/ | 卓越的静态站点评论系统 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/watchyourlan/logo.png" width="22"/> | 路由设备监控 | https://github.com/aceberg/WatchYourLAN/ | 轻量级网络 IP 扫描器 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/weblate/logo.png" width="22"/> | Weblate | https://weblate.org/ | 高度集成了版本控制功能的web-based翻译工具 | |
@@ -208,7 +194,6 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/windows/logo.png" width="22"/> | Windows 系统 | https://www.microsoft.com/ | Docker 容器内的 Windows | OS |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/macos/logo.png" width="22"/> | Mac OS | https://www.apple.com/ | Docker 容器内的 Mac OS | OS |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/wiseflow/logo.png" width="22"/> | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/woodpecker/logo.png" width="22"/> | Woodpecker (啄木鸟) | https://woodpecker-ci.org/ | 啄木鸟是一个简单而强大的CI/CD引擎,具有很强的可扩展性 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/wukongim/logo.png" width="22"/> | 悟空IM | https://githubim.com/ | 让信息传递更简单 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/xunlei-cnk3x/logo.png" width="22"/> | 迅雷 NAS版 | https://github.com/cnk3x/xunlei/ | 迅雷远程下载服务 NAS移植版 | |
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
-1
View File
@@ -75,4 +75,3 @@ ORM,模板渲染使用Smarty3.1以及PHP原生渲染,会话保持全程使
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -4
View File
@@ -1,4 +1,4 @@
additionalProperties:
additionalProperties:
key: acg-faka
name: 异次元店铺系统V3
tags:
@@ -13,6 +13,3 @@ additionalProperties:
website: https://faka.wiki/
github: https://github.com/lizhipay/acg-faka/
document: https://faka.wiki/
architectures:
- amd64
- arm64
-41
View File
@@ -1,41 +0,0 @@
additionalProperties:
formFields:
- default: "1panel-network"
edit: true
envKey: NETWORK_MODE
labelEn: Drive path
labelZh: 网络模式
required: true
type: select
values:
- label: 主机网络模式
value: "host"
- label: 桥接网络模式
value: "bridge"
- label: 无网络模式
value: "none"
- label: 1panel-network
value: "1panel-network"
- default: "/home/adguardhome"
edit: true
envKey: ADGUARDHOME_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 3000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: 53
edit: true
envKey: PANEL_APP_PORT_DNS
labelZh: DNS 端口
labelEn: DNS port
required: true
rule: paramPort
type: number
@@ -1,24 +0,0 @@
networks:
1panel-network:
external: true
services:
adguardhome:
image: adguard/adguardhome:v0.107.77
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
network_mode: ${NETWORK_MODE}
ports:
- ${PANEL_APP_PORT_HTTP}:3000
- ${PANEL_APP_PORT_DNS}:53/tcp
- ${PANEL_APP_PORT_DNS}:53/udp
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${ADGUARDHOME_ROOT_PATH}/workdir:/my/own/workdir
- ${ADGUARDHOME_ROOT_PATH}/confdir:/my/own/confdir
environment:
- TZ=Asia/Shanghai
-31
View File
@@ -1,31 +0,0 @@
# Adguard Home
简短的介绍
![Adguard Home](https://file.lifebus.top/imgs/adguardhome_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 简介
AdGuard Home 是一种基于网络的广告和跟踪器拦截解决方案。只需在您的路由器上安装一次,即可覆盖您家庭网络中的所有设备——无需额外的客户端软件。这对于各种经常威胁您隐私的物联网设备尤其重要。
## 安装说明
### 默认 DNS
需要提前关闭宿主机 `resolved` 功能,否则会导致 DNS 解析失败。
```sh
systemctl disable systemd-resolved
systemctl stop systemd-resolved
```
### 初始化配置
安装后进入页面后,必须将 80 端口改为 3000 否则,结束后 页面将无法访问。
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-17
View File
@@ -1,17 +0,0 @@
additionalProperties:
key: adguardhome
name: Adguard Home
tags:
- WebSite
- Local
shortDescZh: 广告卫士之家
shortDescEn: Adguard Home
type: website
crossVersionUpdate: true
limit: 0
website: https://adguard.com/
github: https://github.com/AdguardTeam/AdGuardHome/
document: https://adguard.com/
architectures:
- amd64
- arm64
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

-1
View File
@@ -14,4 +14,3 @@ AFFiNE 是一个开源的全能工作空间和操作系统,用于组装您的
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-4
View File
@@ -12,7 +12,3 @@ additionalProperties:
website: https://affine.pro/
github: https://github.com/toeverything/AFFiNE/
document: https://docs.affine.pro/docs/code-of-conduct/
architectures:
- amd64
- arm
- arm64
-1
View File
@@ -106,4 +106,3 @@ location / {
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -9
View File
@@ -1,4 +1,4 @@
additionalProperties:
additionalProperties:
key: alist-aria2
name: Alist Aira2插件版
tags:
@@ -13,11 +13,3 @@ additionalProperties:
website: https://alist.nn.ci/
github: https://github.com/alist-org/alist/
document: https://alist.nn.ci/guide/
architectures:
- '386'
- amd64
- arm
- arm64
- ppc64le
- riscv64
- s390x
-1
View File
@@ -106,4 +106,3 @@ location / {
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -9
View File
@@ -1,4 +1,4 @@
additionalProperties:
additionalProperties:
key: alist-ffmpeg
name: Alist FFMpeg插件版
tags:
@@ -13,11 +13,3 @@ additionalProperties:
website: https://alist.nn.ci/
github: https://github.com/alist-org/alist/
document: https://alist.nn.ci/guide/
architectures:
- '386'
- amd64
- arm
- arm64
- ppc64le
- riscv64
- s390x
-1
View File
@@ -104,4 +104,3 @@ location / {
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -9
View File
@@ -1,4 +1,4 @@
additionalProperties:
additionalProperties:
key: alist
name: OpenList (Alist)
tags:
@@ -13,11 +13,3 @@ additionalProperties:
website: https://docs.oplist.org/
github: https://github.com/OpenListTeam/OpenList
document: https://docs.oplist.org/
architectures:
- '386'
- amd64
- arm
- arm64
- ppc64le
- riscv64
- s390x
@@ -4,7 +4,7 @@ networks:
services:
ammds:
image: qyg2297248353/ammds:v1.6.57-ol8
image: qyg2297248353/ammds:v1.6.28-ol8
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
-1
View File
@@ -75,4 +75,3 @@ AMMDSAdult Movie MetaData Scraper)是一款私人专属数据管理平台
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-3
View File
@@ -12,6 +12,3 @@ additionalProperties:
website: https://ammds.lifebus.top/
github: https://github.com/QYG2297248353/AMMDS-Docker/
document: https://ammds.lifebus.top/
architectures:
- amd64
- arm64
@@ -4,7 +4,7 @@ networks:
services:
ammds:
image: qyg2297248353/ammds:v1.6.57
image: qyg2297248353/ammds:v1.6.28
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
-1
View File
@@ -75,4 +75,3 @@ AMMDSAdult Movie MetaData Scraper)是一款私人专属数据管理平台
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-3
View File
@@ -12,6 +12,3 @@ additionalProperties:
website: https://ammds.lifebus.top/
github: https://github.com/QYG2297248353/AMMDS-Docker/
document: https://ammds.lifebus.top/
architectures:
- amd64
- arm64
@@ -4,7 +4,7 @@ networks:
services:
ani-rss:
image: wushuo894/ani-rss:v3.0.14
image: wushuo894/ani-rss:v2.3.6
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
-1
View File
@@ -15,4 +15,3 @@
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -4
View File
@@ -1,4 +1,4 @@
additionalProperties:
additionalProperties:
key: ani-rss
name: ANI-RSS
tags:
@@ -13,6 +13,3 @@ additionalProperties:
website: https://docs.wushuo.top/
github: https://github.com/wushuo894/ani-rss/
document: https://docs.wushuo.top/
architectures:
- amd64
- arm64
-65
View File
@@ -1,65 +0,0 @@
# Apifox Runner
自动化测试定时任务、接口导入、Mock 服务
![Apifox Runner](https://file.lifebus.top/imgs/apifox_runner_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 简介
API 设计、开发、测试一体化协作平台
Apifox = Postman + Swagger + Mock + JMeter
一套系统、一份数据,解决多个 API 工具之间的数据同步问题
只要定义好 API 文档,API 调试、API Mock、API 自动化测试即可直接使用,无需再次定义。
API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确!
## 特性
- [x] 可视化 API 设计
- [x] 比 Postman 更强大
- [x] 零门槛实现自动化测试
- [x] 分享&发布 API 文档
- [x] 零配置 Mock 数据
- [x] CI/CD 持续集成
- [x] 数据库操作
- [x] 团队协作
- [x] 支持 HTTP、TCP、RPC
- [x] 数据导入/导出
- [x] 自动生成代码
## 安装说明
### 版本说明
- `latest`:通用版
包含 Runner 所有功能,及以下外部程序语言环境:Nodejs 18,Java 21,Python 3,PHP 8
- `slim`:精简版
在精简版中,包含 Runner 所有功能,及以下外部程序语言环境:Nodejs 18
### 应用服务地址
默认值:`https://api.apifox.cn`
部署时推荐填写公网地址,以保证应用在团队中正常运行。
### 访问令牌 (Access Token)
请在ApiFox客户端,前往主窗口 `团队资源` >> `通用 Runner` 获取访问令牌
### 团队 ID (Team ID)
请在ApiFox客户端,前往主窗口 `团队设置` 获取团队 ID
### Runner ID
请在ApiFox客户端,前往主窗口 `团队资源` >> `通用 Runner` 获取 Runner ID
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-15
View File
@@ -1,15 +0,0 @@
additionalProperties:
key: apifox-runner-team
name: Apifox Runner (团队版)
tags:
- Runtime
- Local
shortDescZh: 自动化测试定时任务、接口导入、Mock 服务
shortDescEn: Automated testing, scheduled tasks, interface import, Mock service
type: runtime
crossVersionUpdate: true
limit: 0
website: https://apifox.com/
github: https://apifox.com/
document: https://apifox.com/help/
architectures: []
-45
View File
@@ -1,45 +0,0 @@
additionalProperties:
formFields:
- default: "/home/apifox-runner"
edit: true
envKey: APIFOX_RUNNER_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 4524
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: "https://api.apifox.cn"
edit: true
envKey: SERVER_APP_BASE_URL
labelZh: 应用服务地址
labelEn: App Server address
required: true
type: text
- default: ""
edit: true
envKey: ACCESS_TOKEN
labelZh: 访问令牌
labelEn: Access Token
required: true
type: text
- default: 0
edit: true
envKey: TEAM_ID
labelZh: 团队 ID
labelEn: Team ID
required: true
type: number
- default: 0
edit: true
envKey: RUNNER_ID
labelZh: Runner ID
labelEn: Runner ID
required: true
type: number
@@ -1,22 +0,0 @@
networks:
1panel-network:
external: true
services:
apifox-runner:
image: registry.cn-hangzhou.aliyuncs.com/apifox/self-hosted-general-runner
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:4524
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${APIFOX_RUNNER_ROOT_PATH}/runner:/opt/runner
environment:
- TZ=Asia/Shanghai
Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

-45
View File
@@ -1,45 +0,0 @@
additionalProperties:
formFields:
- default: "/home/apifox-runner"
edit: true
envKey: APIFOX_RUNNER_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 4524
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: "https://api.apifox.cn"
edit: true
envKey: SERVER_APP_BASE_URL
labelZh: 应用服务地址
labelEn: App Server address
required: true
type: text
- default: ""
edit: true
envKey: ACCESS_TOKEN
labelZh: 访问令牌
labelEn: Access Token
required: true
type: text
- default: 0
edit: true
envKey: TEAM_ID
labelZh: 团队 ID
labelEn: Team ID
required: true
type: number
- default: 0
edit: true
envKey: RUNNER_ID
labelZh: Runner ID
labelEn: Runner ID
required: true
type: number
@@ -1,22 +0,0 @@
networks:
1panel-network:
external: true
services:
apifox-runner:
image: registry.cn-hangzhou.aliyuncs.com/apifox/self-hosted-general-runner:slim
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:4524
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${APIFOX_RUNNER_ROOT_PATH}/runner:/opt/runner
environment:
- TZ=Asia/Shanghai
+1 -10
View File
@@ -1,4 +1,4 @@
# Apifox Runner (组织版)
# Apifox Runner
自动化测试定时任务、接口导入、Mock 服务
@@ -33,14 +33,6 @@ API 文档和 API 开发调试使用同一个工具,API 调试完成后即可
## 安装说明
### 版本说明
- `latest`:通用版
包含 Runner 所有功能,及以下外部程序语言环境:Nodejs 18,Java 21,Python 3,PHP 8
- `slim`:精简版
在精简版中,包含 Runner 所有功能,及以下外部程序语言环境:Nodejs 18
### 应用服务地址
默认值:`https://api.apifox.cn`
@@ -62,4 +54,3 @@ API 文档和 API 开发调试使用同一个工具,API 调试完成后即可
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -2
View File
@@ -1,6 +1,6 @@
additionalProperties:
key: apifox-runner
name: Apifox Runner (组织版)
name: Apifox Runner
tags:
- Runtime
- Local
@@ -12,4 +12,3 @@ additionalProperties:
website: https://apifox.com/
github: https://apifox.com/
document: https://apifox.com/help/
architectures: []
+3 -3
View File
@@ -31,9 +31,9 @@ additionalProperties:
type: text
- default: 0
edit: true
envKey: ORGANIZATION_ID
labelZh: 组织 ID
labelEn: Organization ID
envKey: TEAM_ID
labelZh: 团队 ID
labelEn: Team ID
required: true
type: number
- default: 0
-45
View File
@@ -1,45 +0,0 @@
additionalProperties:
formFields:
- default: "/home/apifox-runner"
edit: true
envKey: APIFOX_RUNNER_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 4524
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: "https://api.apifox.cn"
edit: true
envKey: SERVER_APP_BASE_URL
labelZh: 应用服务地址
labelEn: App Server address
required: true
type: text
- default: ""
edit: true
envKey: ACCESS_TOKEN
labelZh: 访问令牌
labelEn: Access Token
required: true
type: text
- default: 0
edit: true
envKey: ORGANIZATION_ID
labelZh: 组织 ID
labelEn: Organization ID
required: true
type: number
- default: 0
edit: true
envKey: RUNNER_ID
labelZh: Runner ID
labelEn: Runner ID
required: true
type: number
@@ -1,22 +0,0 @@
networks:
1panel-network:
external: true
services:
apifox-runner:
image: registry.cn-hangzhou.aliyuncs.com/apifox/self-hosted-general-runner:slim
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:4524
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${APIFOX_RUNNER_ROOT_PATH}/runner:/opt/runner
environment:
- TZ=Asia/Shanghai
-27
View File
@@ -1,27 +0,0 @@
networks:
1panel-network:
external: true
services:
apprise:
image: caronc/apprise:v1.5.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:8000
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${APPRISE_ROOT_PATH}/config:/config
- ${APPRISE_ROOT_PATH}/plugin:/plugin
- ${APPRISE_ROOT_PATH}/attach:/attach
environment:
- TZ=Asia/Shanghai
- APPRISE_STATEFUL_MODE=simple
- APPRISE_WORKER_COUNT=1
- APPRISE_ADMIN=y
-33
View File
@@ -1,33 +0,0 @@
# Apprise
适用于几乎所有平台的推送通知
![Apprise](https://file.lifebus.top/imgs/apprise_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 简介
Apprise 是一款强大的开源通知推送工具,旨在通过统一的接口连接几乎所有的主流通知平台。
## 特性
### 平台全覆盖
支持超过 100 种服务,包括:
- 即时通讯:WeChat (企业微信), Discord, Telegram, Slack, Matrix。
- 手机推送:Pushover, Pushbullet, Bark。
- 基础服务:Email (SMTP), SMS, MQTT, JSON Webhooks。
### 多端调用
提供 Python 库、CLI 命令行工具 以及可独立部署的 API 微服务(Docker 镜像)。
### 轻量高效
无繁重的依赖,支持异步发送,性能极佳。
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-17
View File
@@ -1,17 +0,0 @@
additionalProperties:
key: apprise
name: Apprise
tags:
- WebSite
- Local
shortDescZh: 适用于几乎所有平台的推送通知
shortDescEn: Push Notifications that work with just about every platform
type: website
crossVersionUpdate: true
limit: 0
website: https://appriseit.com/
github: https://github.com/caronc/apprise
document: https://appriseit.com/
architectures:
- amd64
- arm64
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

-13
View File
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 277.59448 111.57756" version="1.1" id="svg" xml:space="preserve">
<metadata id="metadata">© 2025 Chris Caron. All rights reserved. Apprise logo and associated marks. https://github.com/caronc/apprise</metadata>
<defs id="defs"/>
<g id="apprise-logo" fill="#2cb6a6" stroke="none">
<g id="waves" fill="#9ca3af">
<path d="M 58.5161 1.51744e-05 L 58.5161 0.249673 C 65.5093 1.23163 72.8492 4.66497 79.1067 7.92743 C 86.2234 11.6378 93.0347 16.2483 98.1138 22.7189 C 112.391 40.9077 111.936 70.6294 98.1016 88.8783 C 91.192 97.9925 80.0423 103.811 69.7691 107.773 C 66.1074 109.185 62.1622 110.802 58.2767 111.348 C 59.4189 111.847 60.668 111.382 61.8681 111.351 C 65.4311 111.26 68.9197 110.757 72.4028 109.956 C 87.6485 106.449 102.176 96.1845 108.454 80.8893 C 116.572 61.1109 115.698 35.3681 101.333 18.7244 C 95.8244 12.3428 88.8962 7.51541 81.2616 4.35651 C 74.1 1.39334 66.1971 0.0052955 58.5161 1.51744e-05 Z" id="wave-l"/>
<path d="M 60.9104 1.51744e-05 L 60.9104 0.249673 C 67.9036 1.23163 75.2435 4.66497 81.501 7.92743 C 88.6177 11.6378 95.429 16.2483 100.508 22.7189 C 114.785 40.9077 114.33 70.6294 100.496 88.8783 C 93.5863 97.9925 82.4366 103.811 72.1634 107.773 C 68.5017 109.185 64.5564 110.802 60.6709 111.348 C 61.8132 111.847 63.0623 111.382 64.2623 111.351 C 67.8253 111.26 71.314 110.757 74.7971 109.956 C 90.0427 106.449 104.57 96.1845 110.848 80.8893 C 118.966 61.1109 118.092 35.3681 103.727 18.7244 C 98.2186 12.3428 91.2905 7.51541 83.6558 4.35651 C 76.4942 1.39334 68.5914 0.0052955 60.9104 1.51744e-05 Z" id="wave-r"/>
</g>
<path d="M 218.063 73.4672 L 215.417 81.1401 C 225.338 85.2706 246.374 87.6043 246.374 71.6151 C 246.374 69.7157 246.099 67.8284 245.38 66.0589 C 242.196 58.2309 232.572 59.6909 227.335 54.654 C 225.406 52.7978 225.583 49.9928 228.118 48.7469 C 230.24 47.7036 233.258 47.8889 235.526 48.2669 C 237.659 48.6224 239.546 49.6189 241.611 50.1839 L 244.257 42.7756 C 235.301 38.0059 216.278 38.1682 216.211 52.036 C 216.203 53.6748 216.201 55.2346 216.764 56.7985 C 219.913 65.5376 230.776 63.2108 235.686 69.4995 C 237.858 72.2816 235.516 75.1667 232.615 75.875 C 227.664 77.084 222.563 75.3382 218.063 73.4672 M 97.1487 41.4526 L 97.1487 83.5214 L 106.674 83.5214 L 106.674 69.2339 C 112.542 69.2339 119.325 69.272 124.401 65.8607 C 131.078 61.373 131.645 49.2371 125.195 44.2383 C 117.475 38.2556 105.995 40.7545 97.1487 41.4526 M 132.074 41.4526 L 132.074 83.5214 L 141.599 83.5214 L 141.599 69.2339 C 147.467 69.2339 154.25 69.272 159.326 65.8607 C 166.003 61.373 166.57 49.2371 160.12 44.2383 C 152.4 38.2556 140.92 40.7545 132.074 41.4526 M 166.999 41.4526 L 166.999 83.5214 L 176.524 83.5214 L 176.524 67.911 C 177.86 67.911 180.021 67.4994 181.21 68.1829 C 186.258 71.0852 186.809 79.464 190.979 83.0972 C 191.734 83.7549 193.061 83.5214 193.986 83.5214 L 201.659 83.5214 C 199.737 76.8492 194.355 71.8474 191.34 65.7943 C 200.87 63.9568 201.454 49.3892 194.78 44.2385 C 187.097 38.3092 175.786 40.7592 166.999 41.4526 M 203.247 40.9235 L 203.247 83.5214 L 212.772 83.5214 L 212.772 40.9235 Z M 249.284 40.9235 L 249.284 83.5214 L 277.595 83.5214 L 277.595 75.3193 L 258.809 75.3193 L 258.809 65.2652 L 275.742 65.2652 L 275.742 57.3277 L 258.809 57.3277 L 258.809 49.1256 L 277.595 49.1256 L 277.595 40.9235 Z M 106.674 61.0318 L 106.674 48.5964 C 109.89 48.5964 113.736 48.0562 116.728 49.4967 C 120.262 51.1983 121.114 57.015 117.761 59.4157 C 114.72 61.5935 110.191 61.0318 106.674 61.0318 M 141.599 61.0318 L 141.599 48.5964 C 144.815 48.5964 148.661 48.0562 151.653 49.4967 C 155.187 51.1983 156.039 57.015 152.686 59.4157 C 149.645 61.5935 145.116 61.0318 141.599 61.0318 M 176.524 60.2381 L 176.524 48.5964 C 179.853 48.5964 183.805 48.0899 186.842 49.765 C 190.179 51.6054 190.343 56.8817 187.106 58.9166 C 184.136 60.7837 179.858 60.2381 176.524 60.2381 Z" id="wordmark"/>
<path d="M 17.4579 39.9885 C 19.9573 50.3664 20.8801 61.6722 22.2204 72.2676 L 38.8891 69.8864 C 36.2588 74.1833 33.6106 78.4801 31.1047 82.851 C 30.0752 84.6467 28.2247 86.8178 28.0728 88.9364 C 27.8021 92.7123 35.521 97.2699 38.597 94.6529 C 40.3444 93.1662 41.5006 90.3795 42.6329 88.4072 C 44.8211 84.5955 47.1682 80.8932 49.2689 77.0301 C 50.1557 75.3994 51.7663 70.9032 53.7164 70.4668 C 55.6526 70.0335 58.4446 71.2858 60.3204 71.7385 C 67.3547 73.436 74.3012 76.543 80.4287 80.3577 C 83.4605 82.2451 88.0584 86.3575 91.1039 82.0532 C 92.1197 80.6175 91.7629 78.9129 91.5412 77.2947 C 91.0692 73.8501 90.4815 70.423 90.0282 66.976 C 88.1925 53.0152 85.8226 39.1246 83.943 25.1718 C 83.4125 21.2339 83.4376 16.1679 81.977 12.472 C 81.3751 10.9491 79.7869 9.96016 78.1597 9.95787 C 74.9703 9.95337 73.3123 13.3391 71.4092 15.3822 C 67.3017 19.792 62.8603 23.7387 57.9391 27.2107 C 45.6111 35.9082 32.0739 38.1397 17.4579 39.9885 M 74.0787 34.1677 L 76.9891 61.9489 L 56.8808 61.9489 C 59.5885 55.4795 64.1791 49.3716 67.8812 43.4281 C 69.6944 40.5171 71.4629 36.3932 74.0787 34.1677 M 14.0183 72.7968 C 13.2093 62.546 11.4037 51.9493 9.52036 41.8406 C 0.437735 44.7157 -2.2689 56.9039 1.93012 64.5947 C 4.47809 69.2616 8.93882 71.8112 14.0183 72.7968 Z" id="mark"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB

-9
View File
@@ -1,9 +0,0 @@
additionalProperties:
formFields:
- default: "/home/archisteamfarm"
edit: true
envKey: ARCHISTEAMFARM_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
@@ -1,22 +0,0 @@
networks:
1panel-network:
external: true
services:
archisteamfarm:
image: justarchi/archisteamfarm:6.3.6.1
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${ARCHISTEAMFARM_ROOT_PATH}/config:/app/config
- ${ARCHISTEAMFARM_ROOT_PATH}/plugins:/app/plugins
- ${ARCHISTEAMFARM_ROOT_PATH}/logs:/app/logs
environment:
- TZ=Asia/Shanghai
-39
View File
@@ -1,39 +0,0 @@
# ArchiSteamFarm
ArchiSteamFarm (简称 ASF) 是一款用 C# 编写的开源、跨平台 Steam 挂卡与自动化工具。它能在不启动官方 Steam
客户端的情况下,同时为多个账号挂机获得集换式卡牌、提升游戏时长,并支持自动交易、激活 Key 等功能,适合在服务器、NAS 或电脑上后台运行。
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 简介
### 全自动挂卡 (Farming)
自动模拟游戏运行,高效获取 Steam 卡牌,速度快且不需真实运行游戏。
### 多账号同时挂机
支持管理无限数量的 Steam 账号。
### 无需安装 Steam
不需要后台运行 Steam 客户端,节省资源。
### 跨平台
兼容 Windows、Linux、macOS。
### 自动化功能
+ 自动领取免费授权 (addlicense) 和商店物品。
+ 自动处理礼物、交易报价。
+ 作为移动令牌 (2FA) 自动处理确认请求。
### 安全
提供基于 GitHub 的开源社区支持,安全性高。
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-18
View File
@@ -1,18 +0,0 @@
additionalProperties:
key: archisteamfarm
name: ArchiSteamFarm
tags:
- WebSite
- Local
shortDescZh: Steam 挂卡与自动化工具
shortDescEn: Steam card farming and automation tool
type: website
crossVersionUpdate: true
limit: 0
website: https://github.com/JustArchiNET/ArchiSteamFarm/
github: https://github.com/JustArchiNET/ArchiSteamFarm/
document: https://github.com/JustArchiNET/ArchiSteamFarm/
architectures:
- amd64
- arm64
- arm/v7
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@@ -4,7 +4,7 @@ networks:
services:
archivebox:
image: archivebox/archivebox:0.7.4
image: archivebox/archivebox:0.7.3
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
@@ -4,7 +4,7 @@ networks:
services:
archivebox:
image: archivebox/archivebox:0.8.5rc9
image: archivebox/archivebox:0.8.5rc51
depends_on:
- archivebox-init
container_name: ${CONTAINER_NAME}
@@ -29,7 +29,7 @@ services:
- SEARCH_BACKEND_PASSWORD=${ADMIN_PASSWORD:-}
archivebox-init:
image: archivebox/archivebox:0.8.5rc9
image: archivebox/archivebox:0.8.5rc51
container_name: init-${CONTAINER_NAME}
labels:
createdBy: "Apps"
-1
View File
@@ -21,4 +21,3 @@ Facebook/Insta/Flickr 上的照片或 YouTube/Soundcloud 等媒体资源、保
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
-3
View File
@@ -12,6 +12,3 @@ additionalProperties:
website: https://archivebox.io/
github: https://github.com/ArchiveBox/ArchiveBox/
document: https://github.com/ArchiveBox/ArchiveBox/
architectures:
- amd64
- arm64
-1
View File
@@ -46,4 +46,3 @@
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -5
View File
@@ -1,4 +1,4 @@
additionalProperties:
additionalProperties:
key: aria2-superng6
name: Aria2 Superng6版
tags:
@@ -13,7 +13,3 @@ additionalProperties:
website: https://github.com/SuperNG6/docker-aria2/
github: https://github.com/aria2/aria2/
document: https://github.com/SuperNG6/docker-aria2/
architectures:
- amd64
- arm
- arm64
-1
View File
@@ -93,4 +93,3 @@ Artalk 是一款简单易用但功能丰富的评论系统,你可以开箱即
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+1 -4
View File
@@ -1,4 +1,4 @@
additionalProperties:
additionalProperties:
key: artalk
name: Artalk
tags:
@@ -14,6 +14,3 @@ additionalProperties:
website: https://artalk.js.org/
github: https://github.com/ArtalkJS/Artalk/
document: https://artalk.js.org/guide/intro.html
architectures:
- amd64
- arm64
@@ -4,7 +4,7 @@ networks:
services:
napcat:
image: mlikiowa/napcat-docker:v4.18.5
image: mlikiowa/napcat-docker:v4.8.124
container_name: napcat-${CONTAINER_NAME}
restart: always
networks:
@@ -24,7 +24,7 @@ services:
- NAPCAT_UID=${NAPCAT_UID:-1000}
- NAPCAT_GID=${NAPCAT_GID:-1000}
astrbot:
image: soulter/astrbot:v4.25.2
image: soulter/astrbot:v4.5.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"

Some files were not shown because too many files have changed in this diff Show More