From 09c36bdc6f77e619c951ed6e5cda8c6437b1123a Mon Sep 17 00:00:00 2001 From: QYG2297248353 Date: Thu, 8 Jan 2026 04:02:24 +0000 Subject: [PATCH] Processed apps directory via GitHub Actions --- appstore/woodpecker/3.12.0/.env | 30 +++++++ appstore/woodpecker/3.12.0/data.yml | 78 ++++++++++++++++++ appstore/woodpecker/3.12.0/docker-compose.yml | 46 +++++++++++ appstore/woodpecker/3.12.0/envs/default.env | 2 + appstore/woodpecker/3.12.0/envs/global.env | 2 + appstore/woodpecker/3.12.0/scripts/init.sh | 17 ++++ .../woodpecker/3.12.0/scripts/uninstall.sh | 10 +++ appstore/woodpecker/3.12.0/scripts/upgrade.sh | 17 ++++ appstore/woodpecker/README.md | 20 +++++ appstore/woodpecker/data.yml | 16 ++++ appstore/woodpecker/logo.png | Bin 0 -> 17896 bytes appstore/woodpecker/logo.svg | 10 +++ dockge/woodpecker/.env | 30 +++++++ dockge/woodpecker/docker-compose.yml | 46 +++++++++++ dockge/woodpecker/envs/default.env | 2 + dockge/woodpecker/envs/global.env | 2 + 16 files changed, 328 insertions(+) create mode 100644 appstore/woodpecker/3.12.0/.env create mode 100644 appstore/woodpecker/3.12.0/data.yml create mode 100644 appstore/woodpecker/3.12.0/docker-compose.yml create mode 100644 appstore/woodpecker/3.12.0/envs/default.env create mode 100644 appstore/woodpecker/3.12.0/envs/global.env create mode 100644 appstore/woodpecker/3.12.0/scripts/init.sh create mode 100644 appstore/woodpecker/3.12.0/scripts/uninstall.sh create mode 100644 appstore/woodpecker/3.12.0/scripts/upgrade.sh create mode 100644 appstore/woodpecker/README.md create mode 100644 appstore/woodpecker/data.yml create mode 100644 appstore/woodpecker/logo.png create mode 100644 appstore/woodpecker/logo.svg create mode 100644 dockge/woodpecker/.env create mode 100644 dockge/woodpecker/docker-compose.yml create mode 100644 dockge/woodpecker/envs/default.env create mode 100644 dockge/woodpecker/envs/global.env diff --git a/appstore/woodpecker/3.12.0/.env b/appstore/woodpecker/3.12.0/.env new file mode 100644 index 000000000..ec58d30e4 --- /dev/null +++ b/appstore/woodpecker/3.12.0/.env @@ -0,0 +1,30 @@ +# 数据持久化路径 [必填] +WOODPECKER_ROOT_PATH=/home/woodpecker + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=8000 + +# 密钥 [必填] +WOODPECKER_AGENT_SECRET= + +# 访问地址 [必填] +WOODPECKER_HOST=http://localhost:8000 + +# 最大任务数 [必填] +WOODPECKER_MAX_WORKFLOWS=4 + +# 是否允许注册 [必填] +WOODPECKER_OPEN=false + +# 管理员账户列表 +WOODPECKER_ADMIN= + +# 组织列表 +WOODPECKER_ORGS= + +# 登录过期时间 [必填] +WOODPECKER_SESSION_EXPIRES=72h + +# 操作系统主机名 [必填] +WOODPECKER_HOSTNAME= + diff --git a/appstore/woodpecker/3.12.0/data.yml b/appstore/woodpecker/3.12.0/data.yml new file mode 100644 index 000000000..19ec64401 --- /dev/null +++ b/appstore/woodpecker/3.12.0/data.yml @@ -0,0 +1,78 @@ +additionalProperties: + formFields: + - default: "/home/woodpecker" + edit: true + envKey: WOODPECKER_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: WOODPECKER_AGENT_SECRET + labelZh: 密钥 + labelEn: Secret + required: true + type: text + - default: "http://localhost:8000" + edit: true + envKey: WOODPECKER_HOST + labelZh: 访问地址 + labelEn: Host Address + required: true + type: text + - default: 4 + edit: true + envKey: WOODPECKER_MAX_WORKFLOWS + labelZh: 最大任务数 + labelEn: Maximum number of tasks + required: true + type: number + - default: "false" + edit: true + envKey: WOODPECKER_OPEN + labelZh: 是否允许注册 + labelEn: Allow registration + required: true + type: select + values: + - label: 允许 + value: "true" + - label: 禁止 + value: "false" + - default: "" + edit: true + envKey: WOODPECKER_ADMIN + labelZh: 管理员账户列表 + labelEn: Administrator account list + required: false + type: text + - default: "" + edit: true + envKey: WOODPECKER_ORGS + labelZh: 组织列表 + labelEn: Organization list + required: false + type: text + - default: "72h" + edit: true + envKey: WOODPECKER_SESSION_EXPIRES + labelZh: 登录过期时间 + labelEn: Login expiration time + required: true + type: text + - default: "" + edit: true + envKey: WOODPECKER_HOSTNAME + labelZh: 操作系统主机名 + labelEn: Operating system host name + required: true + type: text diff --git a/appstore/woodpecker/3.12.0/docker-compose.yml b/appstore/woodpecker/3.12.0/docker-compose.yml new file mode 100644 index 000000000..7553c7dff --- /dev/null +++ b/appstore/woodpecker/3.12.0/docker-compose.yml @@ -0,0 +1,46 @@ +networks: + 1panel-network: + external: true +services: + woodpecker-agent: + command: agent + depends_on: + - woodpecker-server + env_file: + - ./envs/global.env + - .env + environment: + - WOODPECKER_SERVER=woodpecker-server:9000 + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + image: woodpeckerci/woodpecker-agent:v3.12.0 + networks: + - 1panel-network + restart: always + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${WOODPECKER_ROOT_PATH}/agent:/etc/woodpecker + woodpecker-server: + container_name: woodpecker + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - WOODPECKER_OPEN=true + - WOODPECKER_SERVER_ADDR=:8000 + - WOODPECKER_GRPC_ADDR=:9000 + - WOODPECKER_HOST=${WOODPECKER_HOST} + - WOODPECKER_GITHUB=true + - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} + - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + image: woodpeckerci/woodpecker-server:v3.12.0 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8000 + restart: always + volumes: + - ${WOODPECKER_ROOT_PATH}/server:/var/lib/woodpecker/ diff --git a/appstore/woodpecker/3.12.0/envs/default.env b/appstore/woodpecker/3.12.0/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/appstore/woodpecker/3.12.0/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/woodpecker/3.12.0/envs/global.env b/appstore/woodpecker/3.12.0/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/appstore/woodpecker/3.12.0/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/woodpecker/3.12.0/scripts/init.sh b/appstore/woodpecker/3.12.0/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/woodpecker/3.12.0/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/woodpecker/3.12.0/scripts/uninstall.sh b/appstore/woodpecker/3.12.0/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/appstore/woodpecker/3.12.0/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/woodpecker/3.12.0/scripts/upgrade.sh b/appstore/woodpecker/3.12.0/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/woodpecker/3.12.0/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/woodpecker/README.md b/appstore/woodpecker/README.md new file mode 100644 index 000000000..99f969b31 --- /dev/null +++ b/appstore/woodpecker/README.md @@ -0,0 +1,20 @@ +# Woodpecker (啄木鸟) + +简单而强大的CI/CD引擎,具有很强的可扩展性 + +![Woodpecker](https://file.lifebus.top/imgs/app_name_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) + +## 特性 + ++ 开源且免费 + ++ 基于 Docker 容器 + ++ 多工作流程 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) +![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W) diff --git a/appstore/woodpecker/data.yml b/appstore/woodpecker/data.yml new file mode 100644 index 000000000..b5ecf3ad4 --- /dev/null +++ b/appstore/woodpecker/data.yml @@ -0,0 +1,16 @@ +additionalProperties: + key: woodpecker + name: Woodpecker (啄木鸟) + tags: + - WebSite + - Local + shortDescZh: 啄木鸟是一个简单而强大的CI/CD引擎,具有很强的可扩展性 + shortDescEn: Woodpecker is a simple, yet powerful CI/CD engine with great extensibility + type: website + crossVersionUpdate: true + limit: 0 + website: https://woodpecker-ci.org/ + github: https://github.com/woodpecker-ci/woodpecker/ + document: https://woodpecker-ci.org/ + architectures: + - amd64 diff --git a/appstore/woodpecker/logo.png b/appstore/woodpecker/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2782883f6b5a95ed69b0e1c6c6bfb656dde706ed GIT binary patch literal 17896 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 STmgRo0000 + + + diff --git a/dockge/woodpecker/.env b/dockge/woodpecker/.env new file mode 100644 index 000000000..ec58d30e4 --- /dev/null +++ b/dockge/woodpecker/.env @@ -0,0 +1,30 @@ +# 数据持久化路径 [必填] +WOODPECKER_ROOT_PATH=/home/woodpecker + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=8000 + +# 密钥 [必填] +WOODPECKER_AGENT_SECRET= + +# 访问地址 [必填] +WOODPECKER_HOST=http://localhost:8000 + +# 最大任务数 [必填] +WOODPECKER_MAX_WORKFLOWS=4 + +# 是否允许注册 [必填] +WOODPECKER_OPEN=false + +# 管理员账户列表 +WOODPECKER_ADMIN= + +# 组织列表 +WOODPECKER_ORGS= + +# 登录过期时间 [必填] +WOODPECKER_SESSION_EXPIRES=72h + +# 操作系统主机名 [必填] +WOODPECKER_HOSTNAME= + diff --git a/dockge/woodpecker/docker-compose.yml b/dockge/woodpecker/docker-compose.yml new file mode 100644 index 000000000..7553c7dff --- /dev/null +++ b/dockge/woodpecker/docker-compose.yml @@ -0,0 +1,46 @@ +networks: + 1panel-network: + external: true +services: + woodpecker-agent: + command: agent + depends_on: + - woodpecker-server + env_file: + - ./envs/global.env + - .env + environment: + - WOODPECKER_SERVER=woodpecker-server:9000 + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + image: woodpeckerci/woodpecker-agent:v3.12.0 + networks: + - 1panel-network + restart: always + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${WOODPECKER_ROOT_PATH}/agent:/etc/woodpecker + woodpecker-server: + container_name: woodpecker + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - WOODPECKER_OPEN=true + - WOODPECKER_SERVER_ADDR=:8000 + - WOODPECKER_GRPC_ADDR=:9000 + - WOODPECKER_HOST=${WOODPECKER_HOST} + - WOODPECKER_GITHUB=true + - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} + - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + image: woodpeckerci/woodpecker-server:v3.12.0 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8000 + restart: always + volumes: + - ${WOODPECKER_ROOT_PATH}/server:/var/lib/woodpecker/ diff --git a/dockge/woodpecker/envs/default.env b/dockge/woodpecker/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/dockge/woodpecker/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/dockge/woodpecker/envs/global.env b/dockge/woodpecker/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/dockge/woodpecker/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai