diff --git a/apps/woodpecker/1.0.2/.env.sample b/apps/woodpecker/1.0.2/.env.sample new file mode 100644 index 00000000..9b4b8eba --- /dev/null +++ b/apps/woodpecker/1.0.2/.env.sample @@ -0,0 +1,9 @@ +CONTAINER_NAME="woodpecker" +DATA_PATH="./data" +PANEL_APP_PORT_HTTP="40122" +REGISTER_SWITCH="false" +WOODPECKER_AGENT_SECRET="" +WOODPECKER_GITHUB_CLIENT="" +WOODPECKER_GITHUB_SECRET="" +WOODPECKER_GITHUB_URL="https://github.com" +WOODPECKER_HOST="http://ci.example.com" diff --git a/apps/woodpecker/1.0.2/data.yml b/apps/woodpecker/1.0.2/data.yml new file mode 100644 index 00000000..4c667075 --- /dev/null +++ b/apps/woodpecker/1.0.2/data.yml @@ -0,0 +1,59 @@ +additionalProperties: + formFields: + - default: 40122 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text + - default: "false" + edit: true + envKey: REGISTER_SWITCH + labelEn: Enable register (true or false) + labelZh: 启用注册(true/false) + required: true + type: text + - default: http://ci.example.com + edit: true + envKey: WOODPECKER_HOST + labelEn: External URL + labelZh: 外部访问地址 + required: true + type: text + - default: https://github.com + edit: true + envKey: WOODPECKER_GITHUB_URL + labelEn: Github URL + labelZh: Github地址 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_GITHUB_CLIENT + labelEn: CLIENT Vaule + labelZh: CLIENT 值 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_GITHUB_SECRET + labelEn: SECRET Vaule + labelZh: SECRET 值 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_AGENT_SECRET + labelEn: Agent Secret Vaule + labelZh: Agent Secret 值 + required: true + type: text diff --git a/apps/woodpecker/1.0.2/docker-compose.yml b/apps/woodpecker/1.0.2/docker-compose.yml new file mode 100644 index 00000000..716e6d67 --- /dev/null +++ b/apps/woodpecker/1.0.2/docker-compose.yml @@ -0,0 +1,73 @@ +version: '3' +services: + woodpecker-server: + container_name: ${CONTAINER_NAME}-server + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8000 + volumes: + - ${DATA_PATH}/server/woodpecker:/var/lib/woodpecker/ + environment: + - WOODPECKER_OPEN=${REGISTER_SWITCH} + - WOODPECKER_HOST=${WOODPECKER_HOST} + # GitHub + - WOODPECKER_GITHUB=true + - WOODPECKER_GITHUB_URL=${WOODPECKER_GITHUB_URL} + - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} + - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + # Gitea / Forgejo + #- WOODPECKER_GITEA=false + #- WOODPECKER_GITEA_URL=https://try.gitea.io + #- WOODPECKER_GITEA_CLIENT= + #- WOODPECKER_GITEA_SECRET= + #- WOODPECKER_GITEA_SKIP_VERIFY=false + # GitLab + #- WOODPECKER_GITLAB=false + #- WOODPECKER_GITLAB_URL=https://gitlab.com + #- WOODPECKER_GITLAB_CLIENT= + #- WOODPECKER_GITLAB_SECRET= + #- WOODPECKER_GITLAB_SKIP_VERIFY=false + # Bitbucket + #- WOODPECKER_BITBUCKET=false + #- WOODPECKER_BITBUCKET_CLIENT= + #- WOODPECKER_BITBUCKET_SECRET= + # + #- WOODPECKER_GRPC_ADDR=:9000 + #- WOODPECKER_SERVER_ADDR= + #- WOODPECKER_GRPC_SECURE=true # defaults to false + #- WOODPECKER_GRPC_VERIFY=true # default + # + # MySQL + #- WOODPECKER_DATABASE_DRIVER=mysql + #- WOODPECKER_DATABASE_DATASOURCE=root:password@tcp(1.2.3.4:3306)/woodpecker?parseTime=true + # Postgres + #- WOODPECKER_DATABASE_DRIVER=postgres + #- WOODPECKER_DATABASE_DATASOURCE=postgres://root:password@1.2.3.4:5432/postgres?sslmode=disable + image: woodpeckerci/woodpecker-server:v1.0.2 + labels: + createdBy: "Apps" + + woodpecker-agent: + container_name: ${CONTAINER_NAME}-agent + restart: always + networks: + - 1panel-network + command: agent + depends_on: + - woodpecker-server + volumes: + - ${DATA_PATH}/agent/woodpecker:/etc/woodpecker + - /var/run/docker.sock:/var/run/docker.sock + environment: + - WOODPECKER_SERVER=woodpecker-server:9000 + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + image: woodpeckerci/woodpecker-agent:v1.0.2 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/woodpecker/README.md b/apps/woodpecker/README.md new file mode 100644 index 00000000..2f845c7a --- /dev/null +++ b/apps/woodpecker/README.md @@ -0,0 +1,123 @@ +

+ + Woodpecker + +

+
+

+ + + + + + + + Translation status + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ +# Woodpecker + +> Woodpecker is a community fork of the Drone CI system. + +![woodpecker](https://github.com/woodpecker-ci/woodpecker/raw/main/docs/docs/woodpecker.png) + +## 🫶 Support + +Please consider to donate and become a backer. 🙏 [[Become a backer](https://opencollective.com/woodpecker-ci#category-CONTRIBUTE)] + + + +## 🚀 Usage + +### .woodpecker.yml + +- Place your pipeline in a file named `.woodpecker.yml` in your repository +- Pipeline steps can be named as you like +- Run any command in the commands section + +[Read More](https://woodpecker-ci.org/docs/usage/intro) + +### Build steps are containers + +- Define any Docker image as context +- Install the needed tools in custom Docker images, use them as context + +[Read More](https://woodpecker-ci.org/docs/usage/pipeline-syntax#steps) + +### Plugins + +Woodpecker has [official plugins](https://woodpecker-ci.org/plugins), but you can also use your own. + +[Read More](https://woodpecker-ci.org/docs/usage/plugins/plugins) + +## 📖 Documentation + +https://woodpecker-ci.org/ + +## ✨ Contribute + +See [Contributing Guide](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md) + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://woodpecker-ci.org/docs/next/development/getting-started#gitpod) + +## 📣 Translate + +We use an own [Weblate](https://weblate.org/en/) instance at [translate.woodpecker-ci.org](https://translate.woodpecker-ci.org). + + + Translation status + + +## 👋 Who uses Woodpecker? + +[Codeberg](https://codeberg.org), the Woodpecker project itself, and many others. + +Leave a [comment](https://github.com/woodpecker-ci/woodpecker/issues/122) if you're using it as well. + +Also consider using the topic `WoodpeckerCI` in your repository, so others can learn from your config and use the hashtag `#WoodpeckerCI` when talking about the project on social media! + +Here are some places where people mention Woodpecker: + +- [GitHub](https://github.com/topics/WoodpeckerCI) +- [Codeberg](https://codeberg.org/explore/repos?q=woodpeckerci&topic=1) +- [Twitter](https://twitter.com/search?q=%23WoodpeckerCI&src=typed_query) +- [Fediverse](https://mastodon.social/tags/WoodpeckerCI) + +## ✨ Stars over time + +[![Stargazers over time](https://starchart.cc/woodpecker-ci/woodpecker.svg)](https://starchart.cc/woodpecker-ci/woodpecker) + +## License + +Woodpecker is Apache 2.0 licensed with the source files in this repository having a header indicating which license they are under and what copyrights apply. + +Files under the `docs/` folder are licensed under Creative Commons Attribution-ShareAlike 4.0 International Public License. diff --git a/apps/woodpecker/data.yml b/apps/woodpecker/data.yml new file mode 100644 index 00000000..361ce375 --- /dev/null +++ b/apps/woodpecker/data.yml @@ -0,0 +1,20 @@ +name: Woodpecker CI +tags: + - CI/CD +title: 具有极强可扩展性的简单 CI 引擎 +type: CI/CD +description: 具有极强可扩展性的简单 CI 引擎 +additionalProperties: + key: woodpecker + name: Woodpecker CI + tags: + - CI/CD + shortDescZh: 具有极强可扩展性的简单 CI 引擎 + shortDescEn: A simple CI engine with great extensibility + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://woodpecker-ci.org + github: https://github.com/woodpecker-ci/woodpecker + document: https://woodpecker-ci.org/docs/intro \ No newline at end of file diff --git a/apps/woodpecker/latest/.env.sample b/apps/woodpecker/latest/.env.sample new file mode 100644 index 00000000..9b4b8eba --- /dev/null +++ b/apps/woodpecker/latest/.env.sample @@ -0,0 +1,9 @@ +CONTAINER_NAME="woodpecker" +DATA_PATH="./data" +PANEL_APP_PORT_HTTP="40122" +REGISTER_SWITCH="false" +WOODPECKER_AGENT_SECRET="" +WOODPECKER_GITHUB_CLIENT="" +WOODPECKER_GITHUB_SECRET="" +WOODPECKER_GITHUB_URL="https://github.com" +WOODPECKER_HOST="http://ci.example.com" diff --git a/apps/woodpecker/latest/data.yml b/apps/woodpecker/latest/data.yml new file mode 100644 index 00000000..4c667075 --- /dev/null +++ b/apps/woodpecker/latest/data.yml @@ -0,0 +1,59 @@ +additionalProperties: + formFields: + - default: 40122 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text + - default: "false" + edit: true + envKey: REGISTER_SWITCH + labelEn: Enable register (true or false) + labelZh: 启用注册(true/false) + required: true + type: text + - default: http://ci.example.com + edit: true + envKey: WOODPECKER_HOST + labelEn: External URL + labelZh: 外部访问地址 + required: true + type: text + - default: https://github.com + edit: true + envKey: WOODPECKER_GITHUB_URL + labelEn: Github URL + labelZh: Github地址 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_GITHUB_CLIENT + labelEn: CLIENT Vaule + labelZh: CLIENT 值 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_GITHUB_SECRET + labelEn: SECRET Vaule + labelZh: SECRET 值 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_AGENT_SECRET + labelEn: Agent Secret Vaule + labelZh: Agent Secret 值 + required: true + type: text diff --git a/apps/woodpecker/latest/docker-compose.yml b/apps/woodpecker/latest/docker-compose.yml new file mode 100644 index 00000000..ada15bc2 --- /dev/null +++ b/apps/woodpecker/latest/docker-compose.yml @@ -0,0 +1,73 @@ +version: '3' +services: + woodpecker-server: + container_name: ${CONTAINER_NAME}-server + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8000 + volumes: + - ${DATA_PATH}/server/woodpecker:/var/lib/woodpecker/ + environment: + - WOODPECKER_OPEN=${REGISTER_SWITCH} + - WOODPECKER_HOST=${WOODPECKER_HOST} + # GitHub + - WOODPECKER_GITHUB=true + - WOODPECKER_GITHUB_URL=${WOODPECKER_GITHUB_URL} + - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} + - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + # Gitea / Forgejo + #- WOODPECKER_GITEA=false + #- WOODPECKER_GITEA_URL=https://try.gitea.io + #- WOODPECKER_GITEA_CLIENT= + #- WOODPECKER_GITEA_SECRET= + #- WOODPECKER_GITEA_SKIP_VERIFY=false + # GitLab + #- WOODPECKER_GITLAB=false + #- WOODPECKER_GITLAB_URL=https://gitlab.com + #- WOODPECKER_GITLAB_CLIENT= + #- WOODPECKER_GITLAB_SECRET= + #- WOODPECKER_GITLAB_SKIP_VERIFY=false + # Bitbucket + #- WOODPECKER_BITBUCKET=false + #- WOODPECKER_BITBUCKET_CLIENT= + #- WOODPECKER_BITBUCKET_SECRET= + # + #- WOODPECKER_GRPC_ADDR=:9000 + #- WOODPECKER_SERVER_ADDR= + #- WOODPECKER_GRPC_SECURE=true # defaults to false + #- WOODPECKER_GRPC_VERIFY=true # default + # + # MySQL + #- WOODPECKER_DATABASE_DRIVER=mysql + #- WOODPECKER_DATABASE_DATASOURCE=root:password@tcp(1.2.3.4:3306)/woodpecker?parseTime=true + # Postgres + #- WOODPECKER_DATABASE_DRIVER=postgres + #- WOODPECKER_DATABASE_DATASOURCE=postgres://root:password@1.2.3.4:5432/postgres?sslmode=disable + image: woodpeckerci/woodpecker-server:latest + labels: + createdBy: "Apps" + + woodpecker-agent: + container_name: ${CONTAINER_NAME}-agent + restart: always + networks: + - 1panel-network + command: agent + depends_on: + - woodpecker-server + volumes: + - ${DATA_PATH}/agent/woodpecker:/etc/woodpecker + - /var/run/docker.sock:/var/run/docker.sock + environment: + - WOODPECKER_SERVER=woodpecker-server:9000 + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + image: woodpeckerci/woodpecker-agent:latest + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/woodpecker/logo.png b/apps/woodpecker/logo.png new file mode 100644 index 00000000..12e6d8b7 Binary files /dev/null and b/apps/woodpecker/logo.png differ diff --git a/apps/woodpecker/mysql-latest/.env.sample b/apps/woodpecker/mysql-latest/.env.sample new file mode 100644 index 00000000..d9007155 --- /dev/null +++ b/apps/woodpecker/mysql-latest/.env.sample @@ -0,0 +1,14 @@ +CONTAINER_NAME="woodpecker" +DATA_PATH="./data" +PANEL_APP_PORT_HTTP="40122" +REGISTER_SWITCH="false" +WOODPECKER_AGENT_SECRET="" +WOODPECKER_GITHUB_CLIENT="" +WOODPECKER_GITHUB_SECRET="" +WOODPECKER_GITHUB_URL="https://github.com" +WOODPECKER_HOST="http://ci.example.com" +PANEL_DB_HOST="127.0.0.1" +WOODPECKER_DB_PORT="3306" +PANEL_DB_NAME="woodpecker" +PANEL_DB_USER="woodpecker" +PANEL_DB_USER_PASSWORD="MyDBPWD_brls9UwcRasl" diff --git a/apps/woodpecker/mysql-latest/data.yml b/apps/woodpecker/mysql-latest/data.yml new file mode 100644 index 00000000..436b3f48 --- /dev/null +++ b/apps/woodpecker/mysql-latest/data.yml @@ -0,0 +1,107 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: service + default: mysql + labelEn: Database Service + labelZh: 数据库服务 + params: + - envKey: WOODPECKER_DB_PORT + key: mysql + type: param + value: "3306" + - envKey: WOODPECKER_DB_PORT + key: postgresql + type: param + value: "5432" + required: true + type: apps + values: + - label: MySQL + value: mysql + - default: woodpecker + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + random: true + required: true + rule: paramCommon + type: text + - default: woodpecker + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: woodpecker + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + random: true + required: true + rule: paramComplexity + type: password + - default: 40122 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text + - default: "false" + edit: true + envKey: REGISTER_SWITCH + labelEn: Enable register (true or false) + labelZh: 启用注册(true/false) + required: true + type: text + - default: http://ci.example.com + edit: true + envKey: WOODPECKER_HOST + labelEn: External URL + labelZh: 外部访问地址 + required: true + type: text + - default: https://github.com + edit: true + envKey: WOODPECKER_GITHUB_URL + labelEn: Github URL + labelZh: Github地址 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_GITHUB_CLIENT + labelEn: CLIENT Vaule + labelZh: CLIENT 值 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_GITHUB_SECRET + labelEn: SECRET Vaule + labelZh: SECRET 值 + required: true + type: text + - default: '' + edit: true + envKey: WOODPECKER_AGENT_SECRET + labelEn: Agent Secret Vaule + labelZh: Agent Secret 值 + required: true + type: text diff --git a/apps/woodpecker/mysql-latest/docker-compose.yml b/apps/woodpecker/mysql-latest/docker-compose.yml new file mode 100644 index 00000000..9fc7aa83 --- /dev/null +++ b/apps/woodpecker/mysql-latest/docker-compose.yml @@ -0,0 +1,73 @@ +version: '3' +services: + woodpecker-server: + container_name: ${CONTAINER_NAME}-server + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8000 + volumes: + - ${DATA_PATH}/server/woodpecker:/var/lib/woodpecker/ + environment: + - WOODPECKER_OPEN=${REGISTER_SWITCH} + - WOODPECKER_HOST=${WOODPECKER_HOST} + # GitHub + - WOODPECKER_GITHUB=true + - WOODPECKER_GITHUB_URL=${WOODPECKER_GITHUB_URL} + - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} + - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + # Gitea / Forgejo + #- WOODPECKER_GITEA=false + #- WOODPECKER_GITEA_URL=https://try.gitea.io + #- WOODPECKER_GITEA_CLIENT= + #- WOODPECKER_GITEA_SECRET= + #- WOODPECKER_GITEA_SKIP_VERIFY=false + # GitLab + #- WOODPECKER_GITLAB=false + #- WOODPECKER_GITLAB_URL=https://gitlab.com + #- WOODPECKER_GITLAB_CLIENT= + #- WOODPECKER_GITLAB_SECRET= + #- WOODPECKER_GITLAB_SKIP_VERIFY=false + # Bitbucket + #- WOODPECKER_BITBUCKET=false + #- WOODPECKER_BITBUCKET_CLIENT= + #- WOODPECKER_BITBUCKET_SECRET= + # + #- WOODPECKER_GRPC_ADDR=:9000 + #- WOODPECKER_SERVER_ADDR= + #- WOODPECKER_GRPC_SECURE=true # defaults to false + #- WOODPECKER_GRPC_VERIFY=true # default + # + # MySQL + - WOODPECKER_DATABASE_DRIVER=mysql + - WOODPECKER_DATABASE_DATASOURCE=${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@tcp(${PANEL_DB_HOST}:${WOODPECKER_DB_PORT})/${PANEL_DB_NAME}?parseTime=true + # Postgres + #- WOODPECKER_DATABASE_DRIVER=postgres + #- WOODPECKER_DATABASE_DATASOURCE=postgres://root:password@1.2.3.4:5432/postgres?sslmode=disable + image: woodpeckerci/woodpecker-server:latest + labels: + createdBy: "Apps" + + woodpecker-agent: + container_name: ${CONTAINER_NAME}-agent + restart: always + networks: + - 1panel-network + command: agent + depends_on: + - woodpecker-server + volumes: + - ${DATA_PATH}/agent/woodpecker:/etc/woodpecker + - /var/run/docker.sock:/var/run/docker.sock + environment: + - WOODPECKER_SERVER=woodpecker-server:9000 + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + image: woodpeckerci/woodpecker-agent:latest + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/docs/app-list.png b/docs/app-list.png index 734897ea..326a7567 100644 Binary files a/docs/app-list.png and b/docs/app-list.png differ