diff --git a/apps/forgejo-runner-dind/9.1.1/data.yml b/apps/forgejo-runner-dind/9.1.1/data.yml new file mode 100644 index 000000000..690e9483f --- /dev/null +++ b/apps/forgejo-runner-dind/9.1.1/data.yml @@ -0,0 +1,67 @@ +additionalProperties: + formFields: + - default: http://1.2.3.4:3000 + edit: true + envKey: FORGEJO_INSTANCE_URL + labelEn: Forgejo Instance + labelZh: Forgejo 实例 + required: true + rule: paramExtUrl + type: text + label: + en: Forgejo Instance + ja: Forgejo インスタンス + ms: Instans Forgejo + pt-br: Instância Forgejo + ru: Экземпляр Forgejo + ko: Forgejo 인스턴스 + zh-Hant: Forgejo 實例 + zh: Forgejo 实例 + - default: '' + edit: true + envKey: RUNNER_REGISTRATION_TOKEN + labelEn: Registration Token + labelZh: Registration Token + required: true + type: text + label: + en: Registration Token + ja: 登録トークン + ms: Token Pendaftaran + pt-br: Token de Registro + ru: Токен регистрации + ko: 등록 토큰 + zh-Hant: 註冊令牌 + zh: 注册令牌 + - default: '' + edit: true + envKey: RUNNER_NAME + labelEn: Runner Name + labelZh: Runner Name + required: true + type: text + label: + en: Runner Name + ja: ランナー名 + ms: Nama Pelari + pt-br: Nome do Runner + ru: Имя бегуна + ko: 러너 이름 + zh-Hant: 執行器名稱 + zh: 运行器名称 + - default: '' + edit: true + envKey: RUNNER_LABELS + labelEn: Runner Labels + labelZh: Runner Labels + required: true + type: text + label: + en: Runner Labels + ja: ランナータグ + ms: Label Pelari + pt-br: Rótulos do Runner + ru: Метки бегуна + ko: 러너 레이블 + zh-Hant: 執行器標籤 + zh: 运行器标签 diff --git a/apps/forgejo-runner-dind/9.1.1/docker-compose.yml b/apps/forgejo-runner-dind/9.1.1/docker-compose.yml new file mode 100644 index 000000000..95309fceb --- /dev/null +++ b/apps/forgejo-runner-dind/9.1.1/docker-compose.yml @@ -0,0 +1,44 @@ +services: + dind: + image: docker:dind # [ignore] + container_name: forgejo-dind + privileged: true + restart: 'unless-stopped' + command: ['dockerd', '-H', 'tcp://0.0.0.0:2375', '--tls=false'] + environment: + DOCKER_TLS_CERTDIR: "" + volumes: + - ./data/dind-data:/var/lib/docker + - ./data/daemon.json:/etc/docker/daemon.json:ro + networks: + - 1panel-network + labels: + createdBy: "Apps" + forgejo_runner: + image: code.forgejo.org/forgejo/runner:9.1.1 + container_name: ${CONTAINER_NAME:-forgejo-runner} + depends_on: + dind: + condition: service_started + links: + - dind + restart: always + user: "1000:1000" # 非 root 用户运行容器 + command: "/data/scripts/register.sh" + volumes: + - ./data/runner-data:/data + - ./scripts/register.sh:/data/scripts/register.sh:ro + environment: + - DOCKER_HOST=tcp://dind:2375 + - FORGEJO_INSTANCE_URL=${FORGEJO_INSTANCE_URL} + - RUNNER_REGISTRATION_TOKEN=${RUNNER_REGISTRATION_TOKEN} + - RUNNER_NAME=${RUNNER_NAME} + - RUNNER_LABELS=${RUNNER_LABELS} + networks: + - 1panel-network + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/forgejo-runner-dind/9.1.1/scripts/init.sh b/apps/forgejo-runner-dind/9.1.1/scripts/init.sh new file mode 100644 index 000000000..4135dc574 --- /dev/null +++ b/apps/forgejo-runner-dind/9.1.1/scripts/init.sh @@ -0,0 +1,62 @@ +#!/bin/bash +set -e + +echo "🚀 正在初始化 Forgejo Runner 所需目录..." + +# 进入项目目录 +mkdir -p data +cd data + +## ---------------------------- +## Runner 数据目录及权限设置 +## ---------------------------- + +mkdir -p runner-data +touch runner-data/.runner +touch runner-data/config.yml +mkdir -p runner-data/.cache + +# 设置权限为 forgejo-runner 镜像中默认用户(UID 1000) +chown -R 1000:1000 runner-data +chmod 775 runner-data/.runner +chmod 775 runner-data/.cache +chmod g+s runner-data/.runner +chmod g+s runner-data/.cache + +## ---------------------------- +## Docker-in-Docker 数据目录 +## ---------------------------- + +mkdir -p dind-data +echo "📦 已创建 ./data/dind-data 目录(用于持久化 dind 镜像和元数据)" + +## ---------------------------- +## daemon.json 镜像加速配置 +## ---------------------------- + +if [ -f /etc/docker/daemon.json ]; then + echo "📥 检测到宿主机的 /etc/docker/daemon.json,正在复制..." + cp /etc/docker/daemon.json ./daemon.json +else + echo "📄 未检测到宿主机 daemon.json,正在生成默认镜像加速配置..." + cat > ./daemon.json <>> Registering runner..." + forgejo-runner register --no-interactive \ + --instance "$FORGEJO_INSTANCE_URL" \ + --token "$RUNNER_REGISTRATION_TOKEN" \ + --name "$RUNNER_NAME" \ + --labels "$RUNNER_LABELS" + forgejo-runner generate-config > config.yml +fi + +echo ">>> Starting daemon..." +exec forgejo-runner --config config.yml daemon diff --git a/apps/forgejo-runner-dind/README.md b/apps/forgejo-runner-dind/README.md new file mode 100644 index 000000000..e57248e1c --- /dev/null +++ b/apps/forgejo-runner-dind/README.md @@ -0,0 +1,68 @@ +# Forgejo Actions Runner + +**Forgejo Actions Runner** 是 Forgejo 的官方运行器组件,用于执行 CI/CD 工作流中的各类任务。它与 Forgejo Actions 系统集成,支持本地或远程运行任务,帮助用户构建自动化 DevOps 流程。 + +> 该容器基于Dind,安全性更强,与宿主机完全独立,基本没有越权,适合组织使用 + +适合希望**完全自托管** CI/CD 流水线的个人或组织部署使用。 + +## ✨ 特性 + +- 与 Forgejo Actions 完全集成 +- 支持自定义容器或直接在主机运行 +- 多 Runner 支持并行执行 +- 支持 amd64 / arm64 等架构 +- 简单易用,部署轻量 + +## ⚙️ 快速开始(Docker 部署) + +### 1. 启动 Forgejo 主服务(略) + +确保 Forgejo 主程序已部署并启用了 Actions 功能。 + +### 2. 运行 Action Runner 容器 + +```bash +docker run -d --name forgejo-runner \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /opt/runner:/data \ + codeberg.org/forgejo/runner:latest +``` + +### 3. 初始化注册 + +首次运行后,进入容器进行注册: + +```bash +docker exec -it forgejo-runner forgejo-runner register +``` + +你需要提供: + +- **Forgejo 实例 URL**(例如 `https://git.example.com`) +- **Runner Token**(从仓库或组织设置中获取) +- **运行模式**(Docker / shell 等) +- **标签**(可选,便于任务调度) + +## 🔄 自动启动示例(Docker Compose) + +```yaml +version: '3' +services: + forgejo-runner: + image: codeberg.org/forgejo/runner:latest + container_name: forgejo-runner + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./runner-data:/data + restart: unless-stopped +``` + +## 📘 文档与资源 + +- 项目主页:https://forgejo.org/docs/latest/admin/actions/ +- 源码仓库:https://code.forgejo.org/forgejo/runner + +## 🧑‍🤝‍🧑 关于 Forgejo Runner + +Forgejo Runner 是社区主导的 CI 执行器,致力于提供安全、可控、可扩展的构建环境。它是 Forgejo 构建完整 DevOps 生态的重要组成部分。 diff --git a/apps/forgejo-runner-dind/data.yml b/apps/forgejo-runner-dind/data.yml new file mode 100644 index 000000000..dc193293a --- /dev/null +++ b/apps/forgejo-runner-dind/data.yml @@ -0,0 +1,31 @@ +name: Forgejo Runner Docker in Docker +tags: + - DevOps +title: Forgejo Actions 的 Runner 基于 Dind +description: Forgejo Actions 的 Runner +additionalProperties: + key: forgejo-runner-dind + name: Forgejo Runner Docker in Docker + tags: + - DevOps + shortDescZh: Forgejo Actions 的 Runner + shortDescEn: A runner for Forgejo based on Forgejo fork of act + description: + en: A runner for Forgejo based on Forgejo fork of act + ja: act の Forgejo フォークに基づいた Forgejo 用ランナー + ms: Penjalank untuk Forgejo berdasarkan fork Forgejo dari act + pt-br: Um runner para Forgejo baseado no fork do Forgejo do act + ru: Раннер для Forgejo на основе форка Forgejo от act + ko: act의 Forgejo 포크를 기반으로 한 Forgejo용 러너 + zh-Hant: 基於 Forgejo fork 的 act 的 Forgejo 執行器 + zh: 基于 Forgejo fork 的 act 的 Forgejo 运行器 + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://forgejo.org/docs/latest/admin/actions/ + github: https://code.forgejo.org/forgejo/runner + document: https://forgejo.org/docs/latest/admin/actions/ + architectures: + - amd64 + - arm64 diff --git a/apps/forgejo-runner-dind/logo.png b/apps/forgejo-runner-dind/logo.png new file mode 100644 index 000000000..4e5f54948 Binary files /dev/null and b/apps/forgejo-runner-dind/logo.png differ diff --git a/apps/forgejo-runner/9.1.1/data.yml b/apps/forgejo-runner/9.1.1/data.yml new file mode 100644 index 000000000..690e9483f --- /dev/null +++ b/apps/forgejo-runner/9.1.1/data.yml @@ -0,0 +1,67 @@ +additionalProperties: + formFields: + - default: http://1.2.3.4:3000 + edit: true + envKey: FORGEJO_INSTANCE_URL + labelEn: Forgejo Instance + labelZh: Forgejo 实例 + required: true + rule: paramExtUrl + type: text + label: + en: Forgejo Instance + ja: Forgejo インスタンス + ms: Instans Forgejo + pt-br: Instância Forgejo + ru: Экземпляр Forgejo + ko: Forgejo 인스턴스 + zh-Hant: Forgejo 實例 + zh: Forgejo 实例 + - default: '' + edit: true + envKey: RUNNER_REGISTRATION_TOKEN + labelEn: Registration Token + labelZh: Registration Token + required: true + type: text + label: + en: Registration Token + ja: 登録トークン + ms: Token Pendaftaran + pt-br: Token de Registro + ru: Токен регистрации + ko: 등록 토큰 + zh-Hant: 註冊令牌 + zh: 注册令牌 + - default: '' + edit: true + envKey: RUNNER_NAME + labelEn: Runner Name + labelZh: Runner Name + required: true + type: text + label: + en: Runner Name + ja: ランナー名 + ms: Nama Pelari + pt-br: Nome do Runner + ru: Имя бегуна + ko: 러너 이름 + zh-Hant: 執行器名稱 + zh: 运行器名称 + - default: '' + edit: true + envKey: RUNNER_LABELS + labelEn: Runner Labels + labelZh: Runner Labels + required: true + type: text + label: + en: Runner Labels + ja: ランナータグ + ms: Label Pelari + pt-br: Rótulos do Runner + ru: Метки бегуна + ko: 러너 레이블 + zh-Hant: 執行器標籤 + zh: 运行器标签 diff --git a/apps/forgejo-runner/9.1.1/docker-compose.yml b/apps/forgejo-runner/9.1.1/docker-compose.yml new file mode 100644 index 000000000..0400926e0 --- /dev/null +++ b/apps/forgejo-runner/9.1.1/docker-compose.yml @@ -0,0 +1,25 @@ +services: + forgejo_runner: + image: code.forgejo.org/forgejo/runner:9.1.1 + container_name: ${CONTAINER_NAME:-forgejo-runner} + restart: always + user: root + command: "/data/scripts/register.sh" + volumes: + - ./data:/data + - ./scripts/register.sh:/data/scripts/register.sh:ro + - /var/run/docker.sock:/var/run/docker.sock # 使用宿主机 Docker + environment: + - DOCKER_HOST=unix:///var/run/docker.sock # 指定宿主机 socket + - FORGEJO_INSTANCE_URL=${FORGEJO_INSTANCE_URL} + - RUNNER_REGISTRATION_TOKEN=${RUNNER_REGISTRATION_TOKEN} + - RUNNER_NAME=${RUNNER_NAME} + - RUNNER_LABELS=${RUNNER_LABELS} + networks: + - 1panel-network + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/forgejo-runner/9.1.1/scripts/init.sh b/apps/forgejo-runner/9.1.1/scripts/init.sh new file mode 100644 index 000000000..7bb9c32f2 --- /dev/null +++ b/apps/forgejo-runner/9.1.1/scripts/init.sh @@ -0,0 +1,21 @@ +#!/bin/bash +set -e + +# 创建数据目录并设置权限 +mkdir -p data +touch data/.runner +touch data/config.yml +mkdir -p data/.cache + +# 设置为 forgejo-runner 镜像中的默认非 root 用户 +chown -R 1000:1000 data +chmod 775 data/.runner +chmod 775 data/.cache +chmod g+s data/.runner +chmod g+s data/.cache + +chmod +x ./scripts/register.sh + +echo "✅ 初始化完成:" +echo " - 已创建 ./data 并配置权限" +echo " - 已创建 ./scripts/register.sh 并配置权限" diff --git a/apps/forgejo-runner/9.1.1/scripts/register.sh b/apps/forgejo-runner/9.1.1/scripts/register.sh new file mode 100644 index 000000000..1f4a73f27 --- /dev/null +++ b/apps/forgejo-runner/9.1.1/scripts/register.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +cd /data + +if [ ! -s .runner ]; then + echo ">>> Registering runner..." + forgejo-runner register --no-interactive \ + --instance "$FORGEJO_INSTANCE_URL" \ + --token "$RUNNER_REGISTRATION_TOKEN" \ + --name "$RUNNER_NAME" \ + --labels "$RUNNER_LABELS" + forgejo-runner generate-config > config.yml +fi + +echo ">>> Starting daemon..." +exec forgejo-runner --config config.yml daemon diff --git a/apps/forgejo-runner/README.md b/apps/forgejo-runner/README.md new file mode 100644 index 000000000..da6622eb7 --- /dev/null +++ b/apps/forgejo-runner/README.md @@ -0,0 +1,66 @@ +# Forgejo Actions Runner + +**Forgejo Actions Runner** 是 Forgejo 的官方运行器组件,用于执行 CI/CD 工作流中的各类任务。它与 Forgejo Actions 系统集成,支持本地或远程运行任务,帮助用户构建自动化 DevOps 流程。 + +适合希望**完全自托管** CI/CD 流水线的个人或组织部署使用。 + +## ✨ 特性 + +- 与 Forgejo Actions 完全集成 +- 支持自定义容器或直接在主机运行 +- 多 Runner 支持并行执行 +- 支持 amd64 / arm64 等架构 +- 简单易用,部署轻量 + +## ⚙️ 快速开始(Docker 部署) + +### 1. 启动 Forgejo 主服务(略) + +确保 Forgejo 主程序已部署并启用了 Actions 功能。 + +### 2. 运行 Action Runner 容器 + +```bash +docker run -d --name forgejo-runner \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /opt/runner:/data \ + codeberg.org/forgejo/runner:latest +``` + +### 3. 初始化注册 + +首次运行后,进入容器进行注册: + +```bash +docker exec -it forgejo-runner forgejo-runner register +``` + +你需要提供: + +- **Forgejo 实例 URL**(例如 `https://git.example.com`) +- **Runner Token**(从仓库或组织设置中获取) +- **运行模式**(Docker / shell 等) +- **标签**(可选,便于任务调度) + +## 🔄 自动启动示例(Docker Compose) + +```yaml +version: '3' +services: + forgejo-runner: + image: codeberg.org/forgejo/runner:latest + container_name: forgejo-runner + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./runner-data:/data + restart: unless-stopped +``` + +## 📘 文档与资源 + +- 项目主页:https://forgejo.org/docs/latest/admin/actions/ +- 源码仓库:https://code.forgejo.org/forgejo/runner + +## 🧑‍🤝‍🧑 关于 Forgejo Runner + +Forgejo Runner 是社区主导的 CI 执行器,致力于提供安全、可控、可扩展的构建环境。它是 Forgejo 构建完整 DevOps 生态的重要组成部分。 diff --git a/apps/forgejo-runner/data.yml b/apps/forgejo-runner/data.yml new file mode 100644 index 000000000..cf716a6f2 --- /dev/null +++ b/apps/forgejo-runner/data.yml @@ -0,0 +1,31 @@ +name: Forgejo Runner +tags: + - DevOps +title: Forgejo Actions 的 Runner +description: Forgejo Actions 的 Runner +additionalProperties: + key: forgejo-runner + name: Forgejo Runner + tags: + - DevOps + shortDescZh: Forgejo Actions 的 Runner + shortDescEn: A runner for Forgejo based on Forgejo fork of act + description: + en: A runner for Forgejo based on Forgejo fork of act + ja: act の Forgejo フォークに基づいた Forgejo 用ランナー + ms: Penjalank untuk Forgejo berdasarkan fork Forgejo dari act + pt-br: Um runner para Forgejo baseado no fork do Forgejo do act + ru: Раннер для Forgejo на основе форка Forgejo от act + ko: act의 Forgejo 포크를 기반으로 한 Forgejo용 러너 + zh-Hant: 基於 Forgejo fork 的 act 的 Forgejo 執行器 + zh: 基于 Forgejo fork 的 act 的 Forgejo 运行器 + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://forgejo.org/docs/latest/admin/actions/ + github: https://code.forgejo.org/forgejo/runner + document: https://forgejo.org/docs/latest/admin/actions/ + architectures: + - amd64 + - arm64 diff --git a/apps/forgejo-runner/logo.png b/apps/forgejo-runner/logo.png new file mode 100644 index 000000000..4e5f54948 Binary files /dev/null and b/apps/forgejo-runner/logo.png differ diff --git a/apps/message-pusher/README.md b/apps/message-pusher/README.md new file mode 100644 index 000000000..559febaa3 --- /dev/null +++ b/apps/message-pusher/README.md @@ -0,0 +1,93 @@ +# Message Pusher + + > 自托管消息推送服务,支持 Web UI + 多平台推送通道。 + + 本项目使用 [songquanpeng/message-pusher](https://github.com/songquanpeng/message-pusher) 镜像通过 Docker Compose 快速部署,支持通过网页管理和 API 接口进行消息推送。 + + ## ✨ 项目特点 + + - 支持 Telegram、Bark、企业微信、Server 酱等消息推送方式 + - 提供简洁易用的 Web UI 管理界面 + - 支持用户注册、Token 管理 + - 提供 RESTful API 接口,适合自动化集成 + +--- + + ## 📦 快速部署 + + ### 1. 拉取项目 + + ```bash + git clone https://github.com/your-username/message-pusher-docker.git + cd message-pusher-docker + ~~~ + + ### 2. 启动服务 + + ```bash + docker compose up -d + ``` + + 启动成功后访问: + + ``` + http://localhost:3000 + ``` + + 若部署在服务器,请替换为服务器的 IP 或域名。 + + ### 3. 默认配置说明 + + Docker Compose 配置中: + + - **端口映射**:`3000:3000` + - **数据挂载目录**:`./data:/data` + - **时区设置**:`Asia/Shanghai` + +------ + + ## 🧾 Docker Compose 文件示例 + + ```yaml + version: '3' + + services: + message-pusher: + image: songquanpeng/message-pusher + container_name: message-pusher + restart: always + ports: + - "3000:3000" + environment: + - TZ=Asia/Shanghai + volumes: + - ./data:/data + ``` + +------ + + ## 🛠 更新与维护 + + 更新镜像并重启服务: + + ```bash + docker compose pull + docker compose up -d + ``` + +------ + + ## 🔗 官方链接 + + - 官方项目主页: https://github.com/songquanpeng/message-pusher + - 在线体验地址: [https://push.sbs](https://push.sbs/) + - Docker Hub 镜像: https://hub.docker.com/r/songquanpeng/message-pusher + +------ + + ## 📄 License + + MIT License + + 由 [@songquanpeng](https://github.com/songquanpeng) 开发维护。 + diff --git a/apps/message-pusher/data.yml b/apps/message-pusher/data.yml new file mode 100644 index 000000000..9e3c1ffda --- /dev/null +++ b/apps/message-pusher/data.yml @@ -0,0 +1,19 @@ +name: Message-Pusher +tags: + - 实用工具 +title: 自托管消息推送服务 +description: 一款支持多平台的自托管消息推送服务,支持 Web UI 和 API 接口。 +additionalProperties: + key: message-pusher + name: Message-Pusher + tags: + - Tool + shortDescZh: 一款支持多平台的自托管消息推送服务 + shortDescEn: A self-hosted multi-platform message pushing service + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://github.com/songquanpeng/message-pusher + github: https://github.com/songquanpeng/message-pusher + document: https://github.com/songquanpeng/message-pusher#readme diff --git a/apps/message-pusher/logo.png b/apps/message-pusher/logo.png new file mode 100644 index 000000000..e418146a9 Binary files /dev/null and b/apps/message-pusher/logo.png differ diff --git a/apps/message-pusher/v0.4.12/data.yml b/apps/message-pusher/v0.4.12/data.yml new file mode 100644 index 000000000..18dea9161 --- /dev/null +++ b/apps/message-pusher/v0.4.12/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: "23987" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/message-pusher/v0.4.12/docker-compose.yml b/apps/message-pusher/v0.4.12/docker-compose.yml new file mode 100644 index 000000000..c5bb32636 --- /dev/null +++ b/apps/message-pusher/v0.4.12/docker-compose.yml @@ -0,0 +1,19 @@ +services: + message-pusher: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:3000" + image: justsong/message-pusher:v0.4.12 + volumes: + - ./data:/data + environment: + - TZ=Asia/Shanghai + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/pansou/1.0.2/data.yml b/apps/pansou/1.0.2/data.yml new file mode 100644 index 000000000..1fa8ae5f5 --- /dev/null +++ b/apps/pansou/1.0.2/data.yml @@ -0,0 +1,133 @@ +additionalProperties: + formFields: + - default: 45963 + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + label: + en: HTTP Port + ja: ポート + ms: Port + pt-br: Porta + ru: Порт + ko: 포트 + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + required: true + rule: paramPort + type: number + + - default: "" + envKey: SOCKS5_PROXY + labelEn: SOCKS5 Proxy + labelZh: SOCKS5 代理 + label: + en: SOCKS5 Proxy + ja: SOCKS5プロキシ + ms: Proksi SOCKS5 + pt-br: Proxy SOCKS5 + ru: SOCKS5 прокси + ko: SOCKS5 프록시 + zh: SOCKS5 代理 + zh-Hant: SOCKS5 代理 + required: false + type: text + + - default: "" + envKey: HTTP_PROXY + labelEn: HTTP Proxy + labelZh: HTTP 代理 + label: + en: HTTP Proxy + ja: HTTPプロキシ + ms: Proksi HTTP + pt-br: Proxy HTTP + ru: HTTP прокси + ko: HTTP 프록시 + zh: HTTP 代理 + zh-Hant: HTTP 代理 + required: false + type: text + + - default: "" + envKey: HTTPS_PROXY + labelEn: HTTPS Proxy + labelZh: HTTPS 代理 + label: + en: HTTPS Proxy + ja: HTTPSプロキシ + ms: Proksi HTTPS + pt-br: Proxy HTTPS + ru: HTTPS прокси + ko: HTTPS 프록시 + zh: HTTPS 代理 + zh-Hant: HTTPS 代理 + required: false + type: text + + - default: true + envKey: CACHE_ENABLED + required: true + type: select + label: + en: Enable Cache + ja: キャッシュを有効にする + ms: Dayakan Cache + pt-br: Habilitar Cache + ru: Включить кэш + ko: 캐시 활성화 + zh: 启用缓存 + zh-Hant: 啟用快取 + values: + - label: 启用缓存 + value: "true" + - label: 禁用缓存 + value: "false" + + - default: "3600" + envKey: CACHE_TTL + labelEn: Cache TTL (seconds) + labelZh: 缓存有效期(秒) + label: + en: Cache TTL (seconds) + ja: キャッシュTTL(秒) + ms: Cache TTL (saat) + pt-br: TTL de Cache (segundos) + ru: TTL кэша (сек) + ko: 캐시 TTL(초) + zh: 缓存有效期(秒) + zh-Hant: 快取有效期(秒) + required: true + type: number + + - default: "200" + envKey: MAX_CONCURRENCY + labelEn: Max Concurrency + labelZh: 最大并发数 + label: + en: Max Concurrency + ja: 最大同時実行数 + ms: Keupayaan Serentak Maks + pt-br: Concorrência Máxima + ru: Макс. количество потоков + ko: 최대 동시 실행 수 + zh: 最大并发数 + zh-Hant: 最大並行數 + required: true + type: number + + - default: "30" + envKey: MAX_PAGES + labelEn: Max Pages + labelZh: 最大页面数 + label: + en: Max Pages + ja: 最大ページ数 + ms: Bilangan Halaman Maks + pt-br: Páginas Máximas + ru: Макс. количество страниц + ko: 최대 페이지 수 + zh: 最大页面数 + zh-Hant: 最大頁數 + required: true + type: number diff --git a/apps/pansou/1.0.2/docker-compose.yml b/apps/pansou/1.0.2/docker-compose.yml new file mode 100644 index 000000000..81efeeafd --- /dev/null +++ b/apps/pansou/1.0.2/docker-compose.yml @@ -0,0 +1,26 @@ +services: + pansou: + image: willowgod/pansou-web:v1.0.2 + container_name: ${CONTAINER_NAME} + restart: always + labels: + createdBy: "Apps" + ports: + - "${PANEL_APP_PORT_HTTP}:80" + environment: + SOCKS5_PROXY: ${SOCKS5_PROXY} + HTTP_PROXY: ${HTTP_PROXY} + HTTPS_PROXY: ${HTTPS_PROXY} + CACHE_ENABLED: ${CACHE_ENABLED} + CACHE_TTL: ${CACHE_TTL} + MAX_CONCURRENCY: ${MAX_CONCURRENCY} + MAX_PAGES: ${MAX_PAGES} + volumes: + - ./data/data:/app/data + - ./data/logs:/app/logs + networks: + - 1panel-network + +networks: + 1panel-network: + external: true diff --git a/apps/pansou/README.md b/apps/pansou/README.md new file mode 100644 index 000000000..af395e89a --- /dev/null +++ b/apps/pansou/README.md @@ -0,0 +1,55 @@ +# PanSou 网盘搜索 API + +PanSou 是一个高性能的网盘资源搜索 API 服务,支持 Telegram 搜索和自定义插件扩展,系统以性能和可扩展性为核心,支持并发搜索、结果智能排序和多网盘类型分类。 + +## ✨ 特性 +- **高性能搜索**:并发执行多个 Telegram 频道及插件搜索,显著提升搜索速度 +- **多网盘类型分类**:自动识别百度网盘、阿里云盘、夸克网盘等多种链接 +- **智能排序**:基于插件等级、时间新鲜度和关键词权重的综合排序 +- **异步插件系统**:支持“尽快响应,持续处理”的搜索模式 +- **二级缓存**:内存 + 磁盘分片缓存机制,大幅提升重复查询性能 + +## 🛠 支持的网盘类型 +百度网盘、阿里云盘、夸克网盘、天翼云盘、UC网盘、移动云盘、115网盘、PikPak、迅雷网盘、123网盘、磁力链接、电驴链接等。 + +## 🚀 快速开始 + +### 使用 Docker 部署(前后端一体) +```bash +docker run -d --name pansou -p 80:80 ghcr.io/fish2018/pansou-web +``` + +### 使用 Docker Compose(推荐) + +```bash +curl -o docker-compose.yml https://raw.githubusercontent.com/fish2018/pansou-web/refs/heads/main/docker-compose.yml +docker-compose up -d +``` + +### 仅后端 API + +```bash +docker run -d --name pansou -p 8888:8888 -v pansou-cache:/app/cache -e CHANNELS="tgsearchers2,xxx" ghcr.io/fish2018/pansou:latest +``` + +## 📚 API 文档 + +### 搜索 API + +- 接口:`/api/search` +- 方法:`POST` / `GET` +- 参数: + - `kw`:搜索关键词 + - `channels`:搜索的频道 + - `cloud_types`:网盘类型过滤 + - 更多详见[项目文档](https://github.com/fish2018/pansou) + +### 健康检查 API + +- 接口:`/api/health` +- 方法:`GET` + +## 🔗 项目地址 + +- GitHub: https://github.com/fish2018/pansou +- 文档: https://github.com/fish2018/pansou \ No newline at end of file diff --git a/apps/pansou/data.yml b/apps/pansou/data.yml new file mode 100644 index 000000000..3e764e8fc --- /dev/null +++ b/apps/pansou/data.yml @@ -0,0 +1,33 @@ +name: PanSou +tags: + - 网盘 + - 搜索 + - 自托管 +title: 高性能网盘搜索 API 服务 +description: PanSou 是一个支持 Telegram 搜索和插件扩展的高性能网盘搜索 API 系统,支持多网盘类型分类、智能排序、异步插件扩展与二级缓存。 +additionalProperties: + key: pansou + name: PanSou + tags: + - WebSite + - Tool + shortDescZh: 高性能网盘搜索 API 服务 + shortDescEn: High-performance cloud drive search API service + type: website + crossVersionUpdate: true + limit: 0 + website: https://github.com/fish2018/pansou + github: https://github.com/fish2018/pansou + document: https://github.com/fish2018/pansou + description: + en: High-performance cloud drive search API service supporting Telegram search and plugin extensions, with intelligent sorting and multi-cloud categorization. + zh: 高性能网盘搜索 API 系统,支持 Telegram 搜索与插件扩展,具备智能排序和多网盘类型分类。 + zh-Hant: 高效能網盤搜索 API 系統,支援 Telegram 搜索與插件擴展,具有智能排序和多網盤分類。 + ja: Telegram検索とプラグイン拡張に対応した高性能クラウドドライブ検索APIシステムです。 + ms: Perkhidmatan API carian storan awan berprestasi tinggi yang menyokong carian Telegram dan peluasan pemalam. + pt-br: Serviço de API de pesquisa de armazenamento em nuvem de alto desempenho com suporte a pesquisa no Telegram e extensões de plugins. + ru: Высокопроизводительный API поиска по облачным хранилищам с поддержкой поиска в Telegram и расширений плагинов. + ko: 텔레그램 검색과 플러그인 확장을 지원하는 고성능 클라우드 드라이브 검색 API 시스템입니다. + architectures: + - amd64 + - arm64 diff --git a/apps/pansou/logo.png b/apps/pansou/logo.png new file mode 100644 index 000000000..9b76f12bf Binary files /dev/null and b/apps/pansou/logo.png differ