diff --git a/.github/ISSUE_TEMPLATE/1-Update-Needed.yml b/.github/ISSUE_TEMPLATE/1-Update-Needed.yml new file mode 100644 index 000000000..64cbda57f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-Update-Needed.yml @@ -0,0 +1,53 @@ +name: "⏰为应用催更" +description: "报告缺陷来帮助我们完善。 / Create a report to help us improve" +title: "[需要更新应用] 哪个应用需要更新? / Which app needs an update?" +labels: + - Update Needed +body: + - type: markdown + attributes: + value: | + ## Welcome! + + - type: input + attributes: + label: 应用名称 / App Name + description: + 于此填入待更新的应用所在的文件夹(例如`gitlab-jh`)。 + + Enter the folder name of the app that needs an update (for example, `gitlab-jh`). + placeholder: (e.g. gitlab-jh) + validations: + required: true + + - type: input + attributes: + label: 应用版本 / App Version + description: + 有些应用有`latest`版和带版本号的版本,于此填入需要更新的版本所在的文件夹(例如`18.0.1-jh.0`) + + Some apps have `latest` and versioned versions, enter the folder name of the version that needs an update here (for example, `18.0.1-jh.0`). + placeholder: (e.g. 18.0.1-jh.0) + validations: + required: true + + - type: textarea + attributes: + label: 应用镜像当前的版本 / App's Image Current Version + description: + 于此填入当前版本完整的镜像名 (例如`registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0`) + + Enter the full image name of the current version here (for example, `registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0`). + placeholder: | + (e.g. registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0) + validations: + required: true + + - type: textarea + attributes: + label: 应用镜像最新的版本 / App's Image Latest Version + description: 于此填入最新版本完整的镜像名(例如`registry.gitlab.cn/omnibus/gitlab-jh:18.0.2-jh.0`) / Enter the full image name of the latest version here (for example, `registry.gitlab.cn/omnibus/gitlab-jh:18.0.2-jh.0`). + placeholder: | + (e.g. registry.gitlab.cn/omnibus/gitlab-jh:18.0.2-jh.0) + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/2-Add-New-App.yml b/.github/ISSUE_TEMPLATE/2-Add-New-App.yml new file mode 100644 index 000000000..689dbe52c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-Add-New-App.yml @@ -0,0 +1,51 @@ +name: "📝提交新应用 / Add New App" +description: "报告缺陷来帮助我们完善。 / Create a report to help us improve" +title: "[需要增加应用] 需要增加哪个应用? / Which app needs to be added?" +labels: + - Add New App +body: + - type: markdown + attributes: + value: | + ## Welcome! + + - type: input + attributes: + label: 应用名称 / App Name + description: + 想要添加哪个应用?请填于此。 + Which app do you want to add? Please fill in here. + placeholder: (e.g. gitlab-jh) + validations: + required: true + + - type: textarea + attributes: + label: 想要添加的应用有官方的 Docker 镜像吗?/ Do the app you want to add have official Docker images? + description: + 没有官方镜像的应用将不能被添加。 + + Apps without official Docker images will not be added. + placeholder: (e.g. registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0:18.0.1-jh.0) + validations: + required: true + + - type: textarea + attributes: + label: 该应用文档的URL / The URL of the app's documentation + description: + 该应用文档的URL,最好能定位到使用 Docker Compose 安装的部分。例如 https://gitlab.cn/docs/jh/install/docker.html#%E4%BD%BF%E7%94%A8-docker-compose-%E5%AE%89%E8%A3%85%E6%9E%81%E7%8B%90gitlab + placeholder: | + (e.g. https://gitlab.cn/docs/jh/install/docker.html#%E4%BD%BF%E7%94%A8-docker-compose-%E5%AE%89%E8%A3%85%E6%9E%81%E7%8B%90gitlab) + validations: + required: true + + - type: textarea + attributes: + label: 该应用的 Logo / The app's logo + description: + 应用无水印 logo , 以正方形为佳,最好是 180 * 180 px,复制图片后,粘贴到此处。 + + The app's logo without watermark, it's best to be square, preferably 180 * 180 px, copy the image and paste it here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..8e9f9162b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false +contact_links: [] \ No newline at end of file diff --git a/.github/workflows/merge-prs.yml b/.github/workflows/merge-prs.yml new file mode 100644 index 000000000..79cde2a86 --- /dev/null +++ b/.github/workflows/merge-prs.yml @@ -0,0 +1,40 @@ +name: Auto Merge Open PRs +on: + schedule: + - cron: 0 0 3/3 * * + workflow_dispatch: + +jobs: + merge-prs: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: 登录到 GitHub CLI + run: gh auth login --with-token <<< "${{ github.token }}" + + - name: 获取可合并的 PR + id: get-prs + run: | + pr_list=$( gh pr list --state open --json number,mergeable --limit 1000 --jq 'sort_by(.number) | .[] | .number' ) + + pr_list=$(echo "$pr_list" | tr '\n' ' ') + + echo "PRs to merge: $pr_list" + echo "pr_list=$pr_list" >> $GITHUB_OUTPUT + + - name: 合并 PR + run: | + for pr in ${{ steps.get-prs.outputs.pr_list }}; do + if ! gh pr merge $pr --merge --delete-branch --body ""; then + echo "⚠️ 合并 PR #$pr 失败" + else + echo "✅ 合并 PR #$pr 成功" + fi + sleep 3 + done \ No newline at end of file diff --git a/.github/workflows/renovate-app-version.sh b/.github/workflows/renovate-app-version.sh index b5b2f9557..862966f94 100644 --- a/.github/workflows/renovate-app-version.sh +++ b/.github/workflows/renovate-app-version.sh @@ -9,18 +9,30 @@ docker_compose_files=$(find apps/$app_name/$old_version -name docker-compose.yml for docker_compose_file in $docker_compose_files do - # Assuming that the app version will be from the first docker image - first_service=$(yq '.services | keys | .[0]' $docker_compose_file) + # Assuming that the app version will be from the first docker image + first_service=$(yq '.services | keys | .[0]' $docker_compose_file) + echo "第一个服务是: $first_service" - image=$(yq .services.$first_service.image $docker_compose_file) + image=$(yq .services.$first_service.image $docker_compose_file) + echo "该服务的镜像: $image" - # Only apply changes if the format is : - if [[ "$image" == *":"* ]]; then - version=$(cut -d ":" -f2- <<< "$image") + # Only apply changes if the format is : + if [[ "$image" == *":"* ]]; then + version=$(cut -d ":" -f2- <<< "$image") + echo "版本号: $version" - # Trim the "v" prefix - trimmed_version=${version/#"v"} - - mv apps/$app_name/$old_version apps/$app_name/$trimmed_version + # Trim the "v" prefix + trimmed_version=${version/#"v"} + echo "Trimmed version: $trimmed_version" + if [ "$old_version" != "$trimmed_version" ]; then + echo "将 apps/$app_name/$old_version 重命名为 apps/$app_name/$trimmed_version" + if [ ! -d "apps/$app_name/$trimmed_version" ]; then + mv apps/$app_name/$old_version apps/$app_name/$trimmed_version + else + echo "apps/$app_name/$trimmed_version 文件夹已存在" + exit 1 + fi + + fi fi done \ No newline at end of file diff --git a/.github/workflows/renovate-app-version.yml b/.github/workflows/renovate-app-version.yml index 6d2cc9b80..46e45f819 100644 --- a/.github/workflows/renovate-app-version.yml +++ b/.github/workflows/renovate-app-version.yml @@ -11,6 +11,8 @@ on: jobs: update-app-version: runs-on: ubuntu-latest + permissions: + contents: write steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml index 1d9852ada..bf39e0c3e 100644 --- a/.github/workflows/renovate.yml +++ b/.github/workflows/renovate.yml @@ -3,9 +3,6 @@ name: Renovate on: schedule: - cron: "0 0 * * *" - push: - branches: - - localApps workflow_dispatch: inputs: manual-trigger: @@ -19,7 +16,7 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run Renovate - uses: renovatebot/github-action@v41.0.6 + uses: renovatebot/github-action@12f8ed8e6a936a00dc66b628d224488ac406b5e8 # v42.0.5 with: useSlim: false - token: ${{ secrets.GITHUBTOKEN }} + token: ${{ github.token }} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..52cda1c0f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.bat +*.sh \ No newline at end of file diff --git a/README-en.md b/README-en.md index 658535519..00473635b 100644 --- a/README-en.md +++ b/README-en.md @@ -1,17 +1,9 @@ -[中文](https://github.com/okxlin/appstore/blob/localApps/README.md) | English -*** - -## Contribution Link - -[**Click here to contribute with AFDIAN**](https://afdian.com/a/dockerapps) - -[![**Click here to contribute with AFDIAN**](https://github.com/okxlin/appstore/raw/localApps/docs/afdian-logo.png)](https://afdian.com/a/dockerapps) +[中文](https://github.com/pooneyy/1Panel-appstore/blob/localApps/README.md) | English * * * ## Table of Contents -- [Contribution Link](#contribution-link) - [Table of Contents](#table-of-contents) - [Disclaimer](#disclaimer) - [1. Image Container Adaptation](#1-image-container-adaptation) @@ -53,12 +45,6 @@ These are some configurations of docker applications adapted for the `1Panel` st Dedicated to running various Docker applications with just one click. Enjoy convenience and efficiency without complex configurations. -### 1Panel Third-Party App Store Categories and Introduction - -- https://1p.131.gs - -**Special thanks to the author [@baozishu](https://github.com/baozishu)** - ## 2. Usage The default installation path of `1Panel` is `/opt/`, which can be modified as needed. @@ -74,7 +60,7 @@ The default installation path of `1Panel` is `/opt/`, which can be modified as n In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal: ```shell -git clone -b localApps https://ghp.ci/https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps +git clone -b localApps https://ghp.ci/https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/ @@ -88,7 +74,7 @@ Then refresh the local applications in the app store. In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal: ```shell -wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip +wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip @@ -108,7 +94,7 @@ Then refresh the local applications in the app store. In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal: ```shell -git clone -b localApps https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps +git clone -b localApps https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/ @@ -122,7 +108,7 @@ Then refresh the local applications in the app store. In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal: ```shell -wget -P /opt/1panel/resource/apps/local https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip +wget -P /opt/1panel/resource/apps/local https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip @@ -165,4 +151,4 @@ cat ./data/hbbs/id_ed25519.pub ## 4. App Overview -![](https://github.com/okxlin/appstore/raw/localApps/docs/app-list.png) +![](https://github.com/pooneyy/1Panel-appstore/raw/localApps/docs/app-list.png) diff --git a/README.md b/README.md index 927684250..5ec592efd 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,8 @@ - 中文 | [English](https://github.com/okxlin/appstore/blob/localApps/README-en.md) -*** - -## 打赏链接 - -[**点我打赏,用爱发电**](https://afdian.com/a/dockerapps) - -[![**点我打赏,用爱发电**](https://github.com/okxlin/appstore/raw/localApps/docs/afdian-logo.png)](https://afdian.com/a/dockerapps) + 中文 | [English](https://github.com/pooneyy/1Panel-appstore/blob/localApps/README-en.md) * * * ## 目录 -- [打赏链接](#打赏链接) - [目录](#目录) - [免责声明](#免责声明) - [1. 镜像容器适配](#1-镜像容器适配) @@ -52,12 +44,6 @@ 致力于一键运行各种 Docker 应用。无需复杂配置,享受便利和高效。 -### 1Panel第三方应用商店应用分类合集与介绍 - -- https://1p.131.gs - -**感谢作者[@包子叔](https://github.com/baozishu)** - ## 2. 使用方式 默认`1Panel`安装在`/opt/`路径下,如果不是按需修改以下。 @@ -72,7 +58,7 @@ `1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令, ```shell -git clone -b localApps https://ghp.ci/https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps +git clone -b localApps https://ghp.ci/https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/ @@ -85,7 +71,7 @@ rm -rf /opt/1panel/resource/apps/local/appstore-localApps `1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令, ```shell -wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip +wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip @@ -104,7 +90,7 @@ rm -rf /opt/1panel/resource/apps/local/localApps.zip `1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令, ```shell -git clone -b localApps https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps +git clone -b localApps https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/ @@ -117,7 +103,7 @@ rm -rf /opt/1panel/resource/apps/local/appstore-localApps `1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令, ```shell -wget -P /opt/1panel/resource/apps/local https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip +wget -P /opt/1panel/resource/apps/local https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip @@ -161,4 +147,4 @@ cat ./data/hbbs/id_ed25519.pub ## 4. 应用一览图 -![](https://github.com/okxlin/appstore/raw/localApps/docs/app-list.png) +![](https://github.com/pooneyy/1Panel-appstore/raw/localApps/docs/app-list.png) diff --git a/docs/afdian-logo.png b/docs/afdian-logo.png deleted file mode 100644 index 3f77aed22..000000000 Binary files a/docs/afdian-logo.png and /dev/null differ diff --git a/renovate.json b/renovate.json index 9b085efba..2819208da 100644 --- a/renovate.json +++ b/renovate.json @@ -1,45 +1,101 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["config:base"], + "extends": [ + "config:recommended" + ], "gitIgnoredAuthors": [ "githubaction@githubaction.com" ], "rebaseWhen": "never", "packageRules": [ { - "packageNames": ["docker-compose"], + "matchPackageNames": [ + "docker-compose" + ], "automerge": true }, { - "matchFileNames": ["apps/mysql/5.5.*/*.yml"], + "matchPackageNames": [ + "*.aliyuncs.com/**", + "*.gitlab.cn/**", + "*.myhuaweicloud.com/**" + ], + "enabled": false + }, + { + "matchPackageNames": ["heimdall**"], + "allowedVersions": "^!/\\d{4}\\.\\d{1,2}\\.\\d{1,2}$/", + "enabled": false + }, + { + "matchPackageNames": ["xhofe/alist"], + "matchCurrentVersion": "v3.40.0", + "allowedVersions": "v3.40.0" + }, + { + "matchPackageNames":[ + "mysql**", + "node**", + "postgres**", + "redis**" + ], + "enabled": false + }, + { + "matchFileNames": [ + "apps/mysql/5.5.*/*.yml" + ], "allowedVersions": "/^5.5.*/" }, { - "matchFileNames": ["apps/mysql/5.6.*/*.yml"], + "matchFileNames": [ + "apps/mysql/5.6.*/*.yml" + ], "allowedVersions": "/^5.6.*/" }, { - "matchFileNames": ["apps/mysql/5.7.*/*.yml"], + "matchFileNames": [ + "apps/mysql/5.7.*/*.yml" + ], "allowedVersions": "/^5.7.*/" }, { - "matchFileNames": ["apps/mysql/8.0.*/*.yml"], + "matchFileNames": [ + "apps/mysql/8.0.*/*.yml" + ], "allowedVersions": "/^8.0.*/" }, { - "matchFileNames": ["apps/mysql/8.4.*/*.yml"], + "matchFileNames": [ + "apps/mysql/8.4.*/*.yml" + ], "allowedVersions": "/^8.4.*/" }, { - "matchFileNames": ["apps/php-unofficial/7.4.*/*.yml"], + "matchFileNames": [ + "apps/php-unofficial/7.4.*/*.yml", + "apps/php-unofficial/7.4.*/Dockerfile" + ], "allowedVersions": "/^7.4.*/" }, { - "matchFileNames": ["apps/php-unofficial/8.1.*/*.yml"], + "matchFileNames": [ + "apps/php-unofficial/8.1.*/*.yml", + "apps/php-unofficial/8.1.*/Dockerfile" + ], "allowedVersions": "/^8.1.*/" }, { - "matchFileNames": ["apps/reader/2.7.*/*.yml"], + "matchFileNames": [ + "apps/php-unofficial/8.4.*/*.yml", + "apps/php-unofficial/8.4.*/Dockerfile" + ], + "allowedVersions": "/^8.4.*/" + }, + { + "matchFileNames": [ + "apps/reader/2.7.*/*.yml" + ], "allowedVersions": "/^2.7.*/" } ],