diff --git a/appstore/woodpecker-agent/3.12.0/.env b/appstore/woodpecker-agent/3.12.0/.env
new file mode 100644
index 000000000..d87f22102
--- /dev/null
+++ b/appstore/woodpecker-agent/3.12.0/.env
@@ -0,0 +1,12 @@
+# 数据持久化路径 [必填]
+WOODPECKER_ROOT_PATH=/home/woodpecker
+
+# 数据持久化路径 [必填]
+WOODPECKER_SERVER=localhost:9000
+
+# 密钥 [必填]
+WOODPECKER_AGENT_SECRET=
+
+# 最大任务数 [必填]
+WOODPECKER_MAX_WORKFLOWS=4
+
diff --git a/appstore/woodpecker-agent/3.12.0/data.yml b/appstore/woodpecker-agent/3.12.0/data.yml
new file mode 100644
index 000000000..590b45604
--- /dev/null
+++ b/appstore/woodpecker-agent/3.12.0/data.yml
@@ -0,0 +1,30 @@
+additionalProperties:
+ formFields:
+ - default: "/home/woodpecker"
+ edit: true
+ envKey: WOODPECKER_ROOT_PATH
+ labelZh: 数据持久化路径
+ labelEn: Data persistence path
+ required: true
+ type: text
+ - default: "localhost:9000"
+ edit: true
+ envKey: WOODPECKER_SERVER
+ labelZh: 数据持久化路径
+ labelEn: Data persistence path
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_AGENT_SECRET
+ labelZh: 密钥
+ labelEn: Secret
+ required: true
+ type: text
+ - default: 4
+ edit: true
+ envKey: WOODPECKER_MAX_WORKFLOWS
+ labelZh: 最大任务数
+ labelEn: Maximum number of tasks
+ required: true
+ type: number
diff --git a/appstore/woodpecker-agent/3.12.0/docker-compose.yml b/appstore/woodpecker-agent/3.12.0/docker-compose.yml
new file mode 100644
index 000000000..52c7b5b02
--- /dev/null
+++ b/appstore/woodpecker-agent/3.12.0/docker-compose.yml
@@ -0,0 +1,20 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ woodpecker-agent:
+ command: agent
+ container_name: woodpecker-agent
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-agent,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
+ 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
diff --git a/appstore/woodpecker-agent/3.12.0/envs/default.env b/appstore/woodpecker-agent/3.12.0/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/appstore/woodpecker-agent/3.12.0/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/appstore/woodpecker-agent/3.12.0/envs/global.env b/appstore/woodpecker-agent/3.12.0/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/appstore/woodpecker-agent/3.12.0/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/appstore/woodpecker-agent/3.12.0/scripts/init.sh b/appstore/woodpecker-agent/3.12.0/scripts/init.sh
new file mode 100644
index 000000000..4679b2bcc
--- /dev/null
+++ b/appstore/woodpecker-agent/3.12.0/scripts/init.sh
@@ -0,0 +1,21 @@
+#!/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
+
+ DATA_DIR="$WOODPECKER_ROOT_PATH"
+
+ chmod -R 777 "$DATA_DIR"
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/appstore/woodpecker-agent/3.12.0/scripts/uninstall.sh b/appstore/woodpecker-agent/3.12.0/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/appstore/woodpecker-agent/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-agent/3.12.0/scripts/upgrade.sh b/appstore/woodpecker-agent/3.12.0/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/appstore/woodpecker-agent/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-agent/README.md b/appstore/woodpecker-agent/README.md
new file mode 100644
index 000000000..0241d2386
--- /dev/null
+++ b/appstore/woodpecker-agent/README.md
@@ -0,0 +1,27 @@
+# Woodpecker (啄木鸟)
+
+简单而强大的CI/CD引擎,具有很强的可扩展性
+
+
+
+
+
+## 安装说明
+
+### 密钥
+
+服务器和代理使用共享密钥来验证通信。该密钥应该是一个随机字符串,您需要对其保密。
+您可以使用 `openssl rand -hex 32` 生成这样的字符串。
+
+## 特性
+
++ 开源且免费
+
++ 基于 Docker 容器
+
++ 多工作流程
+
+---
+
+
+
diff --git a/appstore/woodpecker-agent/data.yml b/appstore/woodpecker-agent/data.yml
new file mode 100644
index 000000000..73cff59e0
--- /dev/null
+++ b/appstore/woodpecker-agent/data.yml
@@ -0,0 +1,24 @@
+additionalProperties:
+ key: woodpecker-agent
+ name: Woodpecker Agent (啄木鸟)
+ tags:
+ - WebSite
+ - DevOps
+ - 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:
+ - 386
+ - amd64
+ - arm64
+ - ppc64le
+ - riscv64
+ - s390x
+ - arm/v6
+ - arm/v7
diff --git a/appstore/woodpecker-agent/logo.png b/appstore/woodpecker-agent/logo.png
new file mode 100644
index 000000000..2782883f6
Binary files /dev/null and b/appstore/woodpecker-agent/logo.png differ
diff --git a/appstore/woodpecker-agent/logo.svg b/appstore/woodpecker-agent/logo.svg
new file mode 100644
index 000000000..1cd49a8f9
--- /dev/null
+++ b/appstore/woodpecker-agent/logo.svg
@@ -0,0 +1,10 @@
+
diff --git a/appstore/woodpecker-server/3.12.0/.env b/appstore/woodpecker-server/3.12.0/.env
new file mode 100644
index 000000000..5dd7a484f
--- /dev/null
+++ b/appstore/woodpecker-server/3.12.0/.env
@@ -0,0 +1,84 @@
+# 数据持久化路径 [必填]
+WOODPECKER_ROOT_PATH=/home/woodpecker
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8000
+
+# GRPC 端口 [必填]
+PANEL_APP_PORT_GRPC=9000
+
+# 密钥 [必填]
+WOODPECKER_AGENT_SECRET=
+
+# 访问地址 [必填]
+WOODPECKER_HOST=http://localhost:8000
+
+# 是否允许注册 [必填]
+WOODPECKER_OPEN=false
+
+# 管理员账户列表
+WOODPECKER_ADMIN=
+
+# 组织列表
+WOODPECKER_ORGS=
+
+# 登录过期时间 [必填]
+WOODPECKER_SESSION_EXPIRES=72h
+
+# HTTP 代理
+HTTP_PROXY=
+
+# GitHub 集成 [必填]
+WOODPECKER_GITHUB=false
+
+# GitHub 客户端 ID
+WOODPECKER_GITHUB_CLIENT=
+
+# GitHub 客户端密钥
+WOODPECKER_GITHUB_SECRET=
+
+# Gitea 集成 [必填]
+WOODPECKER_GITEA=false
+
+# Gitea 地址
+WOODPECKER_GITEA_URL=
+
+# Gitea 客户端 ID
+WOODPECKER_GITEA_CLIENT=
+
+# Gitea 客户端密钥
+WOODPECKER_GITEA_SECRET=
+
+# Forgejo 集成 [必填]
+WOODPECKER_FORGEJO=false
+
+# Forgejo 地址
+WOODPECKER_FORGEJO_URL=
+
+# Forgejo 客户端 ID
+WOODPECKER_FORGEJO_CLIENT=
+
+# Forgejo 客户端密钥
+WOODPECKER_FORGEJO_SECRET=
+
+# GitLab 集成 [必填]
+WOODPECKER_GITLAB=false
+
+# GitLab 地址
+WOODPECKER_GITLAB_URL=
+
+# GitLab 客户端 ID
+WOODPECKER_GITLAB_CLIENT=
+
+# GitLab 客户端密钥
+WOODPECKER_GITLAB_SECRET=
+
+# Bitbucket 集成 [必填]
+WOODPECKER_BITBUCKET=false
+
+# Bitbucket 客户端 ID
+WOODPECKER_BITBUCKET_CLIENT=
+
+# Bitbucket 客户端密钥
+WOODPECKER_BITBUCKET_SECRET=
+
diff --git a/appstore/woodpecker-server/3.12.0/data.yml b/appstore/woodpecker-server/3.12.0/data.yml
new file mode 100644
index 000000000..ce9397511
--- /dev/null
+++ b/appstore/woodpecker-server/3.12.0/data.yml
@@ -0,0 +1,230 @@
+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: 9000
+ edit: true
+ envKey: PANEL_APP_PORT_GRPC
+ labelZh: GRPC 端口
+ labelEn: GRPC 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: "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: HTTP_PROXY
+ labelZh: HTTP 代理
+ labelEn: HTTP proxy
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_GITHUB
+ labelZh: GitHub 集成
+ labelEn: GitHub Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITHUB_CLIENT
+ labelZh: GitHub 客户端 ID
+ labelEn: GitHub client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITHUB_SECRET
+ labelZh: GitHub 客户端密钥
+ labelEn: GitHub client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_GITEA
+ labelZh: Gitea 集成
+ labelEn: Gitea Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITEA_URL
+ labelZh: Gitea 地址
+ labelEn: Gitea URL
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITEA_CLIENT
+ labelZh: Gitea 客户端 ID
+ labelEn: Gitea client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITEA_SECRET
+ labelZh: Gitea 客户端密钥
+ labelEn: Gitea client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_FORGEJO
+ labelZh: Forgejo 集成
+ labelEn: Forgejo Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_FORGEJO_URL
+ labelZh: Forgejo 地址
+ labelEn: Forgejo URL
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_FORGEJO_CLIENT
+ labelZh: Forgejo 客户端 ID
+ labelEn: Forgejo client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_FORGEJO_SECRET
+ labelZh: Forgejo 客户端密钥
+ labelEn: Forgejo client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_GITLAB
+ labelZh: GitLab 集成
+ labelEn: GitLab Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITLAB_URL
+ labelZh: GitLab 地址
+ labelEn: GitLab URL
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITLAB_CLIENT
+ labelZh: GitLab 客户端 ID
+ labelEn: GitLab client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITLAB_SECRET
+ labelZh: GitLab 客户端密钥
+ labelEn: GitLab client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_BITBUCKET
+ labelZh: Bitbucket 集成
+ labelEn: Bitbucket Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_BITBUCKET_CLIENT
+ labelZh: Bitbucket 客户端 ID
+ labelEn: Bitbucket client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_BITBUCKET_SECRET
+ labelZh: Bitbucket 客户端密钥
+ labelEn: Bitbucket client secret
+ required: false
+ type: text
diff --git a/appstore/woodpecker-server/3.12.0/docker-compose.yml b/appstore/woodpecker-server/3.12.0/docker-compose.yml
new file mode 100644
index 000000000..445852e39
--- /dev/null
+++ b/appstore/woodpecker-server/3.12.0/docker-compose.yml
@@ -0,0 +1,25 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ woodpecker-server:
+ container_name: woodpecker-server
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - TZ=Asia/Shanghai
+ - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-server,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
+ image: woodpeckerci/woodpecker-server:v3.12.0
+ labels:
+ createdBy: Apps
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8000
+ - ${PANEL_APP_PORT_GRPC}:9000
+ restart: always
+ volumes:
+ - ${WOODPECKER_ROOT_PATH}/server:/var/lib/woodpecker/
diff --git a/appstore/woodpecker-server/3.12.0/envs/default.env b/appstore/woodpecker-server/3.12.0/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/appstore/woodpecker-server/3.12.0/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/appstore/woodpecker-server/3.12.0/envs/global.env b/appstore/woodpecker-server/3.12.0/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/appstore/woodpecker-server/3.12.0/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/appstore/woodpecker-server/3.12.0/scripts/init.sh b/appstore/woodpecker-server/3.12.0/scripts/init.sh
new file mode 100644
index 000000000..4679b2bcc
--- /dev/null
+++ b/appstore/woodpecker-server/3.12.0/scripts/init.sh
@@ -0,0 +1,21 @@
+#!/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
+
+ DATA_DIR="$WOODPECKER_ROOT_PATH"
+
+ chmod -R 777 "$DATA_DIR"
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/appstore/woodpecker-server/3.12.0/scripts/uninstall.sh b/appstore/woodpecker-server/3.12.0/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/appstore/woodpecker-server/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-server/3.12.0/scripts/upgrade.sh b/appstore/woodpecker-server/3.12.0/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/appstore/woodpecker-server/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-server/README.md b/appstore/woodpecker-server/README.md
new file mode 100644
index 000000000..0241d2386
--- /dev/null
+++ b/appstore/woodpecker-server/README.md
@@ -0,0 +1,27 @@
+# Woodpecker (啄木鸟)
+
+简单而强大的CI/CD引擎,具有很强的可扩展性
+
+
+
+
+
+## 安装说明
+
+### 密钥
+
+服务器和代理使用共享密钥来验证通信。该密钥应该是一个随机字符串,您需要对其保密。
+您可以使用 `openssl rand -hex 32` 生成这样的字符串。
+
+## 特性
+
++ 开源且免费
+
++ 基于 Docker 容器
+
++ 多工作流程
+
+---
+
+
+
diff --git a/appstore/woodpecker-server/data.yml b/appstore/woodpecker-server/data.yml
new file mode 100644
index 000000000..cef164f34
--- /dev/null
+++ b/appstore/woodpecker-server/data.yml
@@ -0,0 +1,24 @@
+additionalProperties:
+ key: woodpecker-server
+ name: Woodpecker Server (啄木鸟)
+ tags:
+ - WebSite
+ - DevOps
+ - 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:
+ - 386
+ - amd64
+ - arm64
+ - ppc64le
+ - riscv64
+ - s390x
+ - arm/v6
+ - arm/v7
diff --git a/appstore/woodpecker-server/logo.png b/appstore/woodpecker-server/logo.png
new file mode 100644
index 000000000..2782883f6
Binary files /dev/null and b/appstore/woodpecker-server/logo.png differ
diff --git a/appstore/woodpecker-server/logo.svg b/appstore/woodpecker-server/logo.svg
new file mode 100644
index 000000000..1cd49a8f9
--- /dev/null
+++ b/appstore/woodpecker-server/logo.svg
@@ -0,0 +1,10 @@
+
diff --git a/appstore/woodpecker/3.12.0/.env b/appstore/woodpecker/3.12.0/.env
index ec58d30e4..1ee257044 100644
--- a/appstore/woodpecker/3.12.0/.env
+++ b/appstore/woodpecker/3.12.0/.env
@@ -25,6 +25,60 @@ WOODPECKER_ORGS=
# 登录过期时间 [必填]
WOODPECKER_SESSION_EXPIRES=72h
-# 操作系统主机名 [必填]
-WOODPECKER_HOSTNAME=
+# HTTP 代理
+HTTP_PROXY=
+
+# GitHub 集成 [必填]
+WOODPECKER_GITHUB=false
+
+# GitHub 客户端 ID
+WOODPECKER_GITHUB_CLIENT=
+
+# GitHub 客户端密钥
+WOODPECKER_GITHUB_SECRET=
+
+# Gitea 集成 [必填]
+WOODPECKER_GITEA=false
+
+# Gitea 地址
+WOODPECKER_GITEA_URL=
+
+# Gitea 客户端 ID
+WOODPECKER_GITEA_CLIENT=
+
+# Gitea 客户端密钥
+WOODPECKER_GITEA_SECRET=
+
+# Forgejo 集成 [必填]
+WOODPECKER_FORGEJO=false
+
+# Forgejo 地址
+WOODPECKER_FORGEJO_URL=
+
+# Forgejo 客户端 ID
+WOODPECKER_FORGEJO_CLIENT=
+
+# Forgejo 客户端密钥
+WOODPECKER_FORGEJO_SECRET=
+
+# GitLab 集成 [必填]
+WOODPECKER_GITLAB=false
+
+# GitLab 地址
+WOODPECKER_GITLAB_URL=
+
+# GitLab 客户端 ID
+WOODPECKER_GITLAB_CLIENT=
+
+# GitLab 客户端密钥
+WOODPECKER_GITLAB_SECRET=
+
+# Bitbucket 集成 [必填]
+WOODPECKER_BITBUCKET=false
+
+# Bitbucket 客户端 ID
+WOODPECKER_BITBUCKET_CLIENT=
+
+# Bitbucket 客户端密钥
+WOODPECKER_BITBUCKET_SECRET=
diff --git a/appstore/woodpecker/3.12.0/data.yml b/appstore/woodpecker/3.12.0/data.yml
index 19ec64401..3af65089e 100644
--- a/appstore/woodpecker/3.12.0/data.yml
+++ b/appstore/woodpecker/3.12.0/data.yml
@@ -71,8 +71,159 @@ additionalProperties:
type: text
- default: ""
edit: true
- envKey: WOODPECKER_HOSTNAME
- labelZh: 操作系统主机名
- labelEn: Operating system host name
+ envKey: HTTP_PROXY
+ labelZh: HTTP 代理
+ labelEn: HTTP proxy
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_GITHUB
+ labelZh: GitHub 集成
+ labelEn: GitHub Forges
required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITHUB_CLIENT
+ labelZh: GitHub 客户端 ID
+ labelEn: GitHub client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITHUB_SECRET
+ labelZh: GitHub 客户端密钥
+ labelEn: GitHub client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_GITEA
+ labelZh: Gitea 集成
+ labelEn: Gitea Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITEA_URL
+ labelZh: Gitea 地址
+ labelEn: Gitea URL
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITEA_CLIENT
+ labelZh: Gitea 客户端 ID
+ labelEn: Gitea client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITEA_SECRET
+ labelZh: Gitea 客户端密钥
+ labelEn: Gitea client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_FORGEJO
+ labelZh: Forgejo 集成
+ labelEn: Forgejo Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_FORGEJO_URL
+ labelZh: Forgejo 地址
+ labelEn: Forgejo URL
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_FORGEJO_CLIENT
+ labelZh: Forgejo 客户端 ID
+ labelEn: Forgejo client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_FORGEJO_SECRET
+ labelZh: Forgejo 客户端密钥
+ labelEn: Forgejo client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_GITLAB
+ labelZh: GitLab 集成
+ labelEn: GitLab Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITLAB_URL
+ labelZh: GitLab 地址
+ labelEn: GitLab URL
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITLAB_CLIENT
+ labelZh: GitLab 客户端 ID
+ labelEn: GitLab client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_GITLAB_SECRET
+ labelZh: GitLab 客户端密钥
+ labelEn: GitLab client secret
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: WOODPECKER_BITBUCKET
+ labelZh: Bitbucket 集成
+ labelEn: Bitbucket Forges
+ required: true
+ type: select
+ values:
+ - label: 启用
+ value: "true"
+ - label: 禁用
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_BITBUCKET_CLIENT
+ labelZh: Bitbucket 客户端 ID
+ labelEn: Bitbucket client ID
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: WOODPECKER_BITBUCKET_SECRET
+ labelZh: Bitbucket 客户端密钥
+ labelEn: Bitbucket client secret
+ required: false
type: text
diff --git a/appstore/woodpecker/3.12.0/docker-compose.yml b/appstore/woodpecker/3.12.0/docker-compose.yml
index 7553c7dff..bbc67037c 100644
--- a/appstore/woodpecker/3.12.0/docker-compose.yml
+++ b/appstore/woodpecker/3.12.0/docker-compose.yml
@@ -4,6 +4,7 @@ networks:
services:
woodpecker-agent:
command: agent
+ container_name: agent-woodpecker
depends_on:
- woodpecker-server
env_file:
@@ -12,6 +13,8 @@ services:
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-server,woodpecker-agent,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
image: woodpeckerci/woodpecker-agent:v3.12.0
networks:
- 1panel-network
@@ -26,14 +29,9 @@ services:
- .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}
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-server,woodpecker-agent,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
image: woodpeckerci/woodpecker-server:v3.12.0
labels:
createdBy: Apps
diff --git a/appstore/woodpecker/3.12.0/scripts/init.sh b/appstore/woodpecker/3.12.0/scripts/init.sh
index 07fb8c3fe..4679b2bcc 100644
--- a/appstore/woodpecker/3.12.0/scripts/init.sh
+++ b/appstore/woodpecker/3.12.0/scripts/init.sh
@@ -10,6 +10,10 @@ if [ -f .env ]; then
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+ DATA_DIR="$WOODPECKER_ROOT_PATH"
+
+ chmod -R 777 "$DATA_DIR"
+
echo "Check Finish."
else
diff --git a/appstore/woodpecker/README.md b/appstore/woodpecker/README.md
index 99f969b31..0241d2386 100644
--- a/appstore/woodpecker/README.md
+++ b/appstore/woodpecker/README.md
@@ -6,6 +6,13 @@

+## 安装说明
+
+### 密钥
+
+服务器和代理使用共享密钥来验证通信。该密钥应该是一个随机字符串,您需要对其保密。
+您可以使用 `openssl rand -hex 32` 生成这样的字符串。
+
## 特性
+ 开源且免费
diff --git a/appstore/woodpecker/data.yml b/appstore/woodpecker/data.yml
index b5ecf3ad4..a747da811 100644
--- a/appstore/woodpecker/data.yml
+++ b/appstore/woodpecker/data.yml
@@ -3,6 +3,7 @@ additionalProperties:
name: Woodpecker (啄木鸟)
tags:
- WebSite
+ - DevOps
- Local
shortDescZh: 啄木鸟是一个简单而强大的CI/CD引擎,具有很强的可扩展性
shortDescEn: Woodpecker is a simple, yet powerful CI/CD engine with great extensibility
@@ -13,4 +14,11 @@ additionalProperties:
github: https://github.com/woodpecker-ci/woodpecker/
document: https://woodpecker-ci.org/
architectures:
+ - 386
- amd64
+ - arm64
+ - ppc64le
+ - riscv64
+ - s390x
+ - arm/v6
+ - arm/v7
diff --git a/dockge/woodpecker-agent/.env b/dockge/woodpecker-agent/.env
new file mode 100644
index 000000000..d87f22102
--- /dev/null
+++ b/dockge/woodpecker-agent/.env
@@ -0,0 +1,12 @@
+# 数据持久化路径 [必填]
+WOODPECKER_ROOT_PATH=/home/woodpecker
+
+# 数据持久化路径 [必填]
+WOODPECKER_SERVER=localhost:9000
+
+# 密钥 [必填]
+WOODPECKER_AGENT_SECRET=
+
+# 最大任务数 [必填]
+WOODPECKER_MAX_WORKFLOWS=4
+
diff --git a/dockge/woodpecker-agent/docker-compose.yml b/dockge/woodpecker-agent/docker-compose.yml
new file mode 100644
index 000000000..52c7b5b02
--- /dev/null
+++ b/dockge/woodpecker-agent/docker-compose.yml
@@ -0,0 +1,20 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ woodpecker-agent:
+ command: agent
+ container_name: woodpecker-agent
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-agent,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
+ 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
diff --git a/dockge/woodpecker-agent/envs/default.env b/dockge/woodpecker-agent/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/dockge/woodpecker-agent/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/woodpecker-agent/envs/global.env b/dockge/woodpecker-agent/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/dockge/woodpecker-agent/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/dockge/woodpecker-server/.env b/dockge/woodpecker-server/.env
new file mode 100644
index 000000000..5dd7a484f
--- /dev/null
+++ b/dockge/woodpecker-server/.env
@@ -0,0 +1,84 @@
+# 数据持久化路径 [必填]
+WOODPECKER_ROOT_PATH=/home/woodpecker
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8000
+
+# GRPC 端口 [必填]
+PANEL_APP_PORT_GRPC=9000
+
+# 密钥 [必填]
+WOODPECKER_AGENT_SECRET=
+
+# 访问地址 [必填]
+WOODPECKER_HOST=http://localhost:8000
+
+# 是否允许注册 [必填]
+WOODPECKER_OPEN=false
+
+# 管理员账户列表
+WOODPECKER_ADMIN=
+
+# 组织列表
+WOODPECKER_ORGS=
+
+# 登录过期时间 [必填]
+WOODPECKER_SESSION_EXPIRES=72h
+
+# HTTP 代理
+HTTP_PROXY=
+
+# GitHub 集成 [必填]
+WOODPECKER_GITHUB=false
+
+# GitHub 客户端 ID
+WOODPECKER_GITHUB_CLIENT=
+
+# GitHub 客户端密钥
+WOODPECKER_GITHUB_SECRET=
+
+# Gitea 集成 [必填]
+WOODPECKER_GITEA=false
+
+# Gitea 地址
+WOODPECKER_GITEA_URL=
+
+# Gitea 客户端 ID
+WOODPECKER_GITEA_CLIENT=
+
+# Gitea 客户端密钥
+WOODPECKER_GITEA_SECRET=
+
+# Forgejo 集成 [必填]
+WOODPECKER_FORGEJO=false
+
+# Forgejo 地址
+WOODPECKER_FORGEJO_URL=
+
+# Forgejo 客户端 ID
+WOODPECKER_FORGEJO_CLIENT=
+
+# Forgejo 客户端密钥
+WOODPECKER_FORGEJO_SECRET=
+
+# GitLab 集成 [必填]
+WOODPECKER_GITLAB=false
+
+# GitLab 地址
+WOODPECKER_GITLAB_URL=
+
+# GitLab 客户端 ID
+WOODPECKER_GITLAB_CLIENT=
+
+# GitLab 客户端密钥
+WOODPECKER_GITLAB_SECRET=
+
+# Bitbucket 集成 [必填]
+WOODPECKER_BITBUCKET=false
+
+# Bitbucket 客户端 ID
+WOODPECKER_BITBUCKET_CLIENT=
+
+# Bitbucket 客户端密钥
+WOODPECKER_BITBUCKET_SECRET=
+
diff --git a/dockge/woodpecker-server/docker-compose.yml b/dockge/woodpecker-server/docker-compose.yml
new file mode 100644
index 000000000..445852e39
--- /dev/null
+++ b/dockge/woodpecker-server/docker-compose.yml
@@ -0,0 +1,25 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ woodpecker-server:
+ container_name: woodpecker-server
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - TZ=Asia/Shanghai
+ - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-server,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
+ image: woodpeckerci/woodpecker-server:v3.12.0
+ labels:
+ createdBy: Apps
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8000
+ - ${PANEL_APP_PORT_GRPC}:9000
+ restart: always
+ volumes:
+ - ${WOODPECKER_ROOT_PATH}/server:/var/lib/woodpecker/
diff --git a/dockge/woodpecker-server/envs/default.env b/dockge/woodpecker-server/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/dockge/woodpecker-server/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/woodpecker-server/envs/global.env b/dockge/woodpecker-server/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/dockge/woodpecker-server/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/dockge/woodpecker/.env b/dockge/woodpecker/.env
index ec58d30e4..1ee257044 100644
--- a/dockge/woodpecker/.env
+++ b/dockge/woodpecker/.env
@@ -25,6 +25,60 @@ WOODPECKER_ORGS=
# 登录过期时间 [必填]
WOODPECKER_SESSION_EXPIRES=72h
-# 操作系统主机名 [必填]
-WOODPECKER_HOSTNAME=
+# HTTP 代理
+HTTP_PROXY=
+
+# GitHub 集成 [必填]
+WOODPECKER_GITHUB=false
+
+# GitHub 客户端 ID
+WOODPECKER_GITHUB_CLIENT=
+
+# GitHub 客户端密钥
+WOODPECKER_GITHUB_SECRET=
+
+# Gitea 集成 [必填]
+WOODPECKER_GITEA=false
+
+# Gitea 地址
+WOODPECKER_GITEA_URL=
+
+# Gitea 客户端 ID
+WOODPECKER_GITEA_CLIENT=
+
+# Gitea 客户端密钥
+WOODPECKER_GITEA_SECRET=
+
+# Forgejo 集成 [必填]
+WOODPECKER_FORGEJO=false
+
+# Forgejo 地址
+WOODPECKER_FORGEJO_URL=
+
+# Forgejo 客户端 ID
+WOODPECKER_FORGEJO_CLIENT=
+
+# Forgejo 客户端密钥
+WOODPECKER_FORGEJO_SECRET=
+
+# GitLab 集成 [必填]
+WOODPECKER_GITLAB=false
+
+# GitLab 地址
+WOODPECKER_GITLAB_URL=
+
+# GitLab 客户端 ID
+WOODPECKER_GITLAB_CLIENT=
+
+# GitLab 客户端密钥
+WOODPECKER_GITLAB_SECRET=
+
+# Bitbucket 集成 [必填]
+WOODPECKER_BITBUCKET=false
+
+# Bitbucket 客户端 ID
+WOODPECKER_BITBUCKET_CLIENT=
+
+# Bitbucket 客户端密钥
+WOODPECKER_BITBUCKET_SECRET=
diff --git a/dockge/woodpecker/docker-compose.yml b/dockge/woodpecker/docker-compose.yml
index 7553c7dff..bbc67037c 100644
--- a/dockge/woodpecker/docker-compose.yml
+++ b/dockge/woodpecker/docker-compose.yml
@@ -4,6 +4,7 @@ networks:
services:
woodpecker-agent:
command: agent
+ container_name: agent-woodpecker
depends_on:
- woodpecker-server
env_file:
@@ -12,6 +13,8 @@ services:
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-server,woodpecker-agent,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
image: woodpeckerci/woodpecker-agent:v3.12.0
networks:
- 1panel-network
@@ -26,14 +29,9 @@ services:
- .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}
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - NO_PROXY=127.0.0.1,localhost,.local,woodpecker-server,woodpecker-agent,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
image: woodpeckerci/woodpecker-server:v3.12.0
labels:
createdBy: Apps