diff --git a/ALS/versions/latest/README.md b/ALS/README.md
similarity index 100%
rename from ALS/versions/latest/README.md
rename to ALS/README.md
diff --git a/ALS/data.yml b/ALS/data.yml
new file mode 100644
index 00000000..1d8bf092
--- /dev/null
+++ b/ALS/data.yml
@@ -0,0 +1,20 @@
+name: ALS
+tags:
+ - 工具
+title: Another Looking-glass Server,测速服务端
+type: 工具
+description: Another Looking-glass Server,测速服务端
+additionalProperties:
+ key: ALS
+ name: ALS
+ tags:
+ - Tool
+ shortDescZh: Another Looking-glass Server,测速服务端
+ shortDescEn: Another Looking-glass Server,Speed measurement server
+ type: tool
+ crossVersionUpdate: false
+ limit: 0
+ recommend: 0
+ website: https://github.com/wikihost-opensource/als
+ github: https://github.com/wikihost-opensource/als
+ document: https://github.com/wikihost-opensource/als
diff --git a/ALS/versions/latest/.env.sample b/ALS/latest/.env.sample
similarity index 100%
rename from ALS/versions/latest/.env.sample
rename to ALS/latest/.env.sample
diff --git a/ALS/latest/data.yml b/ALS/latest/data.yml
new file mode 100644
index 00000000..981900c6
--- /dev/null
+++ b/ALS/latest/data.yml
@@ -0,0 +1,10 @@
+additionalProperties:
+ formFields:
+ - default: 20080
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
diff --git a/ALS/versions/latest/docker-compose.yml b/ALS/latest/docker-compose.yml
similarity index 100%
rename from ALS/versions/latest/docker-compose.yml
rename to ALS/latest/docker-compose.yml
diff --git a/ALS/metadata/logo.png b/ALS/logo.png
similarity index 100%
rename from ALS/metadata/logo.png
rename to ALS/logo.png
diff --git a/ALS/metadata/app.json b/ALS/metadata/app.json
deleted file mode 100644
index c033081f..00000000
--- a/ALS/metadata/app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "key": "ALS",
- "name": "ALS",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "Another Looking-glass Server,测速服务端",
- "shortDescEn": "Another Looking-glass Server,Speed measurement server",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://github.com/wikihost-opensource/als",
- "github": "https://github.com/wikihost-opensource/als",
- "document": "https://github.com/wikihost-opensource/als"
-}
diff --git a/ALS/versions/latest/config.json b/ALS/versions/latest/config.json
deleted file mode 100644
index 930d9243..00000000
--- a/ALS/versions/latest/config.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 20080,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- }
- ]
-}
diff --git a/PHP-Unofficial/versions/7.4.33-alpine/.env.sample b/PHP-Unofficial/7.4.33-alpine/.env.sample
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33-alpine/.env.sample
rename to PHP-Unofficial/7.4.33-alpine/.env.sample
diff --git a/PHP-Unofficial/versions/7.4.33-alpine/Dockerfile b/PHP-Unofficial/7.4.33-alpine/Dockerfile
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33-alpine/Dockerfile
rename to PHP-Unofficial/7.4.33-alpine/Dockerfile
diff --git a/PHP-Unofficial/7.4.33-alpine/data.yml b/PHP-Unofficial/7.4.33-alpine/data.yml
new file mode 100644
index 00000000..d8ec3ba9
--- /dev/null
+++ b/PHP-Unofficial/7.4.33-alpine/data.yml
@@ -0,0 +1,16 @@
+additionalProperties:
+ formFields:
+ - default: 127.0.0.1:9003
+ edit: true
+ envKey: FastCGI_Server_PORT
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ type: text
+ - default: /opt/1panel/apps/openresty/OpenResty/www
+ edit: true
+ envKey: Site_Path
+ labelEn: Website directory file path
+ labelZh: 网站目录文件路径
+ required: true
+ type: text
diff --git a/PHP-Unofficial/versions/7.4.33-alpine/data/php-fpm.conf b/PHP-Unofficial/7.4.33-alpine/data/php-fpm.conf
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33-alpine/data/php-fpm.conf
rename to PHP-Unofficial/7.4.33-alpine/data/php-fpm.conf
diff --git a/PHP-Unofficial/versions/7.4.33-alpine/data/php.ini b/PHP-Unofficial/7.4.33-alpine/data/php.ini
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33-alpine/data/php.ini
rename to PHP-Unofficial/7.4.33-alpine/data/php.ini
diff --git a/PHP-Unofficial/versions/7.4.33-alpine/docker-compose.yml b/PHP-Unofficial/7.4.33-alpine/docker-compose.yml
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33-alpine/docker-compose.yml
rename to PHP-Unofficial/7.4.33-alpine/docker-compose.yml
diff --git a/PHP-Unofficial/versions/7.4.33/.env.sample b/PHP-Unofficial/7.4.33/.env.sample
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33/.env.sample
rename to PHP-Unofficial/7.4.33/.env.sample
diff --git a/PHP-Unofficial/versions/7.4.33/Dockerfile b/PHP-Unofficial/7.4.33/Dockerfile
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33/Dockerfile
rename to PHP-Unofficial/7.4.33/Dockerfile
diff --git a/PHP-Unofficial/7.4.33/data.yml b/PHP-Unofficial/7.4.33/data.yml
new file mode 100644
index 00000000..5ae68f7c
--- /dev/null
+++ b/PHP-Unofficial/7.4.33/data.yml
@@ -0,0 +1,16 @@
+additionalProperties:
+ formFields:
+ - default: 127.0.0.1:9001
+ edit: true
+ envKey: FastCGI_Server_PORT
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ type: text
+ - default: /opt/1panel/apps/openresty/OpenResty/www
+ edit: true
+ envKey: Site_Path
+ labelEn: Website directory file path
+ labelZh: 网站目录文件路径
+ required: true
+ type: text
diff --git a/PHP-Unofficial/versions/7.4.33/data/php-fpm.conf b/PHP-Unofficial/7.4.33/data/php-fpm.conf
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33/data/php-fpm.conf
rename to PHP-Unofficial/7.4.33/data/php-fpm.conf
diff --git a/PHP-Unofficial/versions/7.4.33/data/php.ini b/PHP-Unofficial/7.4.33/data/php.ini
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33/data/php.ini
rename to PHP-Unofficial/7.4.33/data/php.ini
diff --git a/PHP-Unofficial/versions/7.4.33/docker-compose.yml b/PHP-Unofficial/7.4.33/docker-compose.yml
similarity index 100%
rename from PHP-Unofficial/versions/7.4.33/docker-compose.yml
rename to PHP-Unofficial/7.4.33/docker-compose.yml
diff --git a/PHP-Unofficial/versions/8.1.17/.env.sample b/PHP-Unofficial/8.1.17/.env.sample
similarity index 100%
rename from PHP-Unofficial/versions/8.1.17/.env.sample
rename to PHP-Unofficial/8.1.17/.env.sample
diff --git a/PHP-Unofficial/versions/8.1.17/Dockerfile b/PHP-Unofficial/8.1.17/Dockerfile
similarity index 100%
rename from PHP-Unofficial/versions/8.1.17/Dockerfile
rename to PHP-Unofficial/8.1.17/Dockerfile
diff --git a/PHP-Unofficial/8.1.17/data.yml b/PHP-Unofficial/8.1.17/data.yml
new file mode 100644
index 00000000..ac1c38d6
--- /dev/null
+++ b/PHP-Unofficial/8.1.17/data.yml
@@ -0,0 +1,16 @@
+additionalProperties:
+ formFields:
+ - default: 127.0.0.1:9002
+ edit: true
+ envKey: FastCGI_Server_PORT
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ type: text
+ - default: /opt/1panel/apps/openresty/OpenResty/www
+ edit: true
+ envKey: Site_Path
+ labelEn: Website directory file path
+ labelZh: 网站目录文件路径
+ required: true
+ type: text
diff --git a/PHP-Unofficial/versions/8.1.17/data/php-fpm.conf b/PHP-Unofficial/8.1.17/data/php-fpm.conf
similarity index 100%
rename from PHP-Unofficial/versions/8.1.17/data/php-fpm.conf
rename to PHP-Unofficial/8.1.17/data/php-fpm.conf
diff --git a/PHP-Unofficial/versions/8.1.17/data/php.ini b/PHP-Unofficial/8.1.17/data/php.ini
similarity index 100%
rename from PHP-Unofficial/versions/8.1.17/data/php.ini
rename to PHP-Unofficial/8.1.17/data/php.ini
diff --git a/PHP-Unofficial/versions/8.1.17/docker-compose.yml b/PHP-Unofficial/8.1.17/docker-compose.yml
similarity index 100%
rename from PHP-Unofficial/versions/8.1.17/docker-compose.yml
rename to PHP-Unofficial/8.1.17/docker-compose.yml
diff --git a/PHP-Unofficial/versions/8.1.17/README.md b/PHP-Unofficial/README.md
similarity index 100%
rename from PHP-Unofficial/versions/8.1.17/README.md
rename to PHP-Unofficial/README.md
diff --git a/PHP-Unofficial/data.yml.bak b/PHP-Unofficial/data.yml.bak
new file mode 100644
index 00000000..4b7886f2
--- /dev/null
+++ b/PHP-Unofficial/data.yml.bak
@@ -0,0 +1,20 @@
+name: PHP-Unofficial
+tags:
+ - 工具
+title: PHP是一种流行的服务器端脚本语言
+type: 工具
+description: PHP是一种流行的服务器端脚本语言
+additionalProperties:
+ key: PHP-Unofficial
+ name: PHP-Unofficial
+ tags:
+ - Tool
+ shortDescZh: PHP是一种流行的服务器端脚本语言
+ shortDescEn: PHP is a popular server-side scripting language
+ type: tool
+ crossVersionUpdate: false
+ limit: 0
+ recommend: 0
+ website: https://www.php.net/
+ github: https://github.com/php/php-src
+ document: https://www.php.net/docs.php
diff --git a/PHP-Unofficial/metadata/logo.png b/PHP-Unofficial/logo.png
similarity index 100%
rename from PHP-Unofficial/metadata/logo.png
rename to PHP-Unofficial/logo.png
diff --git a/PHP-Unofficial/metadata/app.json b/PHP-Unofficial/metadata/app.json
deleted file mode 100644
index 558c47c8..00000000
--- a/PHP-Unofficial/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "PHP-Unofficial",
- "name": "PHP-Unofficial",
- "tags": ["Tool"],
- "versions": ["7.4.33","7.4.33-alpine","8.1.17"],
- "shortDescZh": "PHP是一种流行的服务器端脚本语言。",
- "shortDescEn": "PHP is a popular server-side scripting language",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://www.php.net/",
- "github": "https://github.com/php/php-src",
- "document": "https://www.php.net/docs.php"
-}
diff --git a/PHP-Unofficial/versions/7.4.33-alpine/README.md b/PHP-Unofficial/versions/7.4.33-alpine/README.md
deleted file mode 100644
index cc94e511..00000000
--- a/PHP-Unofficial/versions/7.4.33-alpine/README.md
+++ /dev/null
@@ -1,128 +0,0 @@
-
-# 介绍
-这是个非1Panel官方制作的PHP容器。
-
-# 注意事项
-~~在1Panel V1.0.5及以下版本条件下,需要对官方OpenResty镜像和OpenResty配置进行修改才能正常部署PHP网站。~~
-
-- 写在20230414:
-
-1Panel V1.1.0版本的openresty已经添加了php文件支持,但存在缺点需要在创建网站时即创建PHP运行环境,
-
-如果现有网站需要添加可能需要删除重建,这边提供另外一种思路。
-
-如果修改openresty,不同的PHP版本只要监听不同的PHP容器服务端口即可,方便快捷。
-
-> 以下是操作过程
-
-V1.1.0版本拦截了PHP配置,如果需要使用第三方PHP容器提供服务。
-
-需要修改openresty目录下的`fastcgi_params`文件,
-
-`fastcgi_params`文件所在位置。以默认安装在`/opt`路径为例子,
-```
-/opt/1panel/apps/openresty/自定容器名/conf
-```
-
-修改成如下:
-```
-# 添加行1
-fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-fastcgi_param QUERY_STRING $query_string;
-fastcgi_param REQUEST_METHOD $request_method;
-fastcgi_param CONTENT_TYPE $content_type;
-fastcgi_param CONTENT_LENGTH $content_length;
-
-fastcgi_param SCRIPT_NAME $fastcgi_script_name;
-fastcgi_param REQUEST_URI $request_uri;
-fastcgi_param DOCUMENT_URI $document_uri;
-fastcgi_param DOCUMENT_ROOT $document_root;
-fastcgi_param SERVER_PROTOCOL $server_protocol;
-fastcgi_param REQUEST_SCHEME $scheme;
-fastcgi_param HTTPS $https if_not_empty;
-
-fastcgi_param GATEWAY_INTERFACE CGI/1.1;
-fastcgi_param SERVER_SOFTWARE nginx;
-
-fastcgi_param REMOTE_ADDR $remote_addr;
-fastcgi_param REMOTE_PORT $remote_port;
-fastcgi_param SERVER_ADDR $server_addr;
-fastcgi_param SERVER_PORT $server_port;
-fastcgi_param SERVER_NAME $server_name;
-
-# PHP only, required if PHP was built with --enable-force-cgi-redirect
-fastcgi_param REDIRECT_STATUS 200;
-# 添加行2,非必要
-fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
-
-```
-
-然后修改openresty配置,监听php-fpm端口即可。
-
-```
- # php服务端口例如 127.0.0.1:9000,按需修改
- location ~ [^/]\.php(/|$) {
- fastcgi_pass 127.0.0.1:9000;
- include fastcgi-php.conf;
- include fastcgi_params;
- }
-```
-点击保存并重载即可或重启openresty容器。
-
-# 特性
-
-
-启用拓展如下
-
-> - [PHP Modules]
->> - bcmath
->> - Core
->> - ctype
->> - curl
->> - date
->> - dom
->> - exif
->> - fileinfo
->> - filter
->> - ftp
->> - gd
->> - gettext
->> - hash
->> - iconv
->> - imagick
->> - imap
->> - intl
->> - json
->> - libxml
->> - mbstring
->> - mcrypt
->> - memcached
->> - mysqli
->> - mysqlnd
->> - openssl
->> - pcre
->> - PDO
->> - pdo_mysql
->> - pdo_sqlite
->> - Phar
->> - posix
->> - rar
->> - readline
->> - redis
->> - Reflection
->> - session
->> - SimpleXML
->> - sodium
->> - SPL
->> - sqlite3
->> - standard
->> - tokenizer
->> - xml
->> - xmlreader
->> - xmlwriter
->> - xsl
->> - zip
->> - zlib
-> - [Zend Modules]
-
-
\ No newline at end of file
diff --git a/PHP-Unofficial/versions/7.4.33-alpine/config.json b/PHP-Unofficial/versions/7.4.33-alpine/config.json
deleted file mode 100644
index ca2fc5e7..00000000
--- a/PHP-Unofficial/versions/7.4.33-alpine/config.json
+++ /dev/null
@@ -1,23 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "端口",
- "labelEn": "Port",
- "required": true,
- "default": "127.0.0.1:9003",
- "envKey": "FastCGI_Server_PORT",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "网站目录文件路径",
- "labelEn": "Website directory file path",
- "required": true,
- "default": "/opt/1panel/apps/openresty/OpenResty/www",
- "envKey": "Site_Path",
- "edit": true
- }
- ]
-}
diff --git a/PHP-Unofficial/versions/7.4.33/README.md b/PHP-Unofficial/versions/7.4.33/README.md
deleted file mode 100644
index cc94e511..00000000
--- a/PHP-Unofficial/versions/7.4.33/README.md
+++ /dev/null
@@ -1,128 +0,0 @@
-
-# 介绍
-这是个非1Panel官方制作的PHP容器。
-
-# 注意事项
-~~在1Panel V1.0.5及以下版本条件下,需要对官方OpenResty镜像和OpenResty配置进行修改才能正常部署PHP网站。~~
-
-- 写在20230414:
-
-1Panel V1.1.0版本的openresty已经添加了php文件支持,但存在缺点需要在创建网站时即创建PHP运行环境,
-
-如果现有网站需要添加可能需要删除重建,这边提供另外一种思路。
-
-如果修改openresty,不同的PHP版本只要监听不同的PHP容器服务端口即可,方便快捷。
-
-> 以下是操作过程
-
-V1.1.0版本拦截了PHP配置,如果需要使用第三方PHP容器提供服务。
-
-需要修改openresty目录下的`fastcgi_params`文件,
-
-`fastcgi_params`文件所在位置。以默认安装在`/opt`路径为例子,
-```
-/opt/1panel/apps/openresty/自定容器名/conf
-```
-
-修改成如下:
-```
-# 添加行1
-fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-fastcgi_param QUERY_STRING $query_string;
-fastcgi_param REQUEST_METHOD $request_method;
-fastcgi_param CONTENT_TYPE $content_type;
-fastcgi_param CONTENT_LENGTH $content_length;
-
-fastcgi_param SCRIPT_NAME $fastcgi_script_name;
-fastcgi_param REQUEST_URI $request_uri;
-fastcgi_param DOCUMENT_URI $document_uri;
-fastcgi_param DOCUMENT_ROOT $document_root;
-fastcgi_param SERVER_PROTOCOL $server_protocol;
-fastcgi_param REQUEST_SCHEME $scheme;
-fastcgi_param HTTPS $https if_not_empty;
-
-fastcgi_param GATEWAY_INTERFACE CGI/1.1;
-fastcgi_param SERVER_SOFTWARE nginx;
-
-fastcgi_param REMOTE_ADDR $remote_addr;
-fastcgi_param REMOTE_PORT $remote_port;
-fastcgi_param SERVER_ADDR $server_addr;
-fastcgi_param SERVER_PORT $server_port;
-fastcgi_param SERVER_NAME $server_name;
-
-# PHP only, required if PHP was built with --enable-force-cgi-redirect
-fastcgi_param REDIRECT_STATUS 200;
-# 添加行2,非必要
-fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
-
-```
-
-然后修改openresty配置,监听php-fpm端口即可。
-
-```
- # php服务端口例如 127.0.0.1:9000,按需修改
- location ~ [^/]\.php(/|$) {
- fastcgi_pass 127.0.0.1:9000;
- include fastcgi-php.conf;
- include fastcgi_params;
- }
-```
-点击保存并重载即可或重启openresty容器。
-
-# 特性
-
-
-启用拓展如下
-
-> - [PHP Modules]
->> - bcmath
->> - Core
->> - ctype
->> - curl
->> - date
->> - dom
->> - exif
->> - fileinfo
->> - filter
->> - ftp
->> - gd
->> - gettext
->> - hash
->> - iconv
->> - imagick
->> - imap
->> - intl
->> - json
->> - libxml
->> - mbstring
->> - mcrypt
->> - memcached
->> - mysqli
->> - mysqlnd
->> - openssl
->> - pcre
->> - PDO
->> - pdo_mysql
->> - pdo_sqlite
->> - Phar
->> - posix
->> - rar
->> - readline
->> - redis
->> - Reflection
->> - session
->> - SimpleXML
->> - sodium
->> - SPL
->> - sqlite3
->> - standard
->> - tokenizer
->> - xml
->> - xmlreader
->> - xmlwriter
->> - xsl
->> - zip
->> - zlib
-> - [Zend Modules]
-
-
\ No newline at end of file
diff --git a/PHP-Unofficial/versions/7.4.33/config.json b/PHP-Unofficial/versions/7.4.33/config.json
deleted file mode 100644
index 5897fb71..00000000
--- a/PHP-Unofficial/versions/7.4.33/config.json
+++ /dev/null
@@ -1,23 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "端口",
- "labelEn": "Port",
- "required": true,
- "default": "127.0.0.1:9001",
- "envKey": "FastCGI_Server_PORT",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "网站目录文件路径",
- "labelEn": "Website directory file path",
- "required": true,
- "default": "/opt/1panel/apps/openresty/OpenResty/www",
- "envKey": "Site_Path",
- "edit": true
- }
- ]
-}
diff --git a/PHP-Unofficial/versions/8.1.17/config.json b/PHP-Unofficial/versions/8.1.17/config.json
deleted file mode 100644
index 13ddb71f..00000000
--- a/PHP-Unofficial/versions/8.1.17/config.json
+++ /dev/null
@@ -1,23 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "端口",
- "labelEn": "Port",
- "required": true,
- "default": "127.0.0.1:9002",
- "envKey": "FastCGI_Server_PORT",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "网站目录文件路径",
- "labelEn": "Website directory file path",
- "required": true,
- "default": "/opt/1panel/apps/openresty/OpenResty/www",
- "envKey": "Site_Path",
- "edit": true
- }
- ]
-}
diff --git a/README.md b/README.md
index d68ec3f8..ee7fd838 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
## 1.简介
-这是一些适配`1Panel`商店的docker应用配置。
+这是一些适配`1Panel`商店`2.0`版本的docker应用配置。
## 2.使用方式
@@ -8,37 +8,42 @@
### 2.1
-- 当`/opt/1panel/resource/localApps`文件夹下没有任何内容,则可以
+- 当`/opt/1panel/resource/apps/local`文件夹下没有任何内容,则可以
```shell
-git clone -b localApps https://github.com/okxlin/appstore /opt/1panel/resource/localApps
+git clone -b localApps https://github.com/okxlin/appstore /opt/1panel/resource/apps/local
```
然后应用商店刷新本地应用即可。
### 2.2
-- 当`/opt/1panel/resource/localApps`文件夹下已经存在文件内容,
+- 当`/opt/1panel/resource/apps/local`文件夹下已经存在文件内容,
```shell
-cd /opt/1panel/resource/localApps # 进入目标目录
-wget https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip # 从GitHub下载ZIP文件
-unzip localApps.zip # 解压下载的ZIP文件
-cp /opt/1panel/resource/localApps/list.json /opt/1panel/resource/localApps/list.json.bak # 备份目标目录中的list.json文件
-cd appstore-localApps # 进入解压后的目录
-mv ./* .. # 将所有文件和目录移动到父目录中
-cd /opt/1panel/resource/localApps # 进入目标目录
-rm -r /opt/1panel/resource/localApps/appstore-localApps # 删除解压后的目录及其内容
-rm /opt/1panel/resource/localApps/localApps.zip # 删除下载的ZIP文件
+cd /opt/1panel/resource/apps/local # 进入目标目录
+wget https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip # 从GitHub下载ZIP文件
+
+unzip localApps.zip # 解压下载的ZIP文件
+
+cd appstore-localApps # 进入解压后的目录
+
+mv ./* .. # 将所有文件和目录移动到父目录中
+
+cd /opt/1panel/resource/apps/local # 进入目标目录
+
+rm -r /opt/1panel/resource/apps/local/appstore-localApps # 删除解压后的目录及其内容
+
+rm /opt/1panel/resource/apps/local/localApps.zip # 删除下载的ZIP文件
```
-然后将`list.json.bak`里的原有参数按照格式粘贴到`list.json`里即可。
+
然后应用商店刷新本地应用即可。
## 3.备注
-**`list.json`为不完整配置,未在里头的未完全适配应用商店面板操作**
+**未显示在本地应用列表里的,表示未完全适配应用商店面板操作**
**但是支持直接终端运行。**
@@ -46,7 +51,7 @@ rm /opt/1panel/resource/localApps/localApps.zip # 删除下载的ZIP文件
```shell
# 进入 rustdesk 的最新版本目录
-cd /opt/1panel/resource/localApps/rustdesk/versions/latest/
+cd /opt/1panel/resource/apps/local/rustdesk/versions/latest/
# 复制 .env.sample 为 .env
cp .env.sample .env
diff --git a/aaPanel/versions/latest/README.md b/aaPanel/README.md
similarity index 100%
rename from aaPanel/versions/latest/README.md
rename to aaPanel/README.md
diff --git a/aaPanel/data.yml b/aaPanel/data.yml
new file mode 100644
index 00000000..5e525f1b
--- /dev/null
+++ b/aaPanel/data.yml
@@ -0,0 +1,20 @@
+name: aaPanel
+tags:
+ - 工具
+title: 宝塔面板国际版,开源的Linux面板
+type: 工具
+description: 宝塔面板国际版,开源的Linux面板
+additionalProperties:
+ key: aaPanel
+ name: aaPanel
+ tags:
+ - Tool
+ shortDescZh: 宝塔面板国际版,开源的Linux面板
+ shortDescEn: BT Panel International Edition, the open source Linux panel
+ type: tool
+ crossVersionUpdate: false
+ limit: 0
+ recommend: 0
+ website: https://www.aapanel.com/new/index.html
+ github: https://github.com/aaPanel/aaPanel
+ document: https://github.com/aaPanel/aaPanel
diff --git a/aaPanel/versions/latest/.env.sample b/aaPanel/latest/.env.sample
similarity index 100%
rename from aaPanel/versions/latest/.env.sample
rename to aaPanel/latest/.env.sample
diff --git a/aaPanel/latest/data.yml b/aaPanel/latest/data.yml
new file mode 100644
index 00000000..57985a1c
--- /dev/null
+++ b/aaPanel/latest/data.yml
@@ -0,0 +1,50 @@
+additionalProperties:
+ formFields:
+ - default: 7200
+ edit: true
+ envKey: Web_Panel_Port
+ labelEn: Web Panel Port
+ labelZh: 面板端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 10080
+ edit: true
+ envKey: HTTP_PORT
+ labelEn: HTTP Port
+ labelZh: HTTP端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 10443
+ edit: true
+ envKey: HTTPS_PORT
+ labelEn: HTTPS Port
+ labelZh: HTTPS端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 10888
+ edit: true
+ envKey: phpMyAdmin_PORT
+ labelEn: phpMyAdmin Port
+ labelZh: phpMyAdmin端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 20022
+ edit: true
+ envKey: SSH_PORT
+ labelEn: SSH Port
+ labelZh: 面板内SSH端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 20021
+ edit: true
+ envKey: FTP_PORT
+ labelEn: SSH Port
+ labelZh: 面板内FTP端口
+ required: true
+ rule: paramPort
+ type: number
diff --git a/aaPanel/versions/latest/docker-compose.yml b/aaPanel/latest/docker-compose.yml
similarity index 100%
rename from aaPanel/versions/latest/docker-compose.yml
rename to aaPanel/latest/docker-compose.yml
diff --git a/aaPanel/metadata/logo.png b/aaPanel/logo.png
similarity index 100%
rename from aaPanel/metadata/logo.png
rename to aaPanel/logo.png
diff --git a/aaPanel/metadata/app.json b/aaPanel/metadata/app.json
deleted file mode 100644
index f0f095c5..00000000
--- a/aaPanel/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "aaPanel",
- "name": "aaPanel",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "宝塔面板国际版,开源的Linux面板。",
- "shortDescEn": "BT Panel International Edition, the open source Linux panel.",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://www.aapanel.com/new/index.html",
- "github": "https://github.com/aaPanel/aaPanel",
- "document": "https://github.com/aaPanel/aaPanel"
-}
diff --git a/aaPanel/versions/latest/config.json b/aaPanel/versions/latest/config.json
deleted file mode 100644
index 1ed6032c..00000000
--- a/aaPanel/versions/latest/config.json
+++ /dev/null
@@ -1,65 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "面板端口",
- "labelEn": "Web Panel Port",
- "required": true,
- "default": 7200,
- "rule": "paramPort",
- "envKey": "Web_Panel_Port",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "HTTP端口",
- "labelEn": "HTTP Port",
- "required": true,
- "default": 10080,
- "rule": "paramPort",
- "envKey": "HTTP_PORT",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "HTTPS端口",
- "labelEn": "HTTPS Port",
- "required": true,
- "default": 10443,
- "rule": "paramPort",
- "envKey": "HTTPS_PORT",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "phpMyAdmin端口",
- "labelEn": "phpMyAdmin Port",
- "required": true,
- "default": 10888,
- "rule": "paramPort",
- "envKey": "phpMyAdmin_PORT",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "面板内SSH端口",
- "labelEn": "SSH Port",
- "required": true,
- "default": 20022,
- "rule": "paramPort",
- "envKey": "SSH_PORT",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "面板内FTP端口",
- "labelEn": "SSH Port",
- "required": true,
- "default": 20021,
- "rule": "paramPort",
- "envKey": "FTP_PORT",
- "edit": true
- }
- ]
-}
\ No newline at end of file
diff --git a/alist/versions/3.16.3/.env.sample b/alist/3.16.3/.env.sample
similarity index 100%
rename from alist/versions/3.16.3/.env.sample
rename to alist/3.16.3/.env.sample
diff --git a/alist/3.16.3/data.yml b/alist/3.16.3/data.yml
new file mode 100644
index 00000000..7c08dad8
--- /dev/null
+++ b/alist/3.16.3/data.yml
@@ -0,0 +1,24 @@
+additionalProperties:
+ formFields:
+ - default: 5244
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data folder path
+ labelZh: 数据文件夹路径
+ required: true
+ type: text
+ - default: ./data/mnt
+ edit: true
+ envKey: MOUNT_PATH
+ labelEn: Mount folder path
+ labelZh: 挂载文件夹路径
+ required: true
+ type: text
diff --git a/alist/versions/3.16.3/data/data/.gitkeep b/alist/3.16.3/data/data/.gitkeep
similarity index 100%
rename from alist/versions/3.16.3/data/data/.gitkeep
rename to alist/3.16.3/data/data/.gitkeep
diff --git a/alist/versions/3.16.3/data/mnt/.gitkeep b/alist/3.16.3/data/mnt/.gitkeep
similarity index 100%
rename from alist/versions/3.16.3/data/mnt/.gitkeep
rename to alist/3.16.3/data/mnt/.gitkeep
diff --git a/alist/versions/3.16.3/docker-compose.yml b/alist/3.16.3/docker-compose.yml
similarity index 100%
rename from alist/versions/3.16.3/docker-compose.yml
rename to alist/3.16.3/docker-compose.yml
diff --git a/alist/versions/3.17.0/.env.sample b/alist/3.17.0/.env.sample
similarity index 100%
rename from alist/versions/3.17.0/.env.sample
rename to alist/3.17.0/.env.sample
diff --git a/alist/3.17.0/data.yml b/alist/3.17.0/data.yml
new file mode 100644
index 00000000..7c08dad8
--- /dev/null
+++ b/alist/3.17.0/data.yml
@@ -0,0 +1,24 @@
+additionalProperties:
+ formFields:
+ - default: 5244
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data folder path
+ labelZh: 数据文件夹路径
+ required: true
+ type: text
+ - default: ./data/mnt
+ edit: true
+ envKey: MOUNT_PATH
+ labelEn: Mount folder path
+ labelZh: 挂载文件夹路径
+ required: true
+ type: text
diff --git a/alist/versions/3.17.0/data/data/.gitkeep b/alist/3.17.0/data/data/.gitkeep
similarity index 100%
rename from alist/versions/3.17.0/data/data/.gitkeep
rename to alist/3.17.0/data/data/.gitkeep
diff --git a/alist/versions/3.17.0/data/mnt/.gitkeep b/alist/3.17.0/data/mnt/.gitkeep
similarity index 100%
rename from alist/versions/3.17.0/data/mnt/.gitkeep
rename to alist/3.17.0/data/mnt/.gitkeep
diff --git a/alist/versions/3.17.0/docker-compose.yml b/alist/3.17.0/docker-compose.yml
similarity index 100%
rename from alist/versions/3.17.0/docker-compose.yml
rename to alist/3.17.0/docker-compose.yml
diff --git a/alist/versions/3.16.3/README.md b/alist/README.md
similarity index 100%
rename from alist/versions/3.16.3/README.md
rename to alist/README.md
diff --git a/alist/data.yml b/alist/data.yml
new file mode 100644
index 00000000..3421488d
--- /dev/null
+++ b/alist/data.yml
@@ -0,0 +1,20 @@
+name: alist
+tags:
+ - 工具
+title: 一个支持多存储的文件列表程序
+type: 工具
+description: 一个支持多存储的文件列表程序
+additionalProperties:
+ key: alist
+ name: alist
+ tags:
+ - Tool
+ shortDescZh: 一个支持多存储的文件列表程序
+ shortDescEn: A file list program that supports multiple storage
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://github.com/alist-org/alist
+ github: https://github.com/alist-org/alist
+ document: https://alist.nn.ci/zh/
diff --git a/alist/versions/latest/.env.sample b/alist/latest/.env.sample
similarity index 100%
rename from alist/versions/latest/.env.sample
rename to alist/latest/.env.sample
diff --git a/alist/latest/data.yml b/alist/latest/data.yml
new file mode 100644
index 00000000..7c08dad8
--- /dev/null
+++ b/alist/latest/data.yml
@@ -0,0 +1,24 @@
+additionalProperties:
+ formFields:
+ - default: 5244
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data folder path
+ labelZh: 数据文件夹路径
+ required: true
+ type: text
+ - default: ./data/mnt
+ edit: true
+ envKey: MOUNT_PATH
+ labelEn: Mount folder path
+ labelZh: 挂载文件夹路径
+ required: true
+ type: text
diff --git a/alist/versions/latest/data/data/.gitkeep b/alist/latest/data/data/.gitkeep
similarity index 100%
rename from alist/versions/latest/data/data/.gitkeep
rename to alist/latest/data/data/.gitkeep
diff --git a/alist/versions/latest/data/mnt/.gitkeep b/alist/latest/data/mnt/.gitkeep
similarity index 100%
rename from alist/versions/latest/data/mnt/.gitkeep
rename to alist/latest/data/mnt/.gitkeep
diff --git a/alist/versions/latest/docker-compose.yml b/alist/latest/docker-compose.yml
similarity index 100%
rename from alist/versions/latest/docker-compose.yml
rename to alist/latest/docker-compose.yml
diff --git a/alist/metadata/logo.png b/alist/logo.png
similarity index 100%
rename from alist/metadata/logo.png
rename to alist/logo.png
diff --git a/alist/metadata/app.json b/alist/metadata/app.json
deleted file mode 100644
index 27a29c48..00000000
--- a/alist/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "alist",
- "name": "alist",
- "tags": ["Tool"],
- "versions": ["3.16.3","latest"],
- "shortDescZh": "一个支持多存储的文件列表程序。",
- "shortDescEn": "A file list program that supports multiple storage.",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://github.com/alist-org/alist",
- "github": "https://github.com/alist-org/alist",
- "document": "https://alist.nn.ci/zh/"
-}
diff --git a/alist/versions/3.16.3/config.json b/alist/versions/3.16.3/config.json
deleted file mode 100644
index 9488b489..00000000
--- a/alist/versions/3.16.3/config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 5244,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "数据文件夹路径",
- "labelEn": "Data folder path",
- "required": true,
- "default": "./data/data",
- "envKey": "DATA_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "挂载文件夹路径",
- "labelEn": "Mount folder path",
- "required": true,
- "default": "./data/mnt",
- "envKey": "MOUNT_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "管理员账户密码获取:容器终端输入./alist admin",
- "labelEn": "Administrator account password retrieval: container terminal enter . /alist admin",
- "required": false,
- "default": "这是一个提示/This is a tip",
- "edit": false
- }
- ]
-}
diff --git a/alist/versions/3.17.0/README.md b/alist/versions/3.17.0/README.md
deleted file mode 100644
index 8520b49f..00000000
--- a/alist/versions/3.17.0/README.md
+++ /dev/null
@@ -1,134 +0,0 @@
-
-

-
🗂一个支持多存储的文件列表程序,使用 Gin 和 Solidjs。
-
-
-
-
----
-
-[English](./README.md) | 中文 | [Contributing](./CONTRIBUTING.md) | [CODE_OF_CONDUCT](./CODE_OF_CONDUCT.md)
-
-## 功能
-
-- [x] 多种存储
- - [x] 本地存储
- - [x] [阿里云盘](https://www.aliyundrive.com/)
- - [x] OneDrive / Sharepoint([国际版](https://www.office.com/), [世纪互联](https://portal.partner.microsoftonline.cn),de,us)
- - [x] [天翼云盘](https://cloud.189.cn) (个人云, 家庭云)
- - [x] [GoogleDrive](https://drive.google.com/)
- - [x] [123云盘](https://www.123pan.com/)
- - [x] FTP / SFTP
- - [x] [PikPak](https://www.mypikpak.com/)
- - [x] [S3](https://aws.amazon.com/cn/s3/)
- - [x] [Seafile](https://seafile.com/)
- - [x] [又拍云对象存储](https://www.upyun.com/products/file-storage)
- - [x] WebDav(支持无API的OneDrive/SharePoint)
- - [x] Teambition([中国](https://www.teambition.com/ ),[国际](https://us.teambition.com/ ))
- - [x] [分秒帧](https://www.mediatrack.cn/)
- - [x] [和彩云](https://yun.139.com/) (个人云, 家庭云)
- - [x] [Yandex.Disk](https://disk.yandex.com/)
- - [x] [百度网盘](http://pan.baidu.com/)
- - [x] [夸克网盘](https://pan.quark.cn)
- - [x] [迅雷网盘](https://pan.xunlei.com)
- - [x] [蓝奏云](https://www.lanzou.com/)
- - [x] [阿里云盘分享](https://www.aliyundrive.com/)
- - [x] [谷歌相册](https://photos.google.com/)
- - [x] [Mega.nz](https://mega.nz)
- - [x] [一刻相册](https://photo.baidu.com/)
- - [x] SMB
- - [x] [115](https://115.com/)
- - [X] Cloudreve
-- [x] 部署方便,开箱即用
-- [x] 文件预览(PDF、markdown、代码、纯文本……)
-- [x] 画廊模式下的图像预览
-- [x] 视频和音频预览,支持歌词和字幕
-- [x] Office 文档预览(docx、pptx、xlsx、...)
-- [x] `README.md` 预览渲染
-- [x] 文件永久链接复制和直接文件下载
-- [x] 黑暗模式
-- [x] 国际化
-- [x] 受保护的路由(密码保护和身份验证)
-- [x] WebDav (具体见 https://alist.nn.ci/zh/guide/webdav.html)
-- [x] [Docker 部署](https://hub.docker.com/r/xhofe/alist)
-- [x] Cloudflare workers 中转
-- [x] 文件/文件夹打包下载
-- [x] 网页上传(可以允许访客上传),删除,新建文件夹,重命名,移动,复制
-- [x] 离线下载
-- [x] 跨存储复制文件
-
-## 文档
-
-
-
-## Demo
-
-
-
-## 讨论
-
-一般问题请到[讨论论坛](https://github.com/Xhofe/alist/discussions) ,**issue仅针对错误报告和功能请求。**
-
-## 赞助
-
-AList 是一个开源软件,如果你碰巧喜欢这个项目,并希望我继续下去,请考虑赞助我或提供一个单一的捐款!感谢所有的爱和支持:https://alist.nn.ci/zh/guide/sponsor.html
-
-### 特别赞助
-
-- [找资源 - 阿里云盘资源搜索引擎](https://zhaoziyuan.la/)
-- [KinhDown 百度云盘不限速下载!永久免费!已稳定运行3年!非常可靠!Q群 -> 786799372](https://kinhdown.com)
-- [JetBrains: Essential tools for software developers and teams](https://www.jetbrains.com/)
-
-## 贡献者
-
-Thanks goes to these wonderful people:
-
-[](https://github.com/alist-org/alist/graphs/contributors)
-
-## 许可
-
-`AList` 是在 AGPL-3.0 许可下许可的开源软件。
-
-## 免责声明
-- 本程序为免费开源项目,旨在分享网盘文件,方便下载以及学习golang,使用时请遵守相关法律法规,请勿滥用;
-- 本程序通过调用官方sdk/接口实现,无破坏官方接口行为;
-- 本程序仅做302重定向/流量转发,不拦截、存储、篡改任何用户数据;
-- 在使用本程序之前,你应了解并承担相应的风险,包括但不限于账号被ban,下载限速等,与本程序无关;
-- 如有侵权,请通过[邮件](mailto:i@nn.ci)与我联系,会及时处理。
-
----
-
-> [@博客](https://nn.ci/) · [@GitHub](https://github.com/Xhofe) · [@Telegram群](https://t.me/alist_chat) · [@Discord](https://discord.gg/F4ymsH4xv2)
-
diff --git a/alist/versions/3.17.0/config.json b/alist/versions/3.17.0/config.json
deleted file mode 100644
index 9488b489..00000000
--- a/alist/versions/3.17.0/config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 5244,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "数据文件夹路径",
- "labelEn": "Data folder path",
- "required": true,
- "default": "./data/data",
- "envKey": "DATA_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "挂载文件夹路径",
- "labelEn": "Mount folder path",
- "required": true,
- "default": "./data/mnt",
- "envKey": "MOUNT_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "管理员账户密码获取:容器终端输入./alist admin",
- "labelEn": "Administrator account password retrieval: container terminal enter . /alist admin",
- "required": false,
- "default": "这是一个提示/This is a tip",
- "edit": false
- }
- ]
-}
diff --git a/alist/versions/latest/README.md b/alist/versions/latest/README.md
deleted file mode 100644
index 8520b49f..00000000
--- a/alist/versions/latest/README.md
+++ /dev/null
@@ -1,134 +0,0 @@
-
-

-
🗂一个支持多存储的文件列表程序,使用 Gin 和 Solidjs。
-
-
-
-
----
-
-[English](./README.md) | 中文 | [Contributing](./CONTRIBUTING.md) | [CODE_OF_CONDUCT](./CODE_OF_CONDUCT.md)
-
-## 功能
-
-- [x] 多种存储
- - [x] 本地存储
- - [x] [阿里云盘](https://www.aliyundrive.com/)
- - [x] OneDrive / Sharepoint([国际版](https://www.office.com/), [世纪互联](https://portal.partner.microsoftonline.cn),de,us)
- - [x] [天翼云盘](https://cloud.189.cn) (个人云, 家庭云)
- - [x] [GoogleDrive](https://drive.google.com/)
- - [x] [123云盘](https://www.123pan.com/)
- - [x] FTP / SFTP
- - [x] [PikPak](https://www.mypikpak.com/)
- - [x] [S3](https://aws.amazon.com/cn/s3/)
- - [x] [Seafile](https://seafile.com/)
- - [x] [又拍云对象存储](https://www.upyun.com/products/file-storage)
- - [x] WebDav(支持无API的OneDrive/SharePoint)
- - [x] Teambition([中国](https://www.teambition.com/ ),[国际](https://us.teambition.com/ ))
- - [x] [分秒帧](https://www.mediatrack.cn/)
- - [x] [和彩云](https://yun.139.com/) (个人云, 家庭云)
- - [x] [Yandex.Disk](https://disk.yandex.com/)
- - [x] [百度网盘](http://pan.baidu.com/)
- - [x] [夸克网盘](https://pan.quark.cn)
- - [x] [迅雷网盘](https://pan.xunlei.com)
- - [x] [蓝奏云](https://www.lanzou.com/)
- - [x] [阿里云盘分享](https://www.aliyundrive.com/)
- - [x] [谷歌相册](https://photos.google.com/)
- - [x] [Mega.nz](https://mega.nz)
- - [x] [一刻相册](https://photo.baidu.com/)
- - [x] SMB
- - [x] [115](https://115.com/)
- - [X] Cloudreve
-- [x] 部署方便,开箱即用
-- [x] 文件预览(PDF、markdown、代码、纯文本……)
-- [x] 画廊模式下的图像预览
-- [x] 视频和音频预览,支持歌词和字幕
-- [x] Office 文档预览(docx、pptx、xlsx、...)
-- [x] `README.md` 预览渲染
-- [x] 文件永久链接复制和直接文件下载
-- [x] 黑暗模式
-- [x] 国际化
-- [x] 受保护的路由(密码保护和身份验证)
-- [x] WebDav (具体见 https://alist.nn.ci/zh/guide/webdav.html)
-- [x] [Docker 部署](https://hub.docker.com/r/xhofe/alist)
-- [x] Cloudflare workers 中转
-- [x] 文件/文件夹打包下载
-- [x] 网页上传(可以允许访客上传),删除,新建文件夹,重命名,移动,复制
-- [x] 离线下载
-- [x] 跨存储复制文件
-
-## 文档
-
-
-
-## Demo
-
-
-
-## 讨论
-
-一般问题请到[讨论论坛](https://github.com/Xhofe/alist/discussions) ,**issue仅针对错误报告和功能请求。**
-
-## 赞助
-
-AList 是一个开源软件,如果你碰巧喜欢这个项目,并希望我继续下去,请考虑赞助我或提供一个单一的捐款!感谢所有的爱和支持:https://alist.nn.ci/zh/guide/sponsor.html
-
-### 特别赞助
-
-- [找资源 - 阿里云盘资源搜索引擎](https://zhaoziyuan.la/)
-- [KinhDown 百度云盘不限速下载!永久免费!已稳定运行3年!非常可靠!Q群 -> 786799372](https://kinhdown.com)
-- [JetBrains: Essential tools for software developers and teams](https://www.jetbrains.com/)
-
-## 贡献者
-
-Thanks goes to these wonderful people:
-
-[](https://github.com/alist-org/alist/graphs/contributors)
-
-## 许可
-
-`AList` 是在 AGPL-3.0 许可下许可的开源软件。
-
-## 免责声明
-- 本程序为免费开源项目,旨在分享网盘文件,方便下载以及学习golang,使用时请遵守相关法律法规,请勿滥用;
-- 本程序通过调用官方sdk/接口实现,无破坏官方接口行为;
-- 本程序仅做302重定向/流量转发,不拦截、存储、篡改任何用户数据;
-- 在使用本程序之前,你应了解并承担相应的风险,包括但不限于账号被ban,下载限速等,与本程序无关;
-- 如有侵权,请通过[邮件](mailto:i@nn.ci)与我联系,会及时处理。
-
----
-
-> [@博客](https://nn.ci/) · [@GitHub](https://github.com/Xhofe) · [@Telegram群](https://t.me/alist_chat) · [@Discord](https://discord.gg/F4ymsH4xv2)
-
diff --git a/alist/versions/latest/config.json b/alist/versions/latest/config.json
deleted file mode 100644
index 9488b489..00000000
--- a/alist/versions/latest/config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 5244,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "数据文件夹路径",
- "labelEn": "Data folder path",
- "required": true,
- "default": "./data/data",
- "envKey": "DATA_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "挂载文件夹路径",
- "labelEn": "Mount folder path",
- "required": true,
- "default": "./data/mnt",
- "envKey": "MOUNT_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "管理员账户密码获取:容器终端输入./alist admin",
- "labelEn": "Administrator account password retrieval: container terminal enter . /alist admin",
- "required": false,
- "default": "这是一个提示/This is a tip",
- "edit": false
- }
- ]
-}
diff --git a/baidunetdisk/versions/4.14.6/.env.sample b/baidunetdisk/4.14.6/.env.sample
similarity index 100%
rename from baidunetdisk/versions/4.14.6/.env.sample
rename to baidunetdisk/4.14.6/.env.sample
diff --git a/baidunetdisk/4.14.6/data.yml b/baidunetdisk/4.14.6/data.yml
new file mode 100644
index 00000000..39387433
--- /dev/null
+++ b/baidunetdisk/4.14.6/data.yml
@@ -0,0 +1,33 @@
+additionalProperties:
+ formFields:
+ - default: 40030
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: VNCPassword
+ edit: true
+ envKey: VNC_PASSWORD
+ labelEn: Access Password
+ labelZh: 访问密码
+ random: true
+ required: true
+ rule: paramComplexity
+ type: password
+ - default: ./data/config
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config file path
+ labelZh: 配置文件所在路径
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOAD_PATH
+ labelEn: Download folder path
+ labelZh: 下载文件夹路径
+ required: true
+ type: text
diff --git a/baidunetdisk/versions/4.14.6/data/config/.gitkeep b/baidunetdisk/4.14.6/data/config/.gitkeep
similarity index 100%
rename from baidunetdisk/versions/4.14.6/data/config/.gitkeep
rename to baidunetdisk/4.14.6/data/config/.gitkeep
diff --git a/baidunetdisk/versions/4.14.6/data/downloads/.gitkeep b/baidunetdisk/4.14.6/data/downloads/.gitkeep
similarity index 100%
rename from baidunetdisk/versions/4.14.6/data/downloads/.gitkeep
rename to baidunetdisk/4.14.6/data/downloads/.gitkeep
diff --git a/baidunetdisk/versions/4.14.6/docker-compose.yml b/baidunetdisk/4.14.6/docker-compose.yml
similarity index 100%
rename from baidunetdisk/versions/4.14.6/docker-compose.yml
rename to baidunetdisk/4.14.6/docker-compose.yml
diff --git a/baidunetdisk/versions/4.17.7/.env.sample b/baidunetdisk/4.17.7/.env.sample
similarity index 100%
rename from baidunetdisk/versions/4.17.7/.env.sample
rename to baidunetdisk/4.17.7/.env.sample
diff --git a/baidunetdisk/4.17.7/data.yml b/baidunetdisk/4.17.7/data.yml
new file mode 100644
index 00000000..39387433
--- /dev/null
+++ b/baidunetdisk/4.17.7/data.yml
@@ -0,0 +1,33 @@
+additionalProperties:
+ formFields:
+ - default: 40030
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: VNCPassword
+ edit: true
+ envKey: VNC_PASSWORD
+ labelEn: Access Password
+ labelZh: 访问密码
+ random: true
+ required: true
+ rule: paramComplexity
+ type: password
+ - default: ./data/config
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config file path
+ labelZh: 配置文件所在路径
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOAD_PATH
+ labelEn: Download folder path
+ labelZh: 下载文件夹路径
+ required: true
+ type: text
diff --git a/baidunetdisk/versions/4.17.7/data/config/.gitkeep b/baidunetdisk/4.17.7/data/config/.gitkeep
similarity index 100%
rename from baidunetdisk/versions/4.17.7/data/config/.gitkeep
rename to baidunetdisk/4.17.7/data/config/.gitkeep
diff --git a/baidunetdisk/versions/4.17.7/data/downloads/.gitkeep b/baidunetdisk/4.17.7/data/downloads/.gitkeep
similarity index 100%
rename from baidunetdisk/versions/4.17.7/data/downloads/.gitkeep
rename to baidunetdisk/4.17.7/data/downloads/.gitkeep
diff --git a/baidunetdisk/versions/4.17.7/docker-compose.yml b/baidunetdisk/4.17.7/docker-compose.yml
similarity index 100%
rename from baidunetdisk/versions/4.17.7/docker-compose.yml
rename to baidunetdisk/4.17.7/docker-compose.yml
diff --git a/baidunetdisk/versions/4.14.6/README.md b/baidunetdisk/README.md
similarity index 100%
rename from baidunetdisk/versions/4.14.6/README.md
rename to baidunetdisk/README.md
diff --git a/baidunetdisk/data.yml b/baidunetdisk/data.yml
new file mode 100644
index 00000000..57d59996
--- /dev/null
+++ b/baidunetdisk/data.yml
@@ -0,0 +1,20 @@
+name: 百度网盘
+tags:
+ - 工具
+title: 百度网盘是百度推出的一项云存储服务
+type: 工具
+description: 百度网盘是百度推出的一项云存储服务
+additionalProperties:
+ key: baidunetdisk
+ name: 百度网盘
+ tags:
+ - Tool
+ shortDescZh: 百度网盘是百度推出的一项云存储服务
+ shortDescEn: BaiduNetdisk is a cloud storage service launched by Baidu
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://pan.baidu.com/
+ github: https://github.com/gshang2017/docker/tree/master/baidunetdisk
+ document: https://github.com/gshang2017/docker/tree/master/baidunetdisk
diff --git a/baidunetdisk/versions/latest/.env.sample b/baidunetdisk/latest/.env.sample
similarity index 100%
rename from baidunetdisk/versions/latest/.env.sample
rename to baidunetdisk/latest/.env.sample
diff --git a/baidunetdisk/latest/data.yml b/baidunetdisk/latest/data.yml
new file mode 100644
index 00000000..39387433
--- /dev/null
+++ b/baidunetdisk/latest/data.yml
@@ -0,0 +1,33 @@
+additionalProperties:
+ formFields:
+ - default: 40030
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: VNCPassword
+ edit: true
+ envKey: VNC_PASSWORD
+ labelEn: Access Password
+ labelZh: 访问密码
+ random: true
+ required: true
+ rule: paramComplexity
+ type: password
+ - default: ./data/config
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config file path
+ labelZh: 配置文件所在路径
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOAD_PATH
+ labelEn: Download folder path
+ labelZh: 下载文件夹路径
+ required: true
+ type: text
diff --git a/baidunetdisk/versions/latest/data/config/.gitkeep b/baidunetdisk/latest/data/config/.gitkeep
similarity index 100%
rename from baidunetdisk/versions/latest/data/config/.gitkeep
rename to baidunetdisk/latest/data/config/.gitkeep
diff --git a/baidunetdisk/versions/latest/data/downloads/.gitkeep b/baidunetdisk/latest/data/downloads/.gitkeep
similarity index 100%
rename from baidunetdisk/versions/latest/data/downloads/.gitkeep
rename to baidunetdisk/latest/data/downloads/.gitkeep
diff --git a/baidunetdisk/versions/latest/docker-compose.yml b/baidunetdisk/latest/docker-compose.yml
similarity index 100%
rename from baidunetdisk/versions/latest/docker-compose.yml
rename to baidunetdisk/latest/docker-compose.yml
diff --git a/baidunetdisk/metadata/logo.png b/baidunetdisk/logo.png
similarity index 100%
rename from baidunetdisk/metadata/logo.png
rename to baidunetdisk/logo.png
diff --git a/baidunetdisk/metadata/app.json b/baidunetdisk/metadata/app.json
deleted file mode 100644
index f7d699e0..00000000
--- a/baidunetdisk/metadata/app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "key": "baidunetdisk",
- "name": "百度网盘",
- "tags": ["Tool"],
- "versions": ["4.14.6","4.17.7","latest"],
- "shortDescZh": "百度网盘是百度推出的一项云存储服务。",
- "shortDescEn": "BaiduNetdisk is a cloud storage service launched by Baidu.",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://pan.baidu.com/",
- "github": "https://github.com/gshang2017/docker/tree/master/baidunetdisk",
- "document": "https://github.com/gshang2017/docker/tree/master/baidunetdisk"
-}
diff --git a/baidunetdisk/versions/4.14.6/config.json b/baidunetdisk/versions/4.14.6/config.json
deleted file mode 100644
index b2690a5d..00000000
--- a/baidunetdisk/versions/4.14.6/config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 40030,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "password",
- "labelZh": "访问密码",
- "labelEn": "Access Password",
- "required": true,
- "default": "VNCPassword",
- "random": true,
- "rule": "paramComplexity",
- "envKey": "VNC_PASSWORD",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "配置文件所在路径",
- "labelEn": "Config file path",
- "required": true,
- "default": "./data/config",
- "envKey": "CONFIG_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "下载文件夹路径",
- "labelEn": "Download folder path",
- "required": true,
- "default": "./data/downloads",
- "envKey": "DOWNLOAD_PATH",
- "edit": true
- }
- ]
-}
diff --git a/baidunetdisk/versions/4.17.7/README.md b/baidunetdisk/versions/4.17.7/README.md
deleted file mode 100644
index 65bd50fc..00000000
--- a/baidunetdisk/versions/4.17.7/README.md
+++ /dev/null
@@ -1,102 +0,0 @@
-## 群晖nas自用:
-
-### GitHub:
-
-[https://github.com/gshang2017/docker](https://github.com/gshang2017/docker)
-
-### 感谢以下项目:
-
-[https://github.com/jlesage/docker-baseimage-gui](https://github.com/jlesage/docker-baseimage-gui "https://github.com/jlesage/docker-baseimage-gui")
-
-### 版本:
-
-|名称|版本|说明|
-|:-|:-|:-|
-|baidunetdisk|4.17.7|amd64|
-|baidunetdisk|4.14.6|arm64|
-
-#### 注意:
-
- * 重启群晖,网盘(baidunetdisk:3.0.1.2)不能登陆:只需要删除配置文件夹下baidunetdiskdata.db(下载进度会保留),如果网盘设置闪退需删除帐户文件夹下userConf.db,重启docker。
-
- * 升级 baidunetdisk:3.5.0,下载位置需手动配置(右上角-设置)。
-
-### docker命令行设置:
-
-1. 下载镜像
-
- |镜像源|命令|
- |:-|:-|
- |DockerHub|docker pull johngong/baidunetdisk:latest|
- |GitHub|docker pull ghcr.io/gshang2017/baidunetdisk:latest|
-
-2. 创建baidunetdisk容器
-
- docker create \
- --name=baidunetdisk \
- -p 5800:5800 \
- -p 5900:5900 \
- -v /配置文件位置:/config \
- -v /下载位置:/config/baidunetdiskdownload \
- --restart unless-stopped \
- johngong/baidunetdisk:latest
-
-3. 运行
-
- docker start baidunetdisk
-
-4. 停止
-
- docker stop baidunetdisk
-
-5. 删除容器
-
- docker rm baidunetdisk
-
-6. 删除镜像
-
- docker image rm johngong/baidunetdisk:latest
-
-### 变量:
-
-|参数|说明|
-|:-|:-|
-| `--name=baidunetdisk` |容器名|
-| `-p 5800:5800` |Web界面访问端口,[ip:5800](ip:5800)|
-| `-p 5900:5900` |VNC协议访问端口.如果未使用VNC客户端,则为可选,[ip:5900](ip:5900)|
-| `-v /配置文件位置:/config` |baidunetdisk配置文件位置|
-| `-v /下载位置:/config/baidunetdiskdownload` |baidunetdisk下载路径(3.3.2需手动设置)|
-| `-e VNC_PASSWORD=VNC密码` |VNC密码|
-| `-e USER_ID=1000` |uid设置,默认为1000|
-| `-e GROUP_ID=1000` |gid设置,默认为1000|
-| `-e NOVNC_LANGUAGE="zh_Hans"` |(zh_Hans\|en)设定novnc语言,默认为中文|
-
-
-更多参数设置详见:[https://registry.hub.docker.com/r/jlesage/baseimage-gui](https://registry.hub.docker.com/r/jlesage/baseimage-gui "https://registry.hub.docker.com/r/jlesage/baseimage-gui")
-
-
-### 群晖docker设置:
-
-1. 卷
-
-|参数|说明|
-|:-|:-|
-| `本地文件夹1:/config/baidunetdiskdownload` |baidunetdisk下载路径(3.3.2需手动设置)|
-| `本地文件夹2:/config` |baidunetdisk配置文件位置|
-
-2. 端口
-
-|参数|说明|
-|:-|:-|
-| `本地端口1:5800` |Web界面访问端口,[ip:本地端口1](ip:本地端口1)|
-| `本地端口2:5900` |VNC协议访问端口.如果未使用VNC客户端,则为可选,[ip:本地端口2](ip:本地端口2)|
-
-3. 环境变量
-
-|参数|说明|
-|:-|:-|
-| `VNC_PASSWORD=VNC密码` |VNC密码|
-| `USER_ID=1000` |uid设置,默认为1000|
-| `GROUP_ID=1000` |gid设置,默认为1000|
-| `NOVNC_LANGUAGE="zh_Hans"` |(zh_Hans\|en)设定novnc语言,默认为中文|
-
diff --git a/baidunetdisk/versions/4.17.7/config.json b/baidunetdisk/versions/4.17.7/config.json
deleted file mode 100644
index b2690a5d..00000000
--- a/baidunetdisk/versions/4.17.7/config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 40030,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "password",
- "labelZh": "访问密码",
- "labelEn": "Access Password",
- "required": true,
- "default": "VNCPassword",
- "random": true,
- "rule": "paramComplexity",
- "envKey": "VNC_PASSWORD",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "配置文件所在路径",
- "labelEn": "Config file path",
- "required": true,
- "default": "./data/config",
- "envKey": "CONFIG_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "下载文件夹路径",
- "labelEn": "Download folder path",
- "required": true,
- "default": "./data/downloads",
- "envKey": "DOWNLOAD_PATH",
- "edit": true
- }
- ]
-}
diff --git a/baidunetdisk/versions/latest/README.md b/baidunetdisk/versions/latest/README.md
deleted file mode 100644
index 65bd50fc..00000000
--- a/baidunetdisk/versions/latest/README.md
+++ /dev/null
@@ -1,102 +0,0 @@
-## 群晖nas自用:
-
-### GitHub:
-
-[https://github.com/gshang2017/docker](https://github.com/gshang2017/docker)
-
-### 感谢以下项目:
-
-[https://github.com/jlesage/docker-baseimage-gui](https://github.com/jlesage/docker-baseimage-gui "https://github.com/jlesage/docker-baseimage-gui")
-
-### 版本:
-
-|名称|版本|说明|
-|:-|:-|:-|
-|baidunetdisk|4.17.7|amd64|
-|baidunetdisk|4.14.6|arm64|
-
-#### 注意:
-
- * 重启群晖,网盘(baidunetdisk:3.0.1.2)不能登陆:只需要删除配置文件夹下baidunetdiskdata.db(下载进度会保留),如果网盘设置闪退需删除帐户文件夹下userConf.db,重启docker。
-
- * 升级 baidunetdisk:3.5.0,下载位置需手动配置(右上角-设置)。
-
-### docker命令行设置:
-
-1. 下载镜像
-
- |镜像源|命令|
- |:-|:-|
- |DockerHub|docker pull johngong/baidunetdisk:latest|
- |GitHub|docker pull ghcr.io/gshang2017/baidunetdisk:latest|
-
-2. 创建baidunetdisk容器
-
- docker create \
- --name=baidunetdisk \
- -p 5800:5800 \
- -p 5900:5900 \
- -v /配置文件位置:/config \
- -v /下载位置:/config/baidunetdiskdownload \
- --restart unless-stopped \
- johngong/baidunetdisk:latest
-
-3. 运行
-
- docker start baidunetdisk
-
-4. 停止
-
- docker stop baidunetdisk
-
-5. 删除容器
-
- docker rm baidunetdisk
-
-6. 删除镜像
-
- docker image rm johngong/baidunetdisk:latest
-
-### 变量:
-
-|参数|说明|
-|:-|:-|
-| `--name=baidunetdisk` |容器名|
-| `-p 5800:5800` |Web界面访问端口,[ip:5800](ip:5800)|
-| `-p 5900:5900` |VNC协议访问端口.如果未使用VNC客户端,则为可选,[ip:5900](ip:5900)|
-| `-v /配置文件位置:/config` |baidunetdisk配置文件位置|
-| `-v /下载位置:/config/baidunetdiskdownload` |baidunetdisk下载路径(3.3.2需手动设置)|
-| `-e VNC_PASSWORD=VNC密码` |VNC密码|
-| `-e USER_ID=1000` |uid设置,默认为1000|
-| `-e GROUP_ID=1000` |gid设置,默认为1000|
-| `-e NOVNC_LANGUAGE="zh_Hans"` |(zh_Hans\|en)设定novnc语言,默认为中文|
-
-
-更多参数设置详见:[https://registry.hub.docker.com/r/jlesage/baseimage-gui](https://registry.hub.docker.com/r/jlesage/baseimage-gui "https://registry.hub.docker.com/r/jlesage/baseimage-gui")
-
-
-### 群晖docker设置:
-
-1. 卷
-
-|参数|说明|
-|:-|:-|
-| `本地文件夹1:/config/baidunetdiskdownload` |baidunetdisk下载路径(3.3.2需手动设置)|
-| `本地文件夹2:/config` |baidunetdisk配置文件位置|
-
-2. 端口
-
-|参数|说明|
-|:-|:-|
-| `本地端口1:5800` |Web界面访问端口,[ip:本地端口1](ip:本地端口1)|
-| `本地端口2:5900` |VNC协议访问端口.如果未使用VNC客户端,则为可选,[ip:本地端口2](ip:本地端口2)|
-
-3. 环境变量
-
-|参数|说明|
-|:-|:-|
-| `VNC_PASSWORD=VNC密码` |VNC密码|
-| `USER_ID=1000` |uid设置,默认为1000|
-| `GROUP_ID=1000` |gid设置,默认为1000|
-| `NOVNC_LANGUAGE="zh_Hans"` |(zh_Hans\|en)设定novnc语言,默认为中文|
-
diff --git a/baidunetdisk/versions/latest/config.json b/baidunetdisk/versions/latest/config.json
deleted file mode 100644
index b2690a5d..00000000
--- a/baidunetdisk/versions/latest/config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 40030,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "password",
- "labelZh": "访问密码",
- "labelEn": "Access Password",
- "required": true,
- "default": "VNCPassword",
- "random": true,
- "rule": "paramComplexity",
- "envKey": "VNC_PASSWORD",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "配置文件所在路径",
- "labelEn": "Config file path",
- "required": true,
- "default": "./data/config",
- "envKey": "CONFIG_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "下载文件夹路径",
- "labelEn": "Download folder path",
- "required": true,
- "default": "./data/downloads",
- "envKey": "DOWNLOAD_PATH",
- "edit": true
- }
- ]
-}
diff --git a/chatgpt-web/versions/latest/README.md b/chatgpt-web/README.md
similarity index 100%
rename from chatgpt-web/versions/latest/README.md
rename to chatgpt-web/README.md
diff --git a/chatgpt-web/data.yml b/chatgpt-web/data.yml
new file mode 100644
index 00000000..0984135f
--- /dev/null
+++ b/chatgpt-web/data.yml
@@ -0,0 +1,20 @@
+name: chatgpt-web
+tags:
+ - 工具
+title: 使用express和vue3搭建的支持ChatGPT双模型演示网页
+type: 工具
+description: 使用express和vue3搭建的支持ChatGPT双模型演示网页
+additionalProperties:
+ key: chatgpt-web
+ name: chatgpt-web
+ tags:
+ - Tool
+ shortDescZh: 使用express和vue3搭建的支持ChatGPT双模型演示网页
+ shortDescEn: ChatGPT-enabled dual-model demo page built with express and vue3
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://github.com/Chanzhaoyu/chatgpt-web
+ github: https://github.com/Chanzhaoyu/chatgpt-web
+ document: https://github.com/Chanzhaoyu/chatgpt-web
diff --git a/chatgpt-web/versions/latest/.env.sample b/chatgpt-web/latest/.env.sample
similarity index 100%
rename from chatgpt-web/versions/latest/.env.sample
rename to chatgpt-web/latest/.env.sample
diff --git a/chatgpt-web/latest/data.yml b/chatgpt-web/latest/data.yml
new file mode 100644
index 00000000..8590639a
--- /dev/null
+++ b/chatgpt-web/latest/data.yml
@@ -0,0 +1,103 @@
+additionalProperties:
+ formFields:
+ - default: 40021
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ''
+ edit: true
+ envKey: ACCESS_TOKEN
+ labelEn: OPENAI ACCESS TOKEN (fill in at least one with OPENAI API KEY)
+ labelZh: OPENAI ACCESS TOKEN(与OPENAI API KEY至少填一个)
+ required: false
+ type: text
+ - default: https://bypass.duti.tech/api/conversation
+ edit: true
+ envKey: REVERSE_PROXY
+ labelEn: API reverse proxy, optional (enabled by default when OPENAI ACCESS TOKEN, need to pay attention to availability)
+ labelZh: API反向代理,可选(OPENAI ACCESS TOKEN时默认启用,需要注意可用性)
+ required: false
+ type: text
+ - default: ''
+ edit: true
+ envKey: API_KEY
+ labelEn: OPENAI API KEY (fill in at least one with OPENAI ACCESS TOKEN)
+ labelZh: OPENAI API KEY(与OPENAI ACCESS TOKEN至少填一个)
+ required: false
+ type: text
+ - default: gpt-3.5-turbo
+ edit: true
+ envKey: API_MODEL
+ labelEn: API model, optional, available when setting OPENAI API KEY(https://platform.openai.com/docs/models)
+ labelZh: API模型,可选,设置OPENAI API KEY时可用(https://platform.openai.com/docs/models)
+ required: false
+ type: text
+ - default: https://api.openai.com
+ edit: true
+ envKey: API_BASE_URL
+ labelEn: API interface address, optional, available when setting OPENAI API KEY
+ labelZh: API接口地址,可选,设置OPENAI API KEY时可用
+ required: false
+ type: text
+ - default: chatgptweb
+ edit: true
+ envKey: SECRET_KEY
+ labelEn: Access rights key, optional (recommended)
+ labelZh: 访问权限密钥,可选(强烈建议填写)
+ random: true
+ required: false
+ rule: paramComplexity
+ type: password
+ - default: '0'
+ edit: true
+ envKey: REQUEST_LIMIT
+ labelEn: Maximum number of requests per hour, optional, default unlimited
+ labelZh: 每小时最大请求次数,可选,默认无限
+ required: false
+ type: text
+ - default: '60000'
+ edit: true
+ envKey: TIMEOUT
+ labelEn: Timeout, in milliseconds, optional
+ labelZh: 超时,单位毫秒,可选
+ required: false
+ type: text
+ - default: ''
+ edit: true
+ envKey: PROXY_HOST
+ labelEn: Socks proxy address, optional, effective when combined with Socks proxy port
+ labelZh: Socks代理地址,可选,和Socks代理端口一起时生效
+ required: false
+ type: text
+ - default: ''
+ edit: true
+ envKey: PROXY_PORT
+ labelEn: Socks proxy port, optional, effective when combined with Socks proxy address
+ labelZh: Socks代理端口,可选,和Socks代理地址一起时生效
+ required: false
+ type: text
+ - default: ''
+ edit: true
+ envKey: PROXY_USERNAME
+ labelEn: Socks proxy user name, optional, effective when combined with Socks proxy address
+ labelZh: Socks代理用户名,可选,和Socks代理地址一起时生效
+ required: false
+ type: text
+ - default: ''
+ edit: true
+ envKey: PROXY_PASSWORD
+ labelEn: Socks proxy password, optional, effective when combined with Socks proxy address
+ labelZh: Socks代理密码,可选,和Socks代理地址一起时生效
+ required: false
+ type: text
+ - default: ''
+ edit: true
+ envKey: HTTPS_PROXY
+ labelEn: HTTPS proxy, optional, supports http, https, socks5
+ labelZh: HTTPS代理,可选,支持http,https,socks5
+ required: false
+ type: text
diff --git a/chatgpt-web/versions/latest/docker-compose.yml b/chatgpt-web/latest/docker-compose.yml
similarity index 100%
rename from chatgpt-web/versions/latest/docker-compose.yml
rename to chatgpt-web/latest/docker-compose.yml
diff --git a/chatgpt-web/metadata/logo.png b/chatgpt-web/logo.png
similarity index 100%
rename from chatgpt-web/metadata/logo.png
rename to chatgpt-web/logo.png
diff --git a/chatgpt-web/metadata/app.json b/chatgpt-web/metadata/app.json
deleted file mode 100644
index b8eee7b7..00000000
--- a/chatgpt-web/metadata/app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "key": "chatgpt-web",
- "name": "chatgpt-web",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "使用express和vue3搭建的支持ChatGPT双模型演示网页。",
- "shortDescEn": "ChatGPT-enabled dual-model demo page built with express and vue3.",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://github.com/Chanzhaoyu/chatgpt-web",
- "github": "https://github.com/Chanzhaoyu/chatgpt-web",
- "document": "https://github.com/Chanzhaoyu/chatgpt-web"
-}
diff --git a/chatgpt-web/versions/latest/config.json b/chatgpt-web/versions/latest/config.json
deleted file mode 100644
index 04fa1c27..00000000
--- a/chatgpt-web/versions/latest/config.json
+++ /dev/null
@@ -1,142 +0,0 @@
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 40021,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "OPENAI ACCESS TOKEN(与OPENAI API KEY至少填一个)",
- "labelEn": "OPENAI ACCESS TOKEN (fill in at least one with OPENAI API KEY)",
- "required": false,
- "default": "",
- "envKey": "ACCESS_TOKEN",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "API反向代理,可选(OPENAI ACCESS TOKEN时默认启用,需要注意可用性)",
- "labelEn": "API reverse proxy, optional (enabled by default when OPENAI ACCESS TOKEN, need to pay attention to availability)",
- "required": false,
- "default": "https://bypass.duti.tech/api/conversation",
- "envKey": "REVERSE_PROXY",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "OPENAI API KEY(与OPENAI ACCESS TOKEN至少填一个)",
- "labelEn": "OPENAI API KEY (fill in at least one with OPENAI ACCESS TOKEN)",
- "required": false,
- "default": "",
- "envKey": "API_KEY",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "API模型,可选,设置OPENAI API KEY时可用(https://platform.openai.com/docs/models)",
- "labelEn": "API model, optional, available when setting OPENAI API KEY(https://platform.openai.com/docs/models)",
- "required": false,
- "default": "gpt-3.5-turbo",
- "envKey": "API_MODEL",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "API接口地址,可选,设置OPENAI API KEY时可用",
- "labelEn": "API interface address, optional, available when setting OPENAI API KEY",
- "required": false,
- "default": "https://api.openai.com",
- "envKey": "API_BASE_URL",
- "edit": true
- },
- {
- "type": "password",
- "labelZh": "访问权限密钥,可选(强烈建议填写)",
- "labelEn": "Access rights key, optional (recommended)",
- "required": false,
- "default": "chatgptweb",
- "random": true,
- "rule": "paramComplexity",
- "envKey": "SECRET_KEY",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "每小时最大请求次数,可选,默认无限",
- "labelEn": "Maximum number of requests per hour, optional, default unlimited",
- "required": false,
- "default": "0",
- "envKey": "REQUEST_LIMIT",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "超时,单位毫秒,可选",
- "labelEn": "Timeout, in milliseconds, optional",
- "required": false,
- "default": "60000",
- "envKey": "TIMEOUT",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "Socks代理地址,可选,和Socks代理端口一起时生效",
- "labelEn": "Socks proxy address, optional, effective when combined with Socks proxy port",
- "required": false,
- "default": "",
- "envKey": "PROXY_HOST",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "Socks代理端口,可选,和Socks代理地址一起时生效",
- "labelEn": "Socks proxy port, optional, effective when combined with Socks proxy address",
- "required": false,
- "default": "",
- "envKey": "PROXY_PORT",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "Socks代理用户名,可选,和Socks代理地址一起时生效",
- "labelEn": "Socks proxy user name, optional, effective when combined with Socks proxy address",
- "required": false,
- "default": "",
- "envKey": "PROXY_USERNAME",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "Socks代理密码,可选,和Socks代理地址一起时生效",
- "labelEn": "Socks proxy password, optional, effective when combined with Socks proxy address",
- "required": false,
- "default": "",
- "envKey": "PROXY_PASSWORD",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "HTTPS代理,可选,支持http,https,socks5",
- "labelEn": "HTTPS proxy, optional, supports http, https, socks5",
- "required": false,
- "default": "",
- "envKey": "HTTPS_PROXY",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "获取ACCESS_TOKEN:https://chat.openai.com/api/auth/session",
- "labelEn": "Get ACCESS_TOKEN: https://chat.openai.com/api/auth/session",
- "required": false,
- "default": "这是一个提示/This is a tip",
- "edit": false
- }
- ]
-}
-
diff --git a/flarum/versions/1.7.1/.env.sample b/flarum/1.7.1/.env.sample
similarity index 100%
rename from flarum/versions/1.7.1/.env.sample
rename to flarum/1.7.1/.env.sample
diff --git a/flarum/1.7.1/data.yml b/flarum/1.7.1/data.yml
new file mode 100644
index 00000000..0133c306
--- /dev/null
+++ b/flarum/1.7.1/data.yml
@@ -0,0 +1,54 @@
+additionalProperties:
+ formFields:
+ - default: flarum
+ envKey: PANEL_DB_NAME
+ labelEn: Database
+ labelZh: 数据库名
+ random: true
+ required: true
+ rule: paramCommon
+ type: text
+ - default: flarum
+ envKey: PANEL_DB_USER
+ labelEn: User
+ labelZh: 数据库用户
+ random: true
+ required: true
+ rule: paramCommon
+ type: text
+ - default: flarum
+ envKey: PANEL_DB_USER_PASSWORD
+ labelEn: Password
+ labelZh: 数据库用户密码
+ random: true
+ required: true
+ rule: paramComplexity
+ type: password
+ - default: flarum_
+ envKey: PANEL_DB_PREFIX
+ labelEn: Database prefix
+ labelZh: 数据库前缀
+ required: true
+ type: text
+ - default: 40020
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data storage folder
+ labelZh: 数据存放文件夹
+ required: true
+ type: text
+ - default: http://localhost:40020
+ edit: true
+ envKey: FLARUM_EXTERNAL_URL
+ labelEn: External URL
+ labelZh: 外部访问地址
+ required: true
+ type: text
diff --git a/flarum/versions/1.7.1/data/.gitkeep b/flarum/1.7.1/data/.gitkeep
similarity index 100%
rename from flarum/versions/1.7.1/data/.gitkeep
rename to flarum/1.7.1/data/.gitkeep
diff --git a/flarum/versions/1.7.1/docker-compose.yml b/flarum/1.7.1/docker-compose.yml
similarity index 100%
rename from flarum/versions/1.7.1/docker-compose.yml
rename to flarum/1.7.1/docker-compose.yml
diff --git a/flarum/versions/1.7.1/README.md b/flarum/README.md
similarity index 100%
rename from flarum/versions/1.7.1/README.md
rename to flarum/README.md
diff --git a/flarum/data.yml b/flarum/data.yml
new file mode 100644
index 00000000..c225ab08
--- /dev/null
+++ b/flarum/data.yml
@@ -0,0 +1,20 @@
+name: flarum
+tags:
+ - WebSite
+title: 新一代的论坛软件,使在线讨论变得有趣
+type: 建站
+description: 新一代的论坛软件,使在线讨论变得有趣
+additionalProperties:
+ key: flarum
+ name: flarum
+ tags:
+ - Tool
+ shortDescZh: 新一代的论坛软件,使在线讨论变得有趣
+ shortDescEn: The next-generation forum software that makes online discussion fun
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://flarum.org/
+ github: https://github.com/flarum/flarum
+ document: https://docs.flarum.org/
diff --git a/flarum/versions/latest/.env.sample b/flarum/latest/.env.sample
similarity index 100%
rename from flarum/versions/latest/.env.sample
rename to flarum/latest/.env.sample
diff --git a/flarum/latest/data.yml b/flarum/latest/data.yml
new file mode 100644
index 00000000..0133c306
--- /dev/null
+++ b/flarum/latest/data.yml
@@ -0,0 +1,54 @@
+additionalProperties:
+ formFields:
+ - default: flarum
+ envKey: PANEL_DB_NAME
+ labelEn: Database
+ labelZh: 数据库名
+ random: true
+ required: true
+ rule: paramCommon
+ type: text
+ - default: flarum
+ envKey: PANEL_DB_USER
+ labelEn: User
+ labelZh: 数据库用户
+ random: true
+ required: true
+ rule: paramCommon
+ type: text
+ - default: flarum
+ envKey: PANEL_DB_USER_PASSWORD
+ labelEn: Password
+ labelZh: 数据库用户密码
+ random: true
+ required: true
+ rule: paramComplexity
+ type: password
+ - default: flarum_
+ envKey: PANEL_DB_PREFIX
+ labelEn: Database prefix
+ labelZh: 数据库前缀
+ required: true
+ type: text
+ - default: 40020
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data storage folder
+ labelZh: 数据存放文件夹
+ required: true
+ type: text
+ - default: http://localhost:40020
+ edit: true
+ envKey: FLARUM_EXTERNAL_URL
+ labelEn: External URL
+ labelZh: 外部访问地址
+ required: true
+ type: text
diff --git a/flarum/versions/latest/data/.gitkeep b/flarum/latest/data/.gitkeep
similarity index 100%
rename from flarum/versions/latest/data/.gitkeep
rename to flarum/latest/data/.gitkeep
diff --git a/flarum/versions/latest/docker-compose.yml b/flarum/latest/docker-compose.yml
similarity index 100%
rename from flarum/versions/latest/docker-compose.yml
rename to flarum/latest/docker-compose.yml
diff --git a/flarum/metadata/logo.png b/flarum/logo.png
similarity index 100%
rename from flarum/metadata/logo.png
rename to flarum/logo.png
diff --git a/flarum/metadata/app.json b/flarum/metadata/app.json
deleted file mode 100644
index 68e750c5..00000000
--- a/flarum/metadata/app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "key": "flarum",
- "name": "flarum",
- "tags": ["WebSite"],
- "versions": ["1.7.1","latest"],
- "shortDescZh": "新一代的论坛软件,使在线讨论变得有趣。",
- "shortDescEn": "The next-generation forum software that makes online discussion fun.",
- "type": "website",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://flarum.org/",
- "github": "https://github.com/flarum/flarum",
- "document": "https://docs.flarum.org/"
-}
diff --git a/flarum/versions/1.7.1/config.json b/flarum/versions/1.7.1/config.json
deleted file mode 100644
index 00bb18d0..00000000
--- a/flarum/versions/1.7.1/config.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "formFields": [
- {
- "type": "apps",
- "labelZh": "数据库服务",
- "labelEn": "Database Service",
- "required": true,
- "default": "mysql",
- "values": [{
- "label": "MySQL",
- "value": "mysql"
- }],
- "child": {
- "type": "service",
- "labelZh": "数据库服务",
- "labelEn": "Database Service",
- "required": true,
- "default": "",
- "envKey": "PANEL_DB_HOST"
- },
- "params": [
- {
- "type": "param",
- "key": "mysql",
- "value": "3306",
- "envKey": "FLARUM_DB_PORT"
- },
- {
- "type": "param",
- "key": "postgresql",
- "value": "5432",
- "envKey": "FLARUM_DB_PORT"
- }
- ]
- },
- {
- "type": "text",
- "labelZh": "数据库名",
- "labelEn": "Database",
- "required": true,
- "default": "flarum",
- "random": true,
- "rule": "paramCommon",
- "envKey": "PANEL_DB_NAME"
- },
- {
- "type": "text",
- "labelZh": "数据库用户",
- "labelEn": "User",
- "required": true,
- "default": "flarum",
- "random": true,
- "rule": "paramCommon",
- "envKey": "PANEL_DB_USER"
- },
- {
- "type": "password",
- "labelZh": "数据库用户密码",
- "labelEn": "Password",
- "required": true,
- "default": "flarum",
- "random": true,
- "rule": "paramComplexity",
- "envKey": "PANEL_DB_USER_PASSWORD"
- },
- {
- "type": "text",
- "labelZh": "数据库前缀",
- "labelEn": "Database prefix",
- "required": true,
- "default": "flarum_",
- "envKey": "PANEL_DB_PREFIX"
- },
- {
- "type": "number",
- "labelZh": "端口",
- "labelEn": "Port",
- "required": true,
- "default": 40020,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "数据存放文件夹",
- "labelEn": "Data storage folder",
- "required": true,
- "default": "./data",
- "envKey": "DATA_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "外部访问地址",
- "labelEn": "External URL",
- "required": true,
- "default": "http://localhost:40020",
- "envKey": "FLARUM_EXTERNAL_URL",
- "edit": true
- }
- ]
-}
-
diff --git a/flarum/versions/latest/README.md b/flarum/versions/latest/README.md
deleted file mode 100644
index 5fad07f3..00000000
--- a/flarum/versions/latest/README.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# 使用说明
-## 账户密码
-- 初始账户: flarum
-- 初始密码: flarum
-
-## 中文语言包
-
-> 中文语言包:
->> - https://github.com/flarum-lang/chinese-simplified
-
-使用说明:
-
-- Flarum v0.1.0-beta.8 及以上版本
-
-进入容器终端运行以下安装中文语言包,详细可查看原项目文档。
-```
-composer require flarum-lang/chinese-simplified
-php flarum cache:clear
-```
-
-## 所使用docker镜像相关:
-
-> 项目链接
->> - https://hub.docker.com/r/crazymax/flarum
->> - https://github.com/crazy-max/docker-flarum
-
-# 原始相关
-
-
-
-
-
-
-
-
-
-
-
-## About Flarum
-
-**[Flarum](https://flarum.org/) is a delightfully simple discussion platform for your website.** It's fast and easy to use, with all the features you need to run a successful community. It is designed to be:
-
-* **Fast and simple.** No clutter, no bloat, no complex dependencies. Flarum is built with PHP so it’s quick and easy to deploy. The interface is powered by Mithril, a performant JavaScript framework with a tiny footprint.
-
-* **Beautiful and responsive.** This is forum software for humans. Flarum is carefully designed to be consistent and intuitive across platforms, out-of-the-box.
-
-* **Powerful and extensible.** Customize, extend, and integrate Flarum to suit your community. Flarum’s architecture is amazingly flexible, with a powerful Extension API.
-
-
-
-## Installation
-
-Read the **[Installation guide](https://docs.flarum.org/install)** to get started. For support, refer to the [documentation](https://docs.flarum.org/), and ask questions on the [community forum](https://discuss.flarum.org/) or [Discord chat](https://flarum.org/discord/).
-
-## Contributing
-
-Thank you for considering contributing to Flarum! Please read the **[Contributing guide](https://docs.flarum.org/contributing)** to learn how you can help.
-
-This repository only holds the Flarum skeleton application. Most development happens in [flarum/core](https://github.com/flarum/core).
-
-## Security Vulnerabilities
-
-If you discover a security vulnerability within Flarum, please follow our [security policy](https://github.com/flarum/core/security/policy) so we can address it promptly.
-
-## License
-
-Flarum is open-source software licensed under the [MIT License](https://github.com/flarum/flarum/blob/master/LICENSE).
-
-
diff --git a/flarum/versions/latest/config.json b/flarum/versions/latest/config.json
deleted file mode 100644
index 00bb18d0..00000000
--- a/flarum/versions/latest/config.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "formFields": [
- {
- "type": "apps",
- "labelZh": "数据库服务",
- "labelEn": "Database Service",
- "required": true,
- "default": "mysql",
- "values": [{
- "label": "MySQL",
- "value": "mysql"
- }],
- "child": {
- "type": "service",
- "labelZh": "数据库服务",
- "labelEn": "Database Service",
- "required": true,
- "default": "",
- "envKey": "PANEL_DB_HOST"
- },
- "params": [
- {
- "type": "param",
- "key": "mysql",
- "value": "3306",
- "envKey": "FLARUM_DB_PORT"
- },
- {
- "type": "param",
- "key": "postgresql",
- "value": "5432",
- "envKey": "FLARUM_DB_PORT"
- }
- ]
- },
- {
- "type": "text",
- "labelZh": "数据库名",
- "labelEn": "Database",
- "required": true,
- "default": "flarum",
- "random": true,
- "rule": "paramCommon",
- "envKey": "PANEL_DB_NAME"
- },
- {
- "type": "text",
- "labelZh": "数据库用户",
- "labelEn": "User",
- "required": true,
- "default": "flarum",
- "random": true,
- "rule": "paramCommon",
- "envKey": "PANEL_DB_USER"
- },
- {
- "type": "password",
- "labelZh": "数据库用户密码",
- "labelEn": "Password",
- "required": true,
- "default": "flarum",
- "random": true,
- "rule": "paramComplexity",
- "envKey": "PANEL_DB_USER_PASSWORD"
- },
- {
- "type": "text",
- "labelZh": "数据库前缀",
- "labelEn": "Database prefix",
- "required": true,
- "default": "flarum_",
- "envKey": "PANEL_DB_PREFIX"
- },
- {
- "type": "number",
- "labelZh": "端口",
- "labelEn": "Port",
- "required": true,
- "default": 40020,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "数据存放文件夹",
- "labelEn": "Data storage folder",
- "required": true,
- "default": "./data",
- "envKey": "DATA_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "外部访问地址",
- "labelEn": "External URL",
- "required": true,
- "default": "http://localhost:40020",
- "envKey": "FLARUM_EXTERNAL_URL",
- "edit": true
- }
- ]
-}
-
diff --git a/frps/versions/0.48.0/.env.sample b/frps/0.48.0/.env.sample
similarity index 100%
rename from frps/versions/0.48.0/.env.sample
rename to frps/0.48.0/.env.sample
diff --git a/frps/0.48.0/data.yml b/frps/0.48.0/data.yml
new file mode 100644
index 00000000..83bbeb44
--- /dev/null
+++ b/frps/0.48.0/data.yml
@@ -0,0 +1,9 @@
+additionalProperties:
+ formFields:
+ - default: ./data/frps.ini
+ edit: true
+ envKey: CONFIG_FILE_PATH
+ labelEn: Configuration file path
+ labelZh: 配置文件路径
+ required: true
+ type: text
diff --git a/frps/versions/0.48.0/data/frpc.ini b/frps/0.48.0/data/frpc.ini
similarity index 100%
rename from frps/versions/0.48.0/data/frpc.ini
rename to frps/0.48.0/data/frpc.ini
diff --git a/frps/versions/0.48.0/data/frpc_full.ini b/frps/0.48.0/data/frpc_full.ini
similarity index 100%
rename from frps/versions/0.48.0/data/frpc_full.ini
rename to frps/0.48.0/data/frpc_full.ini
diff --git a/frps/versions/0.48.0/data/frps.ini b/frps/0.48.0/data/frps.ini
similarity index 100%
rename from frps/versions/0.48.0/data/frps.ini
rename to frps/0.48.0/data/frps.ini
diff --git a/frps/versions/0.48.0/data/frps_full.ini b/frps/0.48.0/data/frps_full.ini
similarity index 100%
rename from frps/versions/0.48.0/data/frps_full.ini
rename to frps/0.48.0/data/frps_full.ini
diff --git a/frps/versions/0.48.0/docker-compose.yml b/frps/0.48.0/docker-compose.yml
similarity index 100%
rename from frps/versions/0.48.0/docker-compose.yml
rename to frps/0.48.0/docker-compose.yml
diff --git a/frps/versions/0.48.0/README.md b/frps/README.md
similarity index 100%
rename from frps/versions/0.48.0/README.md
rename to frps/README.md
diff --git a/frps/data.yml b/frps/data.yml
new file mode 100644
index 00000000..38f891e3
--- /dev/null
+++ b/frps/data.yml
@@ -0,0 +1,20 @@
+name: frps-frp服务端
+tags:
+ - 工具
+title: frp是一种反向代理工具,常用于内网穿透
+type: 工具
+description: frp是一种反向代理工具,常用于内网穿透
+additionalProperties:
+ key: frps
+ name: frps-frp服务端
+ tags:
+ - Tool
+ shortDescZh: frp是一种反向代理工具,常用于内网穿透
+ shortDescEn: frp is a reverse proxy tool that is commonly used for intranet penetration
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://github.com/fatedier/frp
+ github: https://github.com/fatedier/frp
+ document: https://github.com/fatedier/frp/blob/dev/README_zh.md
diff --git a/frps/versions/latest/.env.sample b/frps/latest/.env.sample
similarity index 100%
rename from frps/versions/latest/.env.sample
rename to frps/latest/.env.sample
diff --git a/frps/latest/data.yml b/frps/latest/data.yml
new file mode 100644
index 00000000..83bbeb44
--- /dev/null
+++ b/frps/latest/data.yml
@@ -0,0 +1,9 @@
+additionalProperties:
+ formFields:
+ - default: ./data/frps.ini
+ edit: true
+ envKey: CONFIG_FILE_PATH
+ labelEn: Configuration file path
+ labelZh: 配置文件路径
+ required: true
+ type: text
diff --git a/frps/versions/latest/data/frpc.ini b/frps/latest/data/frpc.ini
similarity index 100%
rename from frps/versions/latest/data/frpc.ini
rename to frps/latest/data/frpc.ini
diff --git a/frps/versions/latest/data/frpc_full.ini b/frps/latest/data/frpc_full.ini
similarity index 100%
rename from frps/versions/latest/data/frpc_full.ini
rename to frps/latest/data/frpc_full.ini
diff --git a/frps/versions/latest/data/frps.ini b/frps/latest/data/frps.ini
similarity index 100%
rename from frps/versions/latest/data/frps.ini
rename to frps/latest/data/frps.ini
diff --git a/frps/versions/latest/data/frps_full.ini b/frps/latest/data/frps_full.ini
similarity index 100%
rename from frps/versions/latest/data/frps_full.ini
rename to frps/latest/data/frps_full.ini
diff --git a/frps/versions/latest/docker-compose.yml b/frps/latest/docker-compose.yml
similarity index 100%
rename from frps/versions/latest/docker-compose.yml
rename to frps/latest/docker-compose.yml
diff --git a/frps/metadata/logo.png b/frps/logo.png
similarity index 100%
rename from frps/metadata/logo.png
rename to frps/logo.png
diff --git a/frps/metadata/app.json b/frps/metadata/app.json
deleted file mode 100644
index 7743bd4e..00000000
--- a/frps/metadata/app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "key": "frps",
- "name": "frps-frp服务端",
- "tags": ["Tool"],
- "versions": ["0.48.0","latest"],
- "shortDescZh": "frp是一种反向代理工具,常用于内网穿透",
- "shortDescEn": "frp is a reverse proxy tool that is commonly used for intranet penetration",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://github.com/fatedier/frp",
- "github": "https://github.com/fatedier/frp",
- "document": "https://github.com/fatedier/frp/blob/dev/README_zh.md"
-}
diff --git a/frps/versions/0.48.0/config.json b/frps/versions/0.48.0/config.json
deleted file mode 100644
index 93f90a0f..00000000
--- a/frps/versions/0.48.0/config.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "配置文件路径",
- "labelEn": "Configuration file path",
- "required": true,
- "default": "./data/frps.ini",
- "envKey": "CONFIG_FILE_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "记得编辑frps.ini获得更多功能",
- "labelEn": "Remember to edit frps.ini for more features",
- "required": false,
- "default": "这是一个提示/This is a tip",
- "edit": false
- }
- ]
-}
diff --git a/frps/versions/latest/README.md b/frps/versions/latest/README.md
deleted file mode 100644
index 9e035d0e..00000000
--- a/frps/versions/latest/README.md
+++ /dev/null
@@ -1,1152 +0,0 @@
-
-# frp
-
-[](https://circleci.com/gh/fatedier/frp)
-[](https://github.com/fatedier/frp/releases)
-
-[README](README.md) | [中文文档](README_zh.md)
-
-Gold Sponsors
-
-
-
-
-
-  
-
-
-
-
-
-
-
-## What is frp?
-
-frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports **TCP** and **UDP**, as well as **HTTP** and **HTTPS** protocols, enabling requests to be forwarded to internal services via domain name.
-
-frp also offers a P2P connect mode.
-
-## Table of Contents
-
-
-
-- [frp](#frp)
- - [What is frp?](#what-is-frp)
- - [Table of Contents](#table-of-contents)
- - [Development Status](#development-status)
- - [Architecture](#architecture)
- - [Example Usage](#example-usage)
- - [Access your computer in a LAN network via SSH](#access-your-computer-in-a-lan-network-via-ssh)
- - [Accessing Internal Web Services with Custom Domains in LAN](#accessing-internal-web-services-with-custom-domains-in-lan)
- - [Forward DNS query requests](#forward-dns-query-requests)
- - [Forward Unix Domain Socket](#forward-unix-domain-socket)
- - [Expose a simple HTTP file server](#expose-a-simple-http-file-server)
- - [Enable HTTPS for a local HTTP(S) service](#enable-https-for-a-local-https-service)
- - [Expose your service privately](#expose-your-service-privately)
- - [P2P Mode](#p2p-mode)
- - [Features](#features)
- - [Configuration Files](#configuration-files)
- - [Using Environment Variables](#using-environment-variables)
- - [Split Configures Into Different Files](#split-configures-into-different-files)
- - [Dashboard](#dashboard)
- - [Admin UI](#admin-ui)
- - [Monitor](#monitor)
- - [Prometheus](#prometheus)
- - [Authenticating the Client](#authenticating-the-client)
- - [Token Authentication](#token-authentication)
- - [OIDC Authentication](#oidc-authentication)
- - [Encryption and Compression](#encryption-and-compression)
- - [TLS](#tls)
- - [Hot-Reloading frpc configuration](#hot-reloading-frpc-configuration)
- - [Get proxy status from client](#get-proxy-status-from-client)
- - [Only allowing certain ports on the server](#only-allowing-certain-ports-on-the-server)
- - [Port Reuse](#port-reuse)
- - [Bandwidth Limit](#bandwidth-limit)
- - [For Each Proxy](#for-each-proxy)
- - [TCP Stream Multiplexing](#tcp-stream-multiplexing)
- - [Support KCP Protocol](#support-kcp-protocol)
- - [Support QUIC Protocol](#support-quic-protocol)
- - [Connection Pooling](#connection-pooling)
- - [Load balancing](#load-balancing)
- - [Service Health Check](#service-health-check)
- - [Rewriting the HTTP Host Header](#rewriting-the-http-host-header)
- - [Setting other HTTP Headers](#setting-other-http-headers)
- - [Get Real IP](#get-real-ip)
- - [HTTP X-Forwarded-For](#http-x-forwarded-for)
- - [Proxy Protocol](#proxy-protocol)
- - [Require HTTP Basic Auth (Password) for Web Services](#require-http-basic-auth-password-for-web-services)
- - [Custom Subdomain Names](#custom-subdomain-names)
- - [URL Routing](#url-routing)
- - [TCP Port Multiplexing](#tcp-port-multiplexing)
- - [Connecting to frps via HTTP PROXY](#connecting-to-frps-via-http-proxy)
- - [Range ports mapping](#range-ports-mapping)
- - [Client Plugins](#client-plugins)
- - [Server Manage Plugins](#server-manage-plugins)
- - [Development Plan](#development-plan)
- - [Contributing](#contributing)
- - [Donation](#donation)
- - [GitHub Sponsors](#github-sponsors)
- - [PayPal](#paypal)
-
-
-
-## Development Status
-
-frp is currently under development. You can try the latest release version in the `master` branch, or use the `dev` branch to access the version currently in development.
-
-We are currently working on version 2 and attempting to perform some code refactoring and improvements. However, please note that it will not be compatible with version 1.
-
-We will transition from version 0 to version 1 at the appropriate time and will only accept bug fixes and improvements, rather than big feature requests.
-
-## Architecture
-
-
-
-## Example Usage
-
-To begin, download the latest program for your operating system and architecture from the [Release](https://github.com/fatedier/frp/releases) page.
-
-Next, place the `frps` binary and `frps.ini` configuration file on Server A, which has a public IP address.
-
-Finally, place the `frpc` binary and `frpc.ini` configuration file on Server B, which is located on a LAN that cannot be directly accessed from the public internet.
-
-### Access your computer in a LAN network via SSH
-
-1. Modify `frps.ini` on server A by setting the `bind_port` for frp clients to connect to:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- ```
-
-2. Start `frps` on server A:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` on server B and set the `server_addr` field to the public IP address of your frps server:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [ssh]
- type = tcp
- local_ip = 127.0.0.1
- local_port = 22
- remote_port = 6000
- ```
-
-Note that the `local_port` (listened on the client) and `remote_port` (exposed on the server) are used for traffic going in and out of the frp system, while the `server_port` is used for communication between frps and frpc.
-
-4. Start `frpc` on server B:
-
- `./frpc -c ./frpc.ini`
-
-5. To access server B from another machine through server A via SSH (assuming the username is `test`), use the following command:
-
- `ssh -oPort=6000 test@x.x.x.x`
-
-### Accessing Internal Web Services with Custom Domains in LAN
-
-Sometimes we need to expose a local web service behind a NAT network to others for testing purposes with our own domain name.
-
-Unfortunately, we cannot resolve a domain name to a local IP. However, we can use frp to expose an HTTP(S) service.
-
-1. Modify `frps.ini` and set the HTTP port for vhost to 8080:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- vhost_http_port = 8080
- ```
-
-2. Start `frps`:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Specify the `local_port` of your web service:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [web]
- type = http
- local_port = 80
- custom_domains = www.example.com
- ```
-
-4. Start `frpc`:
-
- `./frpc -c ./frpc.ini`
-
-5. Map the A record of `www.example.com` to either the public IP of the remote frps server or a CNAME record pointing to your original domain.
-
-6. Visit your local web service using url `http://www.example.com:8080`.
-
-### Forward DNS query requests
-
-1. Modify `frps.ini`:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- ```
-
-2. Start `frps`:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Forward DNS query requests to the Google Public DNS server `8.8.8.8:53`:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [dns]
- type = udp
- local_ip = 8.8.8.8
- local_port = 53
- remote_port = 6000
- ```
-
-4. Start frpc:
-
- `./frpc -c ./frpc.ini`
-
-5. Test DNS resolution using the `dig` command:
-
- `dig @x.x.x.x -p 6000 www.google.com`
-
-### Forward Unix Domain Socket
-
-Expose a Unix domain socket (e.g. the Docker daemon socket) as TCP.
-
-Configure `frps` as above.
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [unix_domain_socket]
- type = tcp
- remote_port = 6000
- plugin = unix_domain_socket
- plugin_unix_path = /var/run/docker.sock
- ```
-
-2. Test the configuration by getting the docker version using `curl`:
-
- `curl http://x.x.x.x:6000/version`
-
-### Expose a simple HTTP file server
-
-Expose a simple HTTP file server to access files stored in the LAN from the public Internet.
-
-Configure `frps` as described above, then:
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [test_static_file]
- type = tcp
- remote_port = 6000
- plugin = static_file
- plugin_local_path = /tmp/files
- plugin_strip_prefix = static
- plugin_http_user = abc
- plugin_http_passwd = abc
- ```
-
-2. Visit `http://x.x.x.x:6000/static/` from your browser and specify correct username and password to view files in `/tmp/files` on the `frpc` machine.
-
-### Enable HTTPS for a local HTTP(S) service
-
-You may substitute `https2https` for the plugin, and point the `plugin_local_addr` to a HTTPS endpoint.
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [test_https2http]
- type = https
- custom_domains = test.example.com
-
- plugin = https2http
- plugin_local_addr = 127.0.0.1:80
- plugin_crt_path = ./server.crt
- plugin_key_path = ./server.key
- plugin_host_header_rewrite = 127.0.0.1
- plugin_header_X-From-Where = frp
- ```
-
-2. Visit `https://test.example.com`.
-
-### Expose your service privately
-
-To mitigate risks associated with exposing certain services directly to the public network, STCP (Secret TCP) mode requires a preshared key to be used for access to the service from other clients.
-
-Configure `frps` same as above.
-
-1. Start `frpc` on machine B with the following config. This example is for exposing the SSH service (port 22), and note the `sk` field for the preshared key, and that the `remote_port` field is removed here:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [secret_ssh]
- type = stcp
- sk = abcdefg
- local_ip = 127.0.0.1
- local_port = 22
- ```
-
-2. Start another `frpc` (typically on another machine C) with the following config to access the SSH service with a security key (`sk` field):
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [secret_ssh_visitor]
- type = stcp
- role = visitor
- server_name = secret_ssh
- sk = abcdefg
- bind_addr = 127.0.0.1
- bind_port = 6000
- ```
-
-3. On machine C, connect to SSH on machine B, using this command:
-
- `ssh -oPort=6000 127.0.0.1`
-
-### P2P Mode
-
-**xtcp** is designed to transmit large amounts of data directly between clients. A frps server is still needed, as P2P here only refers to the actual data transmission.
-
-Note that it may not work with all types of NAT devices. You might want to fallback to stcp if xtcp doesn't work.
-
-1. In `frps.ini` configure a UDP port for xtcp:
-
- ```ini
- # frps.ini
- bind_udp_port = 7001
- ```
-
-2. Start `frpc` on machine B, and expose the SSH port. Note that the `remote_port` field is removed:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [p2p_ssh]
- type = xtcp
- sk = abcdefg
- local_ip = 127.0.0.1
- local_port = 22
- ```
-
-3. Start another `frpc` (typically on another machine C) with the configuration to connect to SSH using P2P mode:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [p2p_ssh_visitor]
- type = xtcp
- role = visitor
- server_name = p2p_ssh
- sk = abcdefg
- bind_addr = 127.0.0.1
- bind_port = 6000
- ```
-
-4. On machine C, connect to SSH on machine B, using this command:
-
- `ssh -oPort=6000 127.0.0.1`
-
-## Features
-
-### Configuration Files
-
-Read the full example configuration files to find out even more features not described here.
-
-[Full configuration file for frps (Server)](./conf/frps_full.ini)
-
-[Full configuration file for frpc (Client)](./conf/frpc_full.ini)
-
-### Using Environment Variables
-
-Environment variables can be referenced in the configuration file, using Go's standard format:
-
-```ini
-# frpc.ini
-[common]
-server_addr = {{ .Envs.FRP_SERVER_ADDR }}
-server_port = 7000
-
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = {{ .Envs.FRP_SSH_REMOTE_PORT }}
-```
-
-With the config above, variables can be passed into `frpc` program like this:
-
-```
-export FRP_SERVER_ADDR="x.x.x.x"
-export FRP_SSH_REMOTE_PORT="6000"
-./frpc -c ./frpc.ini
-```
-
-`frpc` will render configuration file template using OS environment variables. Remember to prefix your reference with `.Envs`.
-
-### Split Configures Into Different Files
-
-You can split multiple proxy configs into different files and include them in the main file.
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-includes=./confd/*.ini
-```
-
-```ini
-# ./confd/test.ini
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = 6000
-```
-
-### Dashboard
-
-Check frp's status and proxies' statistics information by Dashboard.
-
-Configure a port for dashboard to enable this feature:
-
-```ini
-[common]
-dashboard_port = 7500
-# dashboard's username and password are both optional
-dashboard_user = admin
-dashboard_pwd = admin
-```
-
-Then visit `http://[server_addr]:7500` to see the dashboard, with username and password both being `admin`.
-
-Additionally, you can use HTTPS port by using your domains wildcard or normal SSL certificate:
-
-```ini
-[common]
-dashboard_port = 7500
-# dashboard's username and password are both optional
-dashboard_user = admin
-dashboard_pwd = admin
-dashboard_tls_mode = true
-dashboard_tls_cert_file = server.crt
-dashboard_tls_key_file = server.key
-```
-
-Then visit `https://[server_addr]:7500` to see the dashboard in secure HTTPS connection, with username and password both being `admin`.
-
-
-
-### Admin UI
-
-The Admin UI helps you check and manage frpc's configuration.
-
-Configure an address for admin UI to enable this feature:
-
-```ini
-[common]
-admin_addr = 127.0.0.1
-admin_port = 7400
-admin_user = admin
-admin_pwd = admin
-```
-
-Then visit `http://127.0.0.1:7400` to see admin UI, with username and password both being `admin`.
-
-### Monitor
-
-When dashboard is enabled, frps will save monitor data in cache. It will be cleared after process restart.
-
-Prometheus is also supported.
-
-#### Prometheus
-
-Enable dashboard first, then configure `enable_prometheus = true` in `frps.ini`.
-
-`http://{dashboard_addr}/metrics` will provide prometheus monitor data.
-
-### Authenticating the Client
-
-There are 2 authentication methods to authenticate frpc with frps.
-
-You can decide which one to use by configuring `authentication_method` under `[common]` in `frpc.ini` and `frps.ini`.
-
-Configuring `authenticate_heartbeats = true` under `[common]` will use the configured authentication method to add and validate authentication on every heartbeat between frpc and frps.
-
-Configuring `authenticate_new_work_conns = true` under `[common]` will do the same for every new work connection between frpc and frps.
-
-#### Token Authentication
-
-When specifying `authentication_method = token` under `[common]` in `frpc.ini` and `frps.ini` - token based authentication will be used.
-
-Make sure to specify the same `token` in the `[common]` section in `frps.ini` and `frpc.ini` for frpc to pass frps validation
-
-#### OIDC Authentication
-
-When specifying `authentication_method = oidc` under `[common]` in `frpc.ini` and `frps.ini` - OIDC based authentication will be used.
-
-OIDC stands for OpenID Connect, and the flow used is called [Client Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.4).
-
-To use this authentication type - configure `frpc.ini` and `frps.ini` as follows:
-
-```ini
-# frps.ini
-[common]
-authentication_method = oidc
-oidc_issuer = https://example-oidc-issuer.com/
-oidc_audience = https://oidc-audience.com/.default
-```
-
-```ini
-# frpc.ini
-[common]
-authentication_method = oidc
-oidc_client_id = 98692467-37de-409a-9fac-bb2585826f18 # Replace with OIDC client ID
-oidc_client_secret = oidc_secret
-oidc_audience = https://oidc-audience.com/.default
-oidc_token_endpoint_url = https://example-oidc-endpoint.com/oauth2/v2.0/token
-```
-
-### Encryption and Compression
-
-The features are off by default. You can turn on encryption and/or compression:
-
-```ini
-# frpc.ini
-[ssh]
-type = tcp
-local_port = 22
-remote_port = 6000
-use_encryption = true
-use_compression = true
-```
-
-#### TLS
-
-frp supports the TLS protocol between `frpc` and `frps` since v0.25.0.
-
-For port multiplexing, frp sends a first byte `0x17` to dial a TLS connection.
-
-Configure `tls_enable = true` in the `[common]` section to `frpc.ini` to enable this feature.
-
-To **enforce** `frps` to only accept TLS connections - configure `tls_only = true` in the `[common]` section in `frps.ini`. **This is optional.**
-
-**`frpc` TLS settings (under the `[common]` section):**
-```ini
-tls_enable = true
-tls_cert_file = certificate.crt
-tls_key_file = certificate.key
-tls_trusted_ca_file = ca.crt
-```
-
-**`frps` TLS settings (under the `[common]` section):**
-```ini
-tls_only = true
-tls_enable = true
-tls_cert_file = certificate.crt
-tls_key_file = certificate.key
-tls_trusted_ca_file = ca.crt
-```
-
-You will need **a root CA cert** and **at least one SSL/TLS certificate**. It **can** be self-signed or regular (such as Let's Encrypt or another SSL/TLS certificate provider).
-
-If you using `frp` via IP address and not hostname, make sure to set the appropriate IP address in the Subject Alternative Name (SAN) area when generating SSL/TLS Certificates.
-
-Given an example:
-
-* Prepare openssl config file. It exists at `/etc/pki/tls/openssl.cnf` in Linux System and `/System/Library/OpenSSL/openssl.cnf` in MacOS, and you can copy it to current path, like `cp /etc/pki/tls/openssl.cnf ./my-openssl.cnf`. If not, you can build it by yourself, like:
-```
-cat > my-openssl.cnf << EOF
-[ ca ]
-default_ca = CA_default
-[ CA_default ]
-x509_extensions = usr_cert
-[ req ]
-default_bits = 2048
-default_md = sha256
-default_keyfile = privkey.pem
-distinguished_name = req_distinguished_name
-attributes = req_attributes
-x509_extensions = v3_ca
-string_mask = utf8only
-[ req_distinguished_name ]
-[ req_attributes ]
-[ usr_cert ]
-basicConstraints = CA:FALSE
-nsComment = "OpenSSL Generated Certificate"
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer
-[ v3_ca ]
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = CA:true
-EOF
-```
-
-* build ca certificates:
-```
-openssl genrsa -out ca.key 2048
-openssl req -x509 -new -nodes -key ca.key -subj "/CN=example.ca.com" -days 5000 -out ca.crt
-```
-
-* build frps certificates:
-```
-openssl genrsa -out server.key 2048
-
-openssl req -new -sha256 -key server.key \
- -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=server.com" \
- -reqexts SAN \
- -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com")) \
- -out server.csr
-
-openssl x509 -req -days 365 -sha256 \
- -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
- -extfile <(printf "subjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com") \
- -out server.crt
-```
-
-* build frpc certificates:
-```
-openssl genrsa -out client.key 2048
-openssl req -new -sha256 -key client.key \
- -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=client.com" \
- -reqexts SAN \
- -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:client.com,DNS:example.client.com")) \
- -out client.csr
-
-openssl x509 -req -days 365 -sha256 \
- -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
- -extfile <(printf "subjectAltName=DNS:client.com,DNS:example.client.com") \
- -out client.crt
-```
-
-### Hot-Reloading frpc configuration
-
-The `admin_addr` and `admin_port` fields are required for enabling HTTP API:
-
-```ini
-# frpc.ini
-[common]
-admin_addr = 127.0.0.1
-admin_port = 7400
-```
-
-Then run command `frpc reload -c ./frpc.ini` and wait for about 10 seconds to let `frpc` create or update or remove proxies.
-
-**Note that parameters in [common] section won't be modified except 'start'.**
-
-You can run command `frpc verify -c ./frpc.ini` before reloading to check if there are config errors.
-
-### Get proxy status from client
-
-Use `frpc status -c ./frpc.ini` to get status of all proxies. The `admin_addr` and `admin_port` fields are required for enabling HTTP API.
-
-### Only allowing certain ports on the server
-
-`allow_ports` in `frps.ini` is used to avoid abuse of ports:
-
-```ini
-# frps.ini
-[common]
-allow_ports = 2000-3000,3001,3003,4000-50000
-```
-
-`allow_ports` consists of specific ports or port ranges (lowest port number, dash `-`, highest port number), separated by comma `,`.
-
-### Port Reuse
-
-`vhost_http_port` and `vhost_https_port` in frps can use same port with `bind_port`. frps will detect the connection's protocol and handle it correspondingly.
-
-We would like to try to allow multiple proxies bind a same remote port with different protocols in the future.
-
-### Bandwidth Limit
-
-#### For Each Proxy
-
-```ini
-# frpc.ini
-[ssh]
-type = tcp
-local_port = 22
-remote_port = 6000
-bandwidth_limit = 1MB
-```
-
-Set `bandwidth_limit` in each proxy's configure to enable this feature. Supported units are `MB` and `KB`.
-
-Set `bandwidth_limit_mode` to `client` or `server` to limit bandwidth on the client or server side. Default is `client`.
-
-### TCP Stream Multiplexing
-
-frp supports tcp stream multiplexing since v0.10.0 like HTTP2 Multiplexing, in which case all logic connections to the same frpc are multiplexed into the same TCP connection.
-
-You can disable this feature by modify `frps.ini` and `frpc.ini`:
-
-```ini
-# frps.ini and frpc.ini, must be same
-[common]
-tcp_mux = false
-```
-
-### Support KCP Protocol
-
-KCP is a fast and reliable protocol that can achieve the transmission effect of a reduction of the average latency by 30% to 40% and reduction of the maximum delay by a factor of three, at the cost of 10% to 20% more bandwidth wasted than TCP.
-
-KCP mode uses UDP as the underlying transport. Using KCP in frp:
-
-1. Enable KCP in frps:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- # Specify a UDP port for KCP.
- kcp_bind_port = 7000
- ```
-
- The `kcp_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port.
-
-2. Configure `frpc.ini` to use KCP to connect to frps:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- # Same as the 'kcp_bind_port' in frps.ini
- server_port = 7000
- protocol = kcp
- ```
-
-### Support QUIC Protocol
-
-QUIC is a new multiplexed transport built on top of UDP.
-
-Using QUIC in frp:
-
-1. Enable QUIC in frps:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- # Specify a UDP port for QUIC.
- quic_bind_port = 7000
- ```
-
- The `quic_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port.
-
-2. Configure `frpc.ini` to use QUIC to connect to frps:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- # Same as the 'quic_bind_port' in frps.ini
- server_port = 7000
- protocol = quic
- ```
-
-### Connection Pooling
-
-By default, frps creates a new frpc connection to the backend service upon a user request. With connection pooling, frps keeps a certain number of pre-established connections, reducing the time needed to establish a connection.
-
-This feature is suitable for a large number of short connections.
-
-1. Configure the limit of pool count each proxy can use in `frps.ini`:
-
- ```ini
- # frps.ini
- [common]
- max_pool_count = 5
- ```
-
-2. Enable and specify the number of connection pool:
-
- ```ini
- # frpc.ini
- [common]
- pool_count = 1
- ```
-
-### Load balancing
-
-Load balancing is supported by `group`.
-
-This feature is only available for types `tcp`, `http`, `tcpmux` now.
-
-```ini
-# frpc.ini
-[test1]
-type = tcp
-local_port = 8080
-remote_port = 80
-group = web
-group_key = 123
-
-[test2]
-type = tcp
-local_port = 8081
-remote_port = 80
-group = web
-group_key = 123
-```
-
-`group_key` is used for authentication.
-
-Connections to port 80 will be dispatched to proxies in the same group randomly.
-
-For type `tcp`, `remote_port` in the same group should be the same.
-
-For type `http`, `custom_domains`, `subdomain`, `locations` should be the same.
-
-### Service Health Check
-
-Health check feature can help you achieve high availability with load balancing.
-
-Add `health_check_type = tcp` or `health_check_type = http` to enable health check.
-
-With health check type **tcp**, the service port will be pinged (TCPing):
-
-```ini
-# frpc.ini
-[test1]
-type = tcp
-local_port = 22
-remote_port = 6000
-# Enable TCP health check
-health_check_type = tcp
-# TCPing timeout seconds
-health_check_timeout_s = 3
-# If health check failed 3 times in a row, the proxy will be removed from frps
-health_check_max_failed = 3
-# A health check every 10 seconds
-health_check_interval_s = 10
-```
-
-With health check type **http**, an HTTP request will be sent to the service and an HTTP 2xx OK response is expected:
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_ip = 127.0.0.1
-local_port = 80
-custom_domains = test.example.com
-# Enable HTTP health check
-health_check_type = http
-# frpc will send a GET request to '/status'
-# and expect an HTTP 2xx OK response
-health_check_url = /status
-health_check_timeout_s = 3
-health_check_max_failed = 3
-health_check_interval_s = 10
-```
-
-### Rewriting the HTTP Host Header
-
-By default frp does not modify the tunneled HTTP requests at all as it's a byte-for-byte copy.
-
-However, speaking of web servers and HTTP requests, your web server might rely on the `Host` HTTP header to determine the website to be accessed. frp can rewrite the `Host` header when forwarding the HTTP requests, with the `host_header_rewrite` field:
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-host_header_rewrite = dev.example.com
-```
-
-The HTTP request will have the `Host` header rewritten to `Host: dev.example.com` when it reaches the actual web server, although the request from the browser probably has `Host: test.example.com`.
-
-### Setting other HTTP Headers
-
-Similar to `Host`, You can override other HTTP request headers with proxy type `http`.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-host_header_rewrite = dev.example.com
-header_X-From-Where = frp
-```
-
-Note that parameter(s) prefixed with `header_` will be added to HTTP request headers.
-
-In this example, it will set header `X-From-Where: frp` in the HTTP request.
-
-### Get Real IP
-
-#### HTTP X-Forwarded-For
-
-This feature is for http proxy only.
-
-You can get user's real IP from HTTP request headers `X-Forwarded-For`.
-
-#### Proxy Protocol
-
-frp supports Proxy Protocol to send user's real IP to local services. It support all types except UDP.
-
-Here is an example for https service:
-
-```ini
-# frpc.ini
-[web]
-type = https
-local_port = 443
-custom_domains = test.example.com
-
-# now v1 and v2 are supported
-proxy_protocol_version = v2
-```
-
-You can enable Proxy Protocol support in nginx to expose user's real IP in HTTP header `X-Real-IP`, and then read `X-Real-IP` header in your web service for the real IP.
-
-### Require HTTP Basic Auth (Password) for Web Services
-
-Anyone who can guess your tunnel URL can access your local web server unless you protect it with a password.
-
-This enforces HTTP Basic Auth on all requests with the username and password specified in frpc's configure file.
-
-It can only be enabled when proxy type is http.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-http_user = abc
-http_pwd = abc
-```
-
-Visit `http://test.example.com` in the browser and now you are prompted to enter the username and password.
-
-### Custom Subdomain Names
-
-It is convenient to use `subdomain` configure for http and https types when many people share one frps server.
-
-```ini
-# frps.ini
-subdomain_host = frps.com
-```
-
-Resolve `*.frps.com` to the frps server's IP. This is usually called a Wildcard DNS record.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-subdomain = test
-```
-
-Now you can visit your web service on `test.frps.com`.
-
-Note that if `subdomain_host` is not empty, `custom_domains` should not be the subdomain of `subdomain_host`.
-
-### URL Routing
-
-frp supports forwarding HTTP requests to different backend web services by url routing.
-
-`locations` specifies the prefix of URL used for routing. frps first searches for the most specific prefix location given by literal strings regardless of the listed order.
-
-```ini
-# frpc.ini
-[web01]
-type = http
-local_port = 80
-custom_domains = web.example.com
-locations = /
-
-[web02]
-type = http
-local_port = 81
-custom_domains = web.example.com
-locations = /news,/about
-```
-
-HTTP requests with URL prefix `/news` or `/about` will be forwarded to **web02** and other requests to **web01**.
-
-### TCP Port Multiplexing
-
-frp supports receiving TCP sockets directed to different proxies on a single port on frps, similar to `vhost_http_port` and `vhost_https_port`.
-
-The only supported TCP port multiplexing method available at the moment is `httpconnect` - HTTP CONNECT tunnel.
-
-When setting `tcpmux_httpconnect_port` to anything other than 0 in frps under `[common]`, frps will listen on this port for HTTP CONNECT requests.
-
-The host of the HTTP CONNECT request will be used to match the proxy in frps. Proxy hosts can be configured in frpc by configuring `custom_domain` and / or `subdomain` under `type = tcpmux` proxies, when `multiplexer = httpconnect`.
-
-For example:
-
-```ini
-# frps.ini
-[common]
-bind_port = 7000
-tcpmux_httpconnect_port = 1337
-```
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-
-[proxy1]
-type = tcpmux
-multiplexer = httpconnect
-custom_domains = test1
-local_port = 80
-
-[proxy2]
-type = tcpmux
-multiplexer = httpconnect
-custom_domains = test2
-local_port = 8080
-```
-
-In the above configuration - frps can be contacted on port 1337 with a HTTP CONNECT header such as:
-
-```
-CONNECT test1 HTTP/1.1\r\n\r\n
-```
-and the connection will be routed to `proxy1`.
-
-### Connecting to frps via HTTP PROXY
-
-frpc can connect to frps using HTTP proxy if you set OS environment variable `HTTP_PROXY`, or if `http_proxy` is set in frpc.ini file.
-
-It only works when protocol is tcp.
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-http_proxy = http://user:pwd@192.168.1.128:8080
-```
-
-### Range ports mapping
-
-Proxy with names that start with `range:` will support mapping range ports.
-
-```ini
-# frpc.ini
-[range:test_tcp]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 6000-6006,6007
-remote_port = 6000-6006,6007
-```
-
-frpc will generate 8 proxies like `test_tcp_0`, `test_tcp_1`, ..., `test_tcp_7`.
-
-### Client Plugins
-
-frpc only forwards requests to local TCP or UDP ports by default.
-
-Plugins are used for providing rich features. There are built-in plugins such as `unix_domain_socket`, `http_proxy`, `socks5`, `static_file`, `http2https`, `https2http`, `https2https` and you can see [example usage](#example-usage).
-
-Specify which plugin to use with the `plugin` parameter. Configuration parameters of plugin should be started with `plugin_`. `local_ip` and `local_port` are not used for plugin.
-
-Using plugin **http_proxy**:
-
-```ini
-# frpc.ini
-[http_proxy]
-type = tcp
-remote_port = 6000
-plugin = http_proxy
-plugin_http_user = abc
-plugin_http_passwd = abc
-```
-
-`plugin_http_user` and `plugin_http_passwd` are configuration parameters used in `http_proxy` plugin.
-
-### Server Manage Plugins
-
-Read the [document](/doc/server_plugin.md).
-
-Find more plugins in [gofrp/plugin](https://github.com/gofrp/plugin).
-
-## Development Plan
-
-* Log HTTP request information in frps.
-
-## Contributing
-
-Interested in getting involved? We would like to help you!
-
-* Take a look at our [issues list](https://github.com/fatedier/frp/issues) and consider sending a Pull Request to **dev branch**.
-* If you want to add a new feature, please create an issue first to describe the new feature, as well as the implementation approach. Once a proposal is accepted, create an implementation of the new features and submit it as a pull request.
-* Sorry for my poor English. Improvements for this document are welcome, even some typo fixes.
-* If you have great ideas, send an email to fatedier@gmail.com.
-
-**Note: We prefer you to give your advise in [issues](https://github.com/fatedier/frp/issues), so others with a same question can search it quickly and we don't need to answer them repeatedly.**
-
-## Donation
-
-If frp helps you a lot, you can support us by:
-
-### GitHub Sponsors
-
-Support us by [Github Sponsors](https://github.com/sponsors/fatedier).
-
-You can have your company's logo placed on README file of this project.
-
-### PayPal
-
-Donate money by [PayPal](https://www.paypal.me/fatedier) to my account **fatedier@gmail.com**.
-
diff --git a/frps/versions/latest/config.json b/frps/versions/latest/config.json
deleted file mode 100644
index 93f90a0f..00000000
--- a/frps/versions/latest/config.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "配置文件路径",
- "labelEn": "Configuration file path",
- "required": true,
- "default": "./data/frps.ini",
- "envKey": "CONFIG_FILE_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "记得编辑frps.ini获得更多功能",
- "labelEn": "Remember to edit frps.ini for more features",
- "required": false,
- "default": "这是一个提示/This is a tip",
- "edit": false
- }
- ]
-}
diff --git a/jellyfin/versions/10.8.9/.env.sample b/jellyfin/10.8.9/.env.sample
similarity index 100%
rename from jellyfin/versions/10.8.9/.env.sample
rename to jellyfin/10.8.9/.env.sample
diff --git a/jellyfin/10.8.9/data.yml b/jellyfin/10.8.9/data.yml
new file mode 100644
index 00000000..1c50ece1
--- /dev/null
+++ b/jellyfin/10.8.9/data.yml
@@ -0,0 +1,24 @@
+additionalProperties:
+ formFields:
+ - default: 8096
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/media
+ edit: true
+ envKey: MEDIA_FOLDER_PATH
+ labelEn: Media folder path
+ labelZh: 媒体文件夹路径
+ required: true
+ type: text
+ - default: ./data/cache
+ edit: true
+ envKey: CACHE_FOLDER_PATH
+ labelEn: Cache folder path
+ labelZh: 缓存文件夹路径
+ required: true
+ type: text
diff --git a/jellyfin/versions/10.8.9/data/cache/.gitkeep b/jellyfin/10.8.9/data/cache/.gitkeep
similarity index 100%
rename from jellyfin/versions/10.8.9/data/cache/.gitkeep
rename to jellyfin/10.8.9/data/cache/.gitkeep
diff --git a/jellyfin/versions/10.8.9/data/config/.gitkeep b/jellyfin/10.8.9/data/config/.gitkeep
similarity index 100%
rename from jellyfin/versions/10.8.9/data/config/.gitkeep
rename to jellyfin/10.8.9/data/config/.gitkeep
diff --git a/jellyfin/versions/10.8.9/data/media/.gitkeep b/jellyfin/10.8.9/data/media/.gitkeep
similarity index 100%
rename from jellyfin/versions/10.8.9/data/media/.gitkeep
rename to jellyfin/10.8.9/data/media/.gitkeep
diff --git a/jellyfin/versions/10.8.9/docker-compose.yml b/jellyfin/10.8.9/docker-compose.yml
similarity index 100%
rename from jellyfin/versions/10.8.9/docker-compose.yml
rename to jellyfin/10.8.9/docker-compose.yml
diff --git a/jellyfin/versions/10.8.9/README.md b/jellyfin/README.md
similarity index 100%
rename from jellyfin/versions/10.8.9/README.md
rename to jellyfin/README.md
diff --git a/jellyfin/data.yml b/jellyfin/data.yml
new file mode 100644
index 00000000..17590747
--- /dev/null
+++ b/jellyfin/data.yml
@@ -0,0 +1,20 @@
+name: Jellyfin
+tags:
+ - 工具
+title: Jellyfin是一套多媒体应用程序软件套装
+type: 工具
+description: Jellyfin是一套多媒体应用程序软件套装
+additionalProperties:
+ key: jellyfin
+ name: Jellyfin
+ tags:
+ - Tool
+ shortDescZh: Jellyfin是一套多媒体应用程序软件套装
+ shortDescEn: Jellyfin is a multimedia application software suite
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://jellyfin.org/
+ github: https://github.com/jellyfin/jellyfin
+ document: https://jellyfin.org/docs/
diff --git a/jellyfin/metadata/logo.png b/jellyfin/logo.png
similarity index 100%
rename from jellyfin/metadata/logo.png
rename to jellyfin/logo.png
diff --git a/jellyfin/metadata/app.json b/jellyfin/metadata/app.json
deleted file mode 100644
index f0ed241b..00000000
--- a/jellyfin/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "jellyfin",
- "name": "Jellyfin",
- "tags": ["Tool"],
- "versions": ["10.8.9","unstable"],
- "shortDescZh": "Jellyfin是一套多媒体应用程序软件套装",
- "shortDescEn": "Jellyfin is a multimedia application software suite",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://jellyfin.org/",
- "github": "https://github.com/jellyfin/jellyfin",
- "document": "https://jellyfin.org/docs/"
-}
diff --git a/jellyfin/versions/unstable/.env.sample b/jellyfin/unstable/.env.sample
similarity index 100%
rename from jellyfin/versions/unstable/.env.sample
rename to jellyfin/unstable/.env.sample
diff --git a/jellyfin/unstable/data.yml b/jellyfin/unstable/data.yml
new file mode 100644
index 00000000..1c50ece1
--- /dev/null
+++ b/jellyfin/unstable/data.yml
@@ -0,0 +1,24 @@
+additionalProperties:
+ formFields:
+ - default: 8096
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/media
+ edit: true
+ envKey: MEDIA_FOLDER_PATH
+ labelEn: Media folder path
+ labelZh: 媒体文件夹路径
+ required: true
+ type: text
+ - default: ./data/cache
+ edit: true
+ envKey: CACHE_FOLDER_PATH
+ labelEn: Cache folder path
+ labelZh: 缓存文件夹路径
+ required: true
+ type: text
diff --git a/jellyfin/versions/unstable/data/cache/.gitkeep b/jellyfin/unstable/data/cache/.gitkeep
similarity index 100%
rename from jellyfin/versions/unstable/data/cache/.gitkeep
rename to jellyfin/unstable/data/cache/.gitkeep
diff --git a/jellyfin/versions/unstable/data/config/.gitkeep b/jellyfin/unstable/data/config/.gitkeep
similarity index 100%
rename from jellyfin/versions/unstable/data/config/.gitkeep
rename to jellyfin/unstable/data/config/.gitkeep
diff --git a/jellyfin/versions/unstable/data/media/.gitkeep b/jellyfin/unstable/data/media/.gitkeep
similarity index 100%
rename from jellyfin/versions/unstable/data/media/.gitkeep
rename to jellyfin/unstable/data/media/.gitkeep
diff --git a/jellyfin/versions/unstable/docker-compose.yml b/jellyfin/unstable/docker-compose.yml
similarity index 100%
rename from jellyfin/versions/unstable/docker-compose.yml
rename to jellyfin/unstable/docker-compose.yml
diff --git a/jellyfin/versions/10.8.9/config.json b/jellyfin/versions/10.8.9/config.json
deleted file mode 100644
index 088448ce..00000000
--- a/jellyfin/versions/10.8.9/config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 8096,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "媒体文件夹路径",
- "labelEn": "Media folder path",
- "required": true,
- "default": "./data/media",
- "envKey": "MEDIA_FOLDER_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "缓存文件夹路径",
- "labelEn": "Cache folder path",
- "required": true,
- "default": "./data/cache",
- "envKey": "CACHE_FOLDER_PATH",
- "edit": true
- }
- ]
-}
diff --git a/jellyfin/versions/unstable/README.md b/jellyfin/versions/unstable/README.md
deleted file mode 100644
index 2362741b..00000000
--- a/jellyfin/versions/unstable/README.md
+++ /dev/null
@@ -1,176 +0,0 @@
-Jellyfin
-The Free Software Media System
-
----
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
----
-
-Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. We welcome anyone who is interested in joining us in our quest!
-
-For further details, please see [our documentation page](https://jellyfin.org/docs/). To receive the latest updates, get help with Jellyfin, and join the community, please visit [one of our communication channels](https://jellyfin.org/docs/general/getting-help). For more information about the project, please see our [about page](https://jellyfin.org/docs/general/about).
-
-Want to get started?
-Check out our downloads page or our installation guide, then see our quick start guide. You can also build from source.
-
-Something not working right?
-Open an Issue on GitHub.
-
-Want to contribute?
-Check out our contributing choose-your-own-adventure to see where you can help, then see our contributing guide and our community standards.
-
-New idea or improvement?
-Check out our feature request hub.
-
-Don't see Jellyfin in your language?
-Check out our Weblate instance to help translate Jellyfin and its subprojects.
-
-
-
-
-
----
-
-## Jellyfin Server
-
-This repository contains the code for Jellyfin's backend server. Note that this is only one of many projects under the Jellyfin GitHub [organization](https://github.com/jellyfin/) on GitHub. If you want to contribute, you can start by checking out our [documentation](https://jellyfin.org/docs/general/contributing/index.html) to see what to work on.
-
-## Server Development
-
-These instructions will help you get set up with a local development environment in order to contribute to this repository. Before you start, please be sure to completely read our [guidelines on development contributions](https://jellyfin.org/docs/general/contributing/development.html). Note that this project is supported on all major operating systems except FreeBSD, which is still incompatible.
-
-### Prerequisites
-
-Before the project can be built, you must first install the [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet) on your system.
-
-Instructions to run this project from the command line are included here, but you will also need to install an IDE if you want to debug the server while it is running. Any IDE that supports .NET 6 development will work, but two options are recent versions of [Visual Studio](https://visualstudio.microsoft.com/downloads/) (at least 2022) and [Visual Studio Code](https://code.visualstudio.com/Download).
-
-[ffmpeg](https://github.com/jellyfin/jellyfin-ffmpeg) will also need to be installed.
-
-### Cloning the Repository
-
-After dependencies are installed you will need to clone a local copy of this repository. If you just want to run the server from source you can clone this repository directly, but if you are intending to contribute code changes to the project, you should [set up your own fork](https://jellyfin.org/docs/general/contributing/development.html#set-up-your-copy-of-the-repo) of the repository. The following example shows how you can clone the repository directly over HTTPS.
-
-```bash
-git clone https://github.com/jellyfin/jellyfin.git
-```
-
-### Installing the Web Client
-
-The server is configured to host the static files required for the [web client](https://github.com/jellyfin/jellyfin-web) in addition to serving the backend by default. Before you can run the server, you will need to get a copy of the web client since they are not included in this repository directly.
-
-Note that it is also possible to [host the web client separately](#hosting-the-web-client-separately) from the web server with some additional configuration, in which case you can skip this step.
-
-There are three options to get the files for the web client.
-
-1. Download one of the finished builds from the [Azure DevOps pipeline](https://dev.azure.com/jellyfin-project/jellyfin/_build?definitionId=27). You can download the build for a specific release by looking at the [branches tab](https://dev.azure.com/jellyfin-project/jellyfin/_build?definitionId=27&_a=summary&repositoryFilter=6&view=branches) of the pipelines page.
-2. Build them from source following the instructions on the [jellyfin-web repository](https://github.com/jellyfin/jellyfin-web)
-3. Get the pre-built files from an existing installation of the server. For example, with a Windows server installation the client files are located at `C:\Program Files\Jellyfin\Server\jellyfin-web`
-
-### Running The Server
-
-The following instructions will help you get the project up and running via the command line, or your preferred IDE.
-
-#### Running With Visual Studio
-
-To run the project with Visual Studio you can open the Solution (`.sln`) file and then press `F5` to run the server.
-
-#### Running With Visual Studio Code
-
-To run the project with Visual Studio Code you will first need to open the repository directory with Visual Studio Code using the `Open Folder...` option.
-
-Second, you need to [install the recommended extensions for the workspace](https://code.visualstudio.com/docs/editor/extension-gallery#_recommended-extensions). Note that extension recommendations are classified as either "Workspace Recommendations" or "Other Recommendations", but only the "Workspace Recommendations" are required.
-
-After the required extensions are installed, you can run the server by pressing `F5`.
-
-#### Running From The Command Line
-
-To run the server from the command line you can use the `dotnet run` command. The example below shows how to do this if you have cloned the repository into a directory named `jellyfin` (the default directory name) and should work on all operating systems.
-
-```bash
-cd jellyfin # Move into the repository directory
-dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # Run the server startup project
-```
-
-A second option is to build the project and then run the resulting executable file directly. When running the executable directly you can easily add command line options. Add the `--help` flag to list details on all the supported command line options.
-
-1. Build the project
-
-```bash
-dotnet build # Build the project
-cd Jellyfin.Server/bin/Debug/net7.0 # Change into the build output directory
-```
-
-2. Execute the build output. On Linux, Mac, etc. use `./jellyfin` and on Windows use `jellyfin.exe`.
-
-### Running The Tests
-
-This repository also includes unit tests that are used to validate functionality as part of a CI pipeline on Azure. There are several ways to run these tests.
-
-1. Run tests from the command line using `dotnet test`
-2. Run tests in Visual Studio using the [Test Explorer](https://docs.microsoft.com/en-us/visualstudio/test/run-unit-tests-with-test-explorer)
-3. Run individual tests in Visual Studio Code using the associated [CodeLens annotation](https://github.com/OmniSharp/omnisharp-vscode/wiki/How-to-run-and-debug-unit-tests)
-
-### Advanced Configuration
-
-The following sections describe some more advanced scenarios for running the server from source that build upon the standard instructions above.
-
-#### Hosting The Web Client Separately
-
-It is not necessary to host the frontend web client as part of the backend server. Hosting these two components separately may be useful for frontend developers who would prefer to host the client in a separate webpack development server for a tighter development loop. See the [jellyfin-web](https://github.com/jellyfin/jellyfin-web#getting-started) repo for instructions on how to do this.
-
-To instruct the server not to host the web content, there is a `nowebclient` configuration flag that must be set. This can specified using the command line
-switch `--nowebclient` or the environment variable `JELLYFIN_NOWEBCONTENT=true`.
-
-Since this is a common scenario, there is also a separate launch profile defined for Visual Studio called `Jellyfin.Server (nowebcontent)` that can be selected from the 'Start Debugging' dropdown in the main toolbar.
-
-**NOTE:** The setup wizard can not be run if the web client is hosted separately.
-
----
-
-This project is supported by:
-
-
-
-
-
-
diff --git a/jellyfin/versions/unstable/config.json b/jellyfin/versions/unstable/config.json
deleted file mode 100644
index 088448ce..00000000
--- a/jellyfin/versions/unstable/config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 8096,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "媒体文件夹路径",
- "labelEn": "Media folder path",
- "required": true,
- "default": "./data/media",
- "envKey": "MEDIA_FOLDER_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "缓存文件夹路径",
- "labelEn": "Cache folder path",
- "required": true,
- "default": "./data/cache",
- "envKey": "CACHE_FOLDER_PATH",
- "edit": true
- }
- ]
-}
diff --git a/list.json b/list.json
deleted file mode 100644
index 82484893..00000000
--- a/list.json
+++ /dev/null
@@ -1,173 +0,0 @@
-{
- "items": [
- {
- "key": "aaPanel",
- "name": "aaPanel",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "宝塔面板国际版,开源的Linux面板",
- "shortDescEn": "BT Panel International Edition, the open source Linux panel",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://www.aapanel.com/new/index.html",
- "github": "https://github.com/aaPanel/aaPanel",
- "document": "https://github.com/aaPanel/aaPanel"
- },
- {
- "key": "mdserver-web",
- "name": "mdserver-web",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "一款简单Linux面板服务",
- "shortDescEn": "A simple Linux panel service",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://hub.docker.com/r/ddsderek/mw",
- "github": "https://github.com/midoks/mdserver-web",
- "document": "https://github.com/midoks/mdserver-web/wiki/"
- },
- {
- "key": "qBittorrent",
- "name": "qBittorrent",
- "tags": ["Tool"],
- "versions": ["4.3.5","4.5.2","latest"],
- "shortDescZh": "qBittorrent是一个跨平台的开源BitTorrent客户端",
- "shortDescEn": "qBittorrent is a cross-platform open source BitTorrent client",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://www.qbittorrent.org/",
- "github": "https://github.com/qbittorrent/qBittorrent",
- "document": "http://wiki.qbittorrent.org/"
- },
- {
- "key": "jellyfin",
- "name": "Jellyfin",
- "tags": ["Tool"],
- "versions": ["10.8.9","unstable"],
- "shortDescZh": "Jellyfin是一套多媒体应用程序软件套装",
- "shortDescEn": "Jellyfin is a multimedia application software suite",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://jellyfin.org/",
- "github": "https://github.com/jellyfin/jellyfin",
- "document": "https://jellyfin.org/docs/"
- },
- {
- "key": "ALS",
- "name": "ALS",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "Another Looking-glass Server,测速服务端",
- "shortDescEn": "Another Looking-glass Server,Speed measurement server",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://github.com/wikihost-opensource/als",
- "github": "https://github.com/wikihost-opensource/als",
- "document": "https://github.com/wikihost-opensource/als"
- },
- {
- "key": "alist",
- "name": "alist",
- "tags": ["Tool"],
- "versions": ["3.17.0","latest"],
- "shortDescZh": "一个支持多存储的文件列表程序",
- "shortDescEn": "A file list program that supports multiple storage",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://github.com/alist-org/alist",
- "github": "https://github.com/alist-org/alist",
- "document": "https://alist.nn.ci/zh/"
- },
- {
- "key": "watchtower",
- "name": "watchtower",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "自动更新Docker容器基础镜像的工具",
- "shortDescEn": "Tool to automatically update Docker container base images",
- "type": "tool",
- "limit": 1,
- "crossVersionUpdate": false,
- "website": "https://github.com/containrrr/watchtower",
- "github": "https://github.com/containrrr/watchtower",
- "document": "https://containrrr.dev/watchtower/"
- },
- {
- "key": "flarum",
- "name": "flarum",
- "tags": ["WebSite"],
- "versions": ["1.7.1","latest"],
- "shortDescZh": "新一代的论坛软件,使在线讨论变得有趣",
- "shortDescEn": "The next-generation forum software that makes online discussion fun",
- "type": "website",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://flarum.org/",
- "github": "https://github.com/flarum/flarum",
- "document": "https://docs.flarum.org/"
- },
- {
- "key": "chatgpt-web",
- "name": "chatgpt-web",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "使用express和vue3搭建的支持ChatGPT双模型演示网页",
- "shortDescEn": "ChatGPT-enabled dual-model demo page built with express and vue3",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://github.com/Chanzhaoyu/chatgpt-web",
- "github": "https://github.com/Chanzhaoyu/chatgpt-web",
- "document": "https://github.com/Chanzhaoyu/chatgpt-web"
- },
- {
- "key": "memcached",
- "name": "Memcached",
- "tags": ["Tool"],
- "versions": ["1.6.19","latest"],
- "shortDescZh": "Memcached是一套分布式的高速缓存系统",
- "shortDescEn": "Memcached is a distributed caching system",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://memcached.org/",
- "github": "https://github.com/memcached/memcached",
- "document": "https://github.com/memcached/memcached/wiki"
- },
- {
- "key": "baidunetdisk",
- "name": "百度网盘",
- "tags": ["Tool"],
- "versions": ["4.14.6","4.17.7","latest"],
- "shortDescZh": "百度网盘是百度推出的一项云存储服务",
- "shortDescEn": "BaiduNetdisk is a cloud storage service launched by Baidu",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://pan.baidu.com/",
- "github": "https://github.com/gshang2017/docker/tree/master/baidunetdisk",
- "document": "https://github.com/gshang2017/docker/tree/master/baidunetdisk"
- },
- {
- "key": "frps",
- "name": "frps-frp服务端",
- "tags": ["Tool"],
- "versions": ["0.48.0","latest"],
- "shortDescZh": "frp是一种反向代理工具,常用于内网穿透",
- "shortDescEn": "frp is a reverse proxy tool that is commonly used for intranet penetration",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://github.com/fatedier/frp",
- "github": "https://github.com/fatedier/frp",
- "document": "https://github.com/fatedier/frp/blob/dev/README_zh.md"
- }
- ]
-}
-
\ No newline at end of file
diff --git a/mdserver-web/versions/latest/README.md b/mdserver-web/README.md
similarity index 100%
rename from mdserver-web/versions/latest/README.md
rename to mdserver-web/README.md
diff --git a/mdserver-web/data.yml b/mdserver-web/data.yml
new file mode 100644
index 00000000..d547c704
--- /dev/null
+++ b/mdserver-web/data.yml
@@ -0,0 +1,20 @@
+name: mdserver-web
+tags:
+ - 工具
+title: 一款简单Linux面板服务
+type: 工具
+description: 一款简单Linux面板服务
+additionalProperties:
+ key: mdserver-web
+ name: mdserver-web
+ tags:
+ - Tool
+ shortDescZh: 一款简单Linux面板服务
+ shortDescEn: A simple Linux panel service
+ type: tool
+ crossVersionUpdate: false
+ limit: 0
+ recommend: 0
+ website: https://hub.docker.com/r/ddsderek/mw
+ github: https://github.com/midoks/mdserver-web
+ document: https://github.com/midoks/mdserver-web/wiki/
diff --git a/mdserver-web/latest/data.yml b/mdserver-web/latest/data.yml
new file mode 100644
index 00000000..3cf72d4c
--- /dev/null
+++ b/mdserver-web/latest/data.yml
@@ -0,0 +1,34 @@
+additionalProperties:
+ formFields:
+ - default: 7200
+ edit: true
+ envKey: Web_Panel_Port
+ labelEn: Web Panel Port
+ labelZh: 面板端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 10080
+ edit: true
+ envKey: HTTP_PORT
+ labelEn: HTTP Port
+ labelZh: HTTP端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 10443
+ edit: true
+ envKey: HTTPS_PORT
+ labelEn: HTTPS Port
+ labelZh: HTTPS端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 10888
+ edit: true
+ envKey: phpMyAdmin_PORT
+ labelEn: phpMyAdmin Port
+ labelZh: phpMyAdmin端口
+ required: true
+ rule: paramPort
+ type: number
diff --git a/mdserver-web/versions/latest/docker-compose.yml b/mdserver-web/latest/docker-compose.yml
similarity index 100%
rename from mdserver-web/versions/latest/docker-compose.yml
rename to mdserver-web/latest/docker-compose.yml
diff --git a/mdserver-web/metadata/logo.png b/mdserver-web/logo.png
similarity index 100%
rename from mdserver-web/metadata/logo.png
rename to mdserver-web/logo.png
diff --git a/mdserver-web/metadata/app.json b/mdserver-web/metadata/app.json
deleted file mode 100644
index cd58ed84..00000000
--- a/mdserver-web/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "mdserver-web",
- "name": "mdserver-web",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "一款简单Linux面板服务。",
- "shortDescEn": "A simple Linux panel service",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://hub.docker.com/r/ddsderek/mw",
- "github": "https://github.com/midoks/mdserver-web",
- "document": "https://github.com/midoks/mdserver-web/wiki/"
-}
diff --git a/mdserver-web/versions/latest/config.json b/mdserver-web/versions/latest/config.json
deleted file mode 100644
index 0a2cc5b5..00000000
--- a/mdserver-web/versions/latest/config.json
+++ /dev/null
@@ -1,45 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "面板端口",
- "labelEn": "Web Panel Port",
- "required": true,
- "default": 7200,
- "rule": "paramPort",
- "envKey": "Web_Panel_Port",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "HTTP端口",
- "labelEn": "HTTP Port",
- "required": true,
- "default": 10080,
- "rule": "paramPort",
- "envKey": "HTTP_PORT",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "HTTPS端口",
- "labelEn": "HTTPS Port",
- "required": true,
- "default": 10443,
- "rule": "paramPort",
- "envKey": "HTTPS_PORT",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "phpMyAdmin端口",
- "labelEn": "phpMyAdmin Port",
- "required": true,
- "default": 10888,
- "rule": "paramPort",
- "envKey": "phpMyAdmin_PORT",
- "edit": true
- }
- ]
-}
diff --git a/memcached/versions/1.6.19/.env.sample b/memcached/1.6.19/.env.sample
similarity index 100%
rename from memcached/versions/1.6.19/.env.sample
rename to memcached/1.6.19/.env.sample
diff --git a/memcached/1.6.19/data.yml b/memcached/1.6.19/data.yml
new file mode 100644
index 00000000..6dd6a0a8
--- /dev/null
+++ b/memcached/1.6.19/data.yml
@@ -0,0 +1,16 @@
+additionalProperties:
+ formFields:
+ - default: 127.0.0.1:11211
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP1
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ type: text
+ - default: '64'
+ edit: true
+ envKey: MEM_CACHED
+ labelEn: Maximum memory usage(MB)
+ labelZh: 内存最大占用量(MB)
+ required: true
+ type: number
diff --git a/memcached/versions/1.6.19/docker-compose.yml b/memcached/1.6.19/docker-compose.yml
similarity index 100%
rename from memcached/versions/1.6.19/docker-compose.yml
rename to memcached/1.6.19/docker-compose.yml
diff --git a/memcached/versions/1.6.19/README.md b/memcached/README.md
similarity index 100%
rename from memcached/versions/1.6.19/README.md
rename to memcached/README.md
diff --git a/memcached/data.yml b/memcached/data.yml
new file mode 100644
index 00000000..7f63170d
--- /dev/null
+++ b/memcached/data.yml
@@ -0,0 +1,20 @@
+name: Memcached
+tags:
+ - 工具
+title: Memcached是一套分布式的高速缓存系统
+type: 工具
+description: Memcached是一套分布式的高速缓存系统
+additionalProperties:
+ key: memcached
+ name: Memcached
+ tags:
+ - Tool
+ shortDescZh: Memcached是一套分布式的高速缓存系统
+ shortDescEn: Memcached is a distributed caching system
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://memcached.org/
+ github: https://github.com/memcached/memcached
+ document: https://github.com/memcached/memcached/wiki
diff --git a/memcached/versions/latest/.env.sample b/memcached/latest/.env.sample
similarity index 100%
rename from memcached/versions/latest/.env.sample
rename to memcached/latest/.env.sample
diff --git a/memcached/latest/data.yml b/memcached/latest/data.yml
new file mode 100644
index 00000000..6dd6a0a8
--- /dev/null
+++ b/memcached/latest/data.yml
@@ -0,0 +1,16 @@
+additionalProperties:
+ formFields:
+ - default: 127.0.0.1:11211
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP1
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ type: text
+ - default: '64'
+ edit: true
+ envKey: MEM_CACHED
+ labelEn: Maximum memory usage(MB)
+ labelZh: 内存最大占用量(MB)
+ required: true
+ type: number
diff --git a/memcached/versions/latest/docker-compose.yml b/memcached/latest/docker-compose.yml
similarity index 100%
rename from memcached/versions/latest/docker-compose.yml
rename to memcached/latest/docker-compose.yml
diff --git a/memcached/metadata/logo.png b/memcached/logo.png
similarity index 100%
rename from memcached/metadata/logo.png
rename to memcached/logo.png
diff --git a/memcached/metadata/app.json b/memcached/metadata/app.json
deleted file mode 100644
index 55a63ee7..00000000
--- a/memcached/metadata/app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "key": "memcached",
- "name": "Memcached",
- "tags": ["Tool"],
- "versions": ["1.6.19","latest"],
- "shortDescZh": "Memcached是一套分布式的高速缓存系统。",
- "shortDescEn": "Memcached is a distributed caching system.",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://memcached.org/",
- "github": "https://github.com/memcached/memcached",
- "document": "https://github.com/memcached/memcached/wiki"
-}
diff --git a/memcached/versions/1.6.19/config.json b/memcached/versions/1.6.19/config.json
deleted file mode 100644
index fa82ff7a..00000000
--- a/memcached/versions/1.6.19/config.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "端口",
- "labelEn": "Port",
- "required": true,
- "default": "127.0.0.1:11211",
- "envKey": "PANEL_APP_PORT_HTTP1",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "内存最大占用量(MB)",
- "labelEn": "Maximum memory usage(MB)",
- "required": true,
- "default": "64",
- "envKey": "MEM_CACHED",
- "edit": true
- }
- ]
-}
diff --git a/memcached/versions/latest/README.md b/memcached/versions/latest/README.md
deleted file mode 100644
index d674c697..00000000
--- a/memcached/versions/latest/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Memcached
-
-Memcached is a high performance multithreaded event-based key/value cache
-store intended to be used in a distributed system.
-
-See: https://memcached.org/about
-
-A fun story explaining usage: https://memcached.org/tutorial
-
-If you're having trouble, try the wiki: https://memcached.org/wiki
-
-If you're trying to troubleshoot odd behavior or timeouts, see:
-https://memcached.org/timeouts
-
-https://memcached.org/ is a good resource in general. Please use the mailing
-list to ask questions, github issues aren't seen by everyone!
-
-## Dependencies
-
-* libevent - https://www.monkey.org/~provos/libevent/ (libevent-dev)
-* libseccomp (optional, experimental, linux) - enables process restrictions for
- better security. Tested only on x86-64 architectures.
-* openssl (optional) - enables TLS support. need relatively up to date
- version. pkg-config is needed to find openssl dependencies (such as -lz).
-
-## Environment
-
-Be warned that the -k (mlockall) option to memcached might be
-dangerous when using a large cache. Just make sure the memcached machines
-don't swap. memcached does non-blocking network I/O, but not disk. (it
-should never go to disk, or you've lost the whole point of it)
-
-## Build status
-
-See https://build.memcached.org/ for multi-platform regression testing status.
-
-## Bug reports
-
-Feel free to use the issue tracker on github.
-
-**If you are reporting a security bug** please contact a maintainer privately.
-We follow responsible disclosure: we handle reports privately, prepare a
-patch, allow notifications to vendor lists. Then we push a fix release and your
-bug can be posted publicly with credit in our release notes and commit
-history.
-
-## Website
-
-* https://www.memcached.org
-
-## Contributing
-
-See https://github.com/memcached/memcached/wiki/DevelopmentRepos
-
diff --git a/memcached/versions/latest/config.json b/memcached/versions/latest/config.json
deleted file mode 100644
index fa82ff7a..00000000
--- a/memcached/versions/latest/config.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "端口",
- "labelEn": "Port",
- "required": true,
- "default": "127.0.0.1:11211",
- "envKey": "PANEL_APP_PORT_HTTP1",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "内存最大占用量(MB)",
- "labelEn": "Maximum memory usage(MB)",
- "required": true,
- "default": "64",
- "envKey": "MEM_CACHED",
- "edit": true
- }
- ]
-}
diff --git a/qBittorrent/versions/4.3.5/.env.sample b/qBittorrent/4.3.5/.env.sample
similarity index 100%
rename from qBittorrent/versions/4.3.5/.env.sample
rename to qBittorrent/4.3.5/.env.sample
diff --git a/qBittorrent/4.3.5/data.yml b/qBittorrent/4.3.5/data.yml
new file mode 100644
index 00000000..cecffc7d
--- /dev/null
+++ b/qBittorrent/4.3.5/data.yml
@@ -0,0 +1,32 @@
+additionalProperties:
+ formFields:
+ - default: 40155
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 40150
+ edit: true
+ envKey: PEER_PORT_VALUE
+ labelEn: Peer Port
+ labelZh: BT端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/.cache
+ edit: true
+ envKey: CACHE_PATH
+ labelEn: Cache folder path
+ labelZh: 缓存文件夹路径
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOAD_PATH
+ labelEn: Download folder path
+ labelZh: 下载文件夹路径
+ required: true
+ type: text
diff --git a/qBittorrent/versions/4.3.5/data/.cache/.gitkeep b/qBittorrent/4.3.5/data/.cache/.gitkeep
similarity index 100%
rename from qBittorrent/versions/4.3.5/data/.cache/.gitkeep
rename to qBittorrent/4.3.5/data/.cache/.gitkeep
diff --git a/qBittorrent/versions/4.3.5/data/.config/qBittorrent/qBittorrent.conf b/qBittorrent/4.3.5/data/.config/qBittorrent/qBittorrent.conf
similarity index 100%
rename from qBittorrent/versions/4.3.5/data/.config/qBittorrent/qBittorrent.conf
rename to qBittorrent/4.3.5/data/.config/qBittorrent/qBittorrent.conf
diff --git a/qBittorrent/versions/4.3.5/data/.local/.gitkeep b/qBittorrent/4.3.5/data/.local/.gitkeep
similarity index 100%
rename from qBittorrent/versions/4.3.5/data/.local/.gitkeep
rename to qBittorrent/4.3.5/data/.local/.gitkeep
diff --git a/qBittorrent/versions/4.3.5/data/downloads/.gitkeep b/qBittorrent/4.3.5/data/downloads/.gitkeep
similarity index 100%
rename from qBittorrent/versions/4.3.5/data/downloads/.gitkeep
rename to qBittorrent/4.3.5/data/downloads/.gitkeep
diff --git a/qBittorrent/versions/4.3.5/docker-compose.yml b/qBittorrent/4.3.5/docker-compose.yml
similarity index 100%
rename from qBittorrent/versions/4.3.5/docker-compose.yml
rename to qBittorrent/4.3.5/docker-compose.yml
diff --git a/qBittorrent/versions/4.5.2/.env.sample b/qBittorrent/4.5.2/.env.sample
similarity index 100%
rename from qBittorrent/versions/4.5.2/.env.sample
rename to qBittorrent/4.5.2/.env.sample
diff --git a/qBittorrent/4.5.2/data.yml b/qBittorrent/4.5.2/data.yml
new file mode 100644
index 00000000..cecffc7d
--- /dev/null
+++ b/qBittorrent/4.5.2/data.yml
@@ -0,0 +1,32 @@
+additionalProperties:
+ formFields:
+ - default: 40155
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 40150
+ edit: true
+ envKey: PEER_PORT_VALUE
+ labelEn: Peer Port
+ labelZh: BT端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/.cache
+ edit: true
+ envKey: CACHE_PATH
+ labelEn: Cache folder path
+ labelZh: 缓存文件夹路径
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOAD_PATH
+ labelEn: Download folder path
+ labelZh: 下载文件夹路径
+ required: true
+ type: text
diff --git a/qBittorrent/versions/4.5.2/data/.cache/.gitkeep b/qBittorrent/4.5.2/data/.cache/.gitkeep
similarity index 100%
rename from qBittorrent/versions/4.5.2/data/.cache/.gitkeep
rename to qBittorrent/4.5.2/data/.cache/.gitkeep
diff --git a/qBittorrent/versions/4.5.2/data/.config/qBittorrent/qBittorrent.conf b/qBittorrent/4.5.2/data/.config/qBittorrent/qBittorrent.conf
similarity index 100%
rename from qBittorrent/versions/4.5.2/data/.config/qBittorrent/qBittorrent.conf
rename to qBittorrent/4.5.2/data/.config/qBittorrent/qBittorrent.conf
diff --git a/qBittorrent/versions/4.5.2/data/.local/.gitkeep b/qBittorrent/4.5.2/data/.local/.gitkeep
similarity index 100%
rename from qBittorrent/versions/4.5.2/data/.local/.gitkeep
rename to qBittorrent/4.5.2/data/.local/.gitkeep
diff --git a/qBittorrent/versions/4.5.2/data/downloads/.gitkeep b/qBittorrent/4.5.2/data/downloads/.gitkeep
similarity index 100%
rename from qBittorrent/versions/4.5.2/data/downloads/.gitkeep
rename to qBittorrent/4.5.2/data/downloads/.gitkeep
diff --git a/qBittorrent/versions/4.5.2/docker-compose.yml b/qBittorrent/4.5.2/docker-compose.yml
similarity index 100%
rename from qBittorrent/versions/4.5.2/docker-compose.yml
rename to qBittorrent/4.5.2/docker-compose.yml
diff --git a/qBittorrent/versions/4.3.5/README.md b/qBittorrent/README.md
similarity index 100%
rename from qBittorrent/versions/4.3.5/README.md
rename to qBittorrent/README.md
diff --git a/qBittorrent/data.yml b/qBittorrent/data.yml
new file mode 100644
index 00000000..1c391fb9
--- /dev/null
+++ b/qBittorrent/data.yml
@@ -0,0 +1,20 @@
+name: qBittorrent
+tags:
+ - 工具
+title: qBittorrent是一个跨平台的开源BitTorrent客户端
+type: 工具
+description: qBittorrent是一个跨平台的开源BitTorrent客户端
+additionalProperties:
+ key: qBittorrent
+ name: qBittorrent
+ tags:
+ - Tool
+ shortDescZh: qBittorrent是一个跨平台的开源BitTorrent客户端
+ shortDescEn: qBittorrent is a cross-platform open source BitTorrent client
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://www.qbittorrent.org/
+ github: https://github.com/qbittorrent/qBittorrent
+ document: http://wiki.qbittorrent.org/
diff --git a/qBittorrent/versions/latest/.env.sample b/qBittorrent/latest/.env.sample
similarity index 100%
rename from qBittorrent/versions/latest/.env.sample
rename to qBittorrent/latest/.env.sample
diff --git a/qBittorrent/latest/data.yml b/qBittorrent/latest/data.yml
new file mode 100644
index 00000000..cecffc7d
--- /dev/null
+++ b/qBittorrent/latest/data.yml
@@ -0,0 +1,32 @@
+additionalProperties:
+ formFields:
+ - default: 40155
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: WebUI Port
+ labelZh: 网页端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 40150
+ edit: true
+ envKey: PEER_PORT_VALUE
+ labelEn: Peer Port
+ labelZh: BT端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ./data/.cache
+ edit: true
+ envKey: CACHE_PATH
+ labelEn: Cache folder path
+ labelZh: 缓存文件夹路径
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOAD_PATH
+ labelEn: Download folder path
+ labelZh: 下载文件夹路径
+ required: true
+ type: text
diff --git a/qBittorrent/versions/latest/data/.cache/.gitkeep b/qBittorrent/latest/data/.cache/.gitkeep
similarity index 100%
rename from qBittorrent/versions/latest/data/.cache/.gitkeep
rename to qBittorrent/latest/data/.cache/.gitkeep
diff --git a/qBittorrent/versions/latest/data/.config/qBittorrent/qBittorrent.conf b/qBittorrent/latest/data/.config/qBittorrent/qBittorrent.conf
similarity index 100%
rename from qBittorrent/versions/latest/data/.config/qBittorrent/qBittorrent.conf
rename to qBittorrent/latest/data/.config/qBittorrent/qBittorrent.conf
diff --git a/qBittorrent/versions/latest/data/.local/.gitkeep b/qBittorrent/latest/data/.local/.gitkeep
similarity index 100%
rename from qBittorrent/versions/latest/data/.local/.gitkeep
rename to qBittorrent/latest/data/.local/.gitkeep
diff --git a/qBittorrent/versions/latest/data/downloads/.gitkeep b/qBittorrent/latest/data/downloads/.gitkeep
similarity index 100%
rename from qBittorrent/versions/latest/data/downloads/.gitkeep
rename to qBittorrent/latest/data/downloads/.gitkeep
diff --git a/qBittorrent/versions/latest/docker-compose.yml b/qBittorrent/latest/docker-compose.yml
similarity index 100%
rename from qBittorrent/versions/latest/docker-compose.yml
rename to qBittorrent/latest/docker-compose.yml
diff --git a/qBittorrent/metadata/logo.png b/qBittorrent/logo.png
similarity index 100%
rename from qBittorrent/metadata/logo.png
rename to qBittorrent/logo.png
diff --git a/qBittorrent/metadata/app.json b/qBittorrent/metadata/app.json
deleted file mode 100644
index deb9b410..00000000
--- a/qBittorrent/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "qBittorrent",
- "name": "qBittorrent",
- "tags": ["Tool"],
- "versions": ["4.3.5","4.5.2","latest"],
- "shortDescZh": "qBittorrent是一个跨平台的开源BitTorrent客户端",
- "shortDescEn": "qBittorrent is a cross-platform open source BitTorrent client",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": true,
- "website": "https://www.qbittorrent.org/",
- "github": "https://github.com/qbittorrent/qBittorrent",
- "document": "http://wiki.qbittorrent.org/"
-}
diff --git a/qBittorrent/versions/4.3.5/config.json b/qBittorrent/versions/4.3.5/config.json
deleted file mode 100644
index a4e243f8..00000000
--- a/qBittorrent/versions/4.3.5/config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 40155,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "BT端口",
- "labelEn": "Peer Port",
- "required": true,
- "default": 40150,
- "rule": "paramPort",
- "envKey": "PEER_PORT_VALUE",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "缓存文件夹路径",
- "labelEn": "Cache folder path",
- "required": true,
- "default": "./data/.cache",
- "envKey": "CACHE_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "下载文件夹路径",
- "labelEn": "Download folder path",
- "required": true,
- "default": "./data/downloads",
- "envKey": "DOWNLOAD_PATH",
- "edit": true
- }
- ]
-}
diff --git a/qBittorrent/versions/4.5.2/README.md b/qBittorrent/versions/4.5.2/README.md
deleted file mode 100644
index a618f714..00000000
--- a/qBittorrent/versions/4.5.2/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-
-# 本应用介绍
-
-基于镜像
-> - https://hub.docker.com/r/jarylc/qbittorrent
-
-- 数据目录:"./data"
-- 默认账号:admin
-- 密码:adminadmin
-- 开启中文,默认为PT下载做的设置,但未优化参数。
-
-> 原项目相关
->> - https://www.qbittorrent.org/
->> - https://github.com/qbittorrent/qBittorrent
-
-# 原项目介绍
-
-- qBittorrent是一个跨平台的开源、自由的BitTorrent客户端,其图形用户界面是通过Qt所写,后端使用libtorrent。
-- 由贝尔福- 蒙贝利亚尔理工大学的克里斯托夫·迪梅,在2006年3月开始开发。
-
-qBittorrent - A BitTorrent client in Qt
-------------------------------------------
-
-[](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
-[](https://github.com/qbittorrent/qBittorrent/actions)
-[](https://scan.coverity.com/projects/5494)
-********************************
-### Description:
-qBittorrent is a bittorrent client programmed in C++ / Qt that uses
-libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
-
-It aims to be a good alternative to all other bittorrent clients
-out there. qBittorrent is fast, stable and provides unicode
-support as well as many features.
-
-The free [IP to Country Lite database](https://db-ip.com/db/download/ip-to-country-lite) by [DB-IP](https://db-ip.com/) is used for resolving the countries of peers. The database is licensed under the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).
-
-### Installation:
-For installation, follow the instructions from INSTALL file, but simple:
-
-```
-./configure
-make && make install
-qbittorrent
-```
-
-will install and execute qBittorrent hopefully without any problem.
-
-### Public key:
-Starting from v3.3.4 all source tarballs and binaries are signed.
-The key currently used is 4096R/[5B7CC9A2](https://pgp.mit.edu/pks/lookup?op=get&search=0x6E4A2D025B7CC9A2) with fingerprint `D8F3DA77AAC6741053599C136E4A2D025B7CC9A2`.
-You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/5B7CC9A2.asc).
-**PREVIOUSLY** the following key was used to sign the v3.3.4 source tarballs and v3.3.4 Windows installer **only**: 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.
-
-### Misc:
-For more information please visit:
-https://www.qbittorrent.org
-
-or our wiki here:
-http://wiki.qbittorrent.org
-
-Use the forum for troubleshooting before reporting bugs:
-http://forum.qbittorrent.org
-
-Please report any bug (or feature request) to:
-http://bugs.qbittorrent.org
-
-Official IRC channel:
-[#qbittorrent on irc.libera.chat](ircs://irc.libera.chat:6697/qbittorrent)
-
-------------------------------------------
-sledgehammer999 \
-
diff --git a/qBittorrent/versions/4.5.2/config.json b/qBittorrent/versions/4.5.2/config.json
deleted file mode 100644
index a4e243f8..00000000
--- a/qBittorrent/versions/4.5.2/config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 40155,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "BT端口",
- "labelEn": "Peer Port",
- "required": true,
- "default": 40150,
- "rule": "paramPort",
- "envKey": "PEER_PORT_VALUE",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "缓存文件夹路径",
- "labelEn": "Cache folder path",
- "required": true,
- "default": "./data/.cache",
- "envKey": "CACHE_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "下载文件夹路径",
- "labelEn": "Download folder path",
- "required": true,
- "default": "./data/downloads",
- "envKey": "DOWNLOAD_PATH",
- "edit": true
- }
- ]
-}
diff --git a/qBittorrent/versions/latest/README.md b/qBittorrent/versions/latest/README.md
deleted file mode 100644
index a618f714..00000000
--- a/qBittorrent/versions/latest/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-
-# 本应用介绍
-
-基于镜像
-> - https://hub.docker.com/r/jarylc/qbittorrent
-
-- 数据目录:"./data"
-- 默认账号:admin
-- 密码:adminadmin
-- 开启中文,默认为PT下载做的设置,但未优化参数。
-
-> 原项目相关
->> - https://www.qbittorrent.org/
->> - https://github.com/qbittorrent/qBittorrent
-
-# 原项目介绍
-
-- qBittorrent是一个跨平台的开源、自由的BitTorrent客户端,其图形用户界面是通过Qt所写,后端使用libtorrent。
-- 由贝尔福- 蒙贝利亚尔理工大学的克里斯托夫·迪梅,在2006年3月开始开发。
-
-qBittorrent - A BitTorrent client in Qt
-------------------------------------------
-
-[](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
-[](https://github.com/qbittorrent/qBittorrent/actions)
-[](https://scan.coverity.com/projects/5494)
-********************************
-### Description:
-qBittorrent is a bittorrent client programmed in C++ / Qt that uses
-libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
-
-It aims to be a good alternative to all other bittorrent clients
-out there. qBittorrent is fast, stable and provides unicode
-support as well as many features.
-
-The free [IP to Country Lite database](https://db-ip.com/db/download/ip-to-country-lite) by [DB-IP](https://db-ip.com/) is used for resolving the countries of peers. The database is licensed under the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).
-
-### Installation:
-For installation, follow the instructions from INSTALL file, but simple:
-
-```
-./configure
-make && make install
-qbittorrent
-```
-
-will install and execute qBittorrent hopefully without any problem.
-
-### Public key:
-Starting from v3.3.4 all source tarballs and binaries are signed.
-The key currently used is 4096R/[5B7CC9A2](https://pgp.mit.edu/pks/lookup?op=get&search=0x6E4A2D025B7CC9A2) with fingerprint `D8F3DA77AAC6741053599C136E4A2D025B7CC9A2`.
-You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/5B7CC9A2.asc).
-**PREVIOUSLY** the following key was used to sign the v3.3.4 source tarballs and v3.3.4 Windows installer **only**: 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.
-
-### Misc:
-For more information please visit:
-https://www.qbittorrent.org
-
-or our wiki here:
-http://wiki.qbittorrent.org
-
-Use the forum for troubleshooting before reporting bugs:
-http://forum.qbittorrent.org
-
-Please report any bug (or feature request) to:
-http://bugs.qbittorrent.org
-
-Official IRC channel:
-[#qbittorrent on irc.libera.chat](ircs://irc.libera.chat:6697/qbittorrent)
-
-------------------------------------------
-sledgehammer999 \
-
diff --git a/qBittorrent/versions/latest/config.json b/qBittorrent/versions/latest/config.json
deleted file mode 100644
index a4e243f8..00000000
--- a/qBittorrent/versions/latest/config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "网页端口",
- "labelEn": "WebUI Port",
- "required": true,
- "default": 40155,
- "rule": "paramPort",
- "envKey": "PANEL_APP_PORT_HTTP",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "BT端口",
- "labelEn": "Peer Port",
- "required": true,
- "default": 40150,
- "rule": "paramPort",
- "envKey": "PEER_PORT_VALUE",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "缓存文件夹路径",
- "labelEn": "Cache folder path",
- "required": true,
- "default": "./data/.cache",
- "envKey": "CACHE_PATH",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "下载文件夹路径",
- "labelEn": "Download folder path",
- "required": true,
- "default": "./data/downloads",
- "envKey": "DOWNLOAD_PATH",
- "edit": true
- }
- ]
-}
diff --git a/rustdesk/versions/latest/README.md b/rustdesk/README.md
similarity index 100%
rename from rustdesk/versions/latest/README.md
rename to rustdesk/README.md
diff --git a/rustdesk/data.yml.bak b/rustdesk/data.yml.bak
new file mode 100644
index 00000000..a02001aa
--- /dev/null
+++ b/rustdesk/data.yml.bak
@@ -0,0 +1,20 @@
+name: RustDesk
+tags:
+ - 工具
+title: RustDesk是一款开源的远程桌面软件
+type: 工具
+description: RustDesk是一款开源的远程桌面软件
+additionalProperties:
+ key: RustDesk
+ name: RustDesk
+ tags:
+ - Tool
+ shortDescZh: RustDesk是一款开源的远程桌面软件
+ shortDescEn: RustDesk is an open source remote desktop software
+ type: tool
+ crossVersionUpdate: false
+ limit: 0
+ recommend: 0
+ website: https://rustdesk.com/zh/
+ github: https://github.com/rustdesk/rustdesk
+ document: https://rustdesk.com/docs/zh-cn/
diff --git a/rustdesk/versions/latest/.env.sample b/rustdesk/latest/.env.sample
similarity index 100%
rename from rustdesk/versions/latest/.env.sample
rename to rustdesk/latest/.env.sample
diff --git a/rustdesk/latest/data.yml b/rustdesk/latest/data.yml
new file mode 100644
index 00000000..2c96f2e4
--- /dev/null
+++ b/rustdesk/latest/data.yml
@@ -0,0 +1,26 @@
+additionalProperties:
+ formFields:
+ - default: 21116
+ edit: true
+ envKey: HBBS_PORT
+ labelEn: hbbs port (used with IP/domain)
+ labelZh: hbbs端口(配合IP/域名使用)
+ required: true
+ rule: paramPort
+ type: number
+ - default: 21117
+ edit: true
+ envKey: HBBR_PORT
+ labelEn: hbbr port (client relay server port)
+ labelZh: hbbr端口(客户端中继服务器端口)
+ required: true
+ rule: paramPort
+ type: number
+ - default: 172.17.0.1
+ edit: true
+ envKey: HOST_ADDRESS
+ labelEn: IP address or domain name (must change item)
+ labelZh: IP地址或域名(必改项)
+ required: true
+ rule: paramCommon
+ type: text
diff --git a/rustdesk/versions/latest/docker-compose.yml b/rustdesk/latest/docker-compose.yml
similarity index 100%
rename from rustdesk/versions/latest/docker-compose.yml
rename to rustdesk/latest/docker-compose.yml
diff --git a/rustdesk/metadata/logo.png b/rustdesk/logo.png
similarity index 100%
rename from rustdesk/metadata/logo.png
rename to rustdesk/logo.png
diff --git a/rustdesk/metadata/app.json b/rustdesk/metadata/app.json
deleted file mode 100644
index 0af390ec..00000000
--- a/rustdesk/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "RustDesk",
- "name": "RustDesk",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "RustDesk是一款开源的远程桌面软件",
- "shortDescEn": "RustDesk is an open source remote desktop software",
- "type": "tool",
- "limit": 0,
- "crossVersionUpdate": false,
- "website": "https://rustdesk.com/zh/",
- "github": "https://github.com/rustdesk/rustdesk",
- "document": "https://rustdesk.com/docs/zh-cn/"
-}
diff --git a/rustdesk/versions/latest/config.json b/rustdesk/versions/latest/config.json
deleted file mode 100644
index e82a08d2..00000000
--- a/rustdesk/versions/latest/config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-
-{
- "formFields": [
- {
- "type": "number",
- "labelZh": "hbbs端口(配合IP/域名使用)",
- "labelEn": "hbbs port (used with IP/domain)",
- "required": true,
- "default": 21116,
- "rule": "paramPort",
- "envKey": "HBBS_PORT",
- "edit": true
- },
- {
- "type": "number",
- "labelZh": "hbbr端口(客户端中继服务器端口)",
- "labelEn": "hbbr port (client relay server port)",
- "required": true,
- "default": 21117,
- "rule": "paramPort",
- "envKey": "HBBR_PORT",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "IP地址或域名(必改项)",
- "labelEn": "IP address or domain name (must change item)",
- "required": true,
- "default": "172.17.0.1",
- "rule": "paramCommon",
- "envKey": "HOST_ADDRESS",
- "edit": true
- }
- ]
-}
-
-
diff --git a/watchtower/versions/1.5.3/.env.sample b/watchtower/1.5.3/.env.sample
similarity index 100%
rename from watchtower/versions/1.5.3/.env.sample
rename to watchtower/1.5.3/.env.sample
diff --git a/watchtower/1.5.3/data.yml b/watchtower/1.5.3/data.yml
new file mode 100644
index 00000000..30adce49
--- /dev/null
+++ b/watchtower/1.5.3/data.yml
@@ -0,0 +1,16 @@
+additionalProperties:
+ formFields:
+ - default: WATCHTOWER_NO_STARTUP_MESSAGE
+ edit: true
+ envKey: ENV1
+ labelEn: Environmental parameters (split by ;)
+ labelZh: 环境参数(以;分割)
+ required: true
+ type: text
+ - default: --interval 3600 --cleanup
+ edit: true
+ envKey: COMMAND1
+ labelEn: Command parameters (separated by spaces)
+ labelZh: 命令参数(以空格分割)
+ required: true
+ type: text
diff --git a/watchtower/versions/1.5.3/docker-compose.yml b/watchtower/1.5.3/docker-compose.yml
similarity index 100%
rename from watchtower/versions/1.5.3/docker-compose.yml
rename to watchtower/1.5.3/docker-compose.yml
diff --git a/watchtower/versions/1.5.3/README.md b/watchtower/README.md
similarity index 100%
rename from watchtower/versions/1.5.3/README.md
rename to watchtower/README.md
diff --git a/watchtower/data.yml b/watchtower/data.yml
new file mode 100644
index 00000000..1aae148a
--- /dev/null
+++ b/watchtower/data.yml
@@ -0,0 +1,20 @@
+name: watchtower
+tags:
+ - 工具
+title: 自动更新Docker容器基础镜像的工具
+type: 工具
+description: 自动更新Docker容器基础镜像的工具
+additionalProperties:
+ key: watchtower
+ name: watchtower
+ tags:
+ - Tool
+ shortDescZh: 自动更新Docker容器基础镜像的工具
+ shortDescEn: Tool to automatically update Docker container base images
+ type: tool
+ crossVersionUpdate: false
+ limit: 1
+ recommend: 0
+ website: https://github.com/containrrr/watchtower
+ github: https://github.com/containrrr/watchtower
+ document: https://containrrr.dev/watchtower/
diff --git a/watchtower/versions/latest/.env.sample b/watchtower/latest/.env.sample
similarity index 100%
rename from watchtower/versions/latest/.env.sample
rename to watchtower/latest/.env.sample
diff --git a/watchtower/latest/data.yml b/watchtower/latest/data.yml
new file mode 100644
index 00000000..30adce49
--- /dev/null
+++ b/watchtower/latest/data.yml
@@ -0,0 +1,16 @@
+additionalProperties:
+ formFields:
+ - default: WATCHTOWER_NO_STARTUP_MESSAGE
+ edit: true
+ envKey: ENV1
+ labelEn: Environmental parameters (split by ;)
+ labelZh: 环境参数(以;分割)
+ required: true
+ type: text
+ - default: --interval 3600 --cleanup
+ edit: true
+ envKey: COMMAND1
+ labelEn: Command parameters (separated by spaces)
+ labelZh: 命令参数(以空格分割)
+ required: true
+ type: text
diff --git a/watchtower/versions/latest/docker-compose.yml b/watchtower/latest/docker-compose.yml
similarity index 100%
rename from watchtower/versions/latest/docker-compose.yml
rename to watchtower/latest/docker-compose.yml
diff --git a/watchtower/metadata/logo.png b/watchtower/logo.png
similarity index 100%
rename from watchtower/metadata/logo.png
rename to watchtower/logo.png
diff --git a/watchtower/metadata/app.json b/watchtower/metadata/app.json
deleted file mode 100644
index 9005d053..00000000
--- a/watchtower/metadata/app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-
-{
- "key": "watchtower",
- "name": "watchtower",
- "tags": ["Tool"],
- "versions": ["latest"],
- "shortDescZh": "自动更新Docker容器基础镜像的工具。",
- "shortDescEn": "Tool to automatically update Docker container base images.",
- "type": "tool",
- "limit": 1,
- "crossVersionUpdate": false,
- "website": "https://github.com/containrrr/watchtower",
- "github": "https://github.com/containrrr/watchtower",
- "document": "https://containrrr.dev/watchtower/"
-}
diff --git a/watchtower/versions/1.5.3/config.json b/watchtower/versions/1.5.3/config.json
deleted file mode 100644
index 6cb1ea62..00000000
--- a/watchtower/versions/1.5.3/config.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "环境参数(以;分割)",
- "labelEn": "Environmental parameters (split by ;)",
- "required": true,
- "default": "WATCHTOWER_NO_STARTUP_MESSAGE",
- "envKey": "ENV1",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "命令参数(以空格分割)",
- "labelEn": "Command parameters (separated by spaces)",
- "required": true,
- "default": "--interval 3600 --cleanup",
- "envKey": "COMMAND1",
- "edit": true
- }
- ]
-}
diff --git a/watchtower/versions/latest/README.md b/watchtower/versions/latest/README.md
deleted file mode 100644
index 6f348614..00000000
--- a/watchtower/versions/latest/README.md
+++ /dev/null
@@ -1,175 +0,0 @@
-
-

-
- # Watchtower
-
- A process for automating Docker container base image updates.
-
-
- [](https://circleci.com/gh/containrrr/watchtower)
- [](https://codecov.io/gh/containrrr/watchtower)
- [](https://godoc.org/github.com/containrrr/watchtower)
- [](https://goreportcard.com/report/github.com/containrrr/watchtower)
- [](https://github.com/containrrr/watchtower/releases)
- [](https://www.apache.org/licenses/LICENSE-2.0)
- [](https://www.codacy.com/gh/containrrr/watchtower/dashboard?utm_source=github.com&utm_medium=referral&utm_content=containrrr/watchtower&utm_campaign=Badge_Grade)
- [](#contributors)
- [](https://hub.docker.com/r/containrrr/watchtower)
-
-
-
-## Quick Start
-
-With watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry.
-
-Watchtower will pull down your new image, gracefully shut down your existing container and restart it with the same options that were used when it was deployed initially. Run the watchtower container with the following command:
-
-```
-$ docker run --detach \
- --name watchtower \
- --volume /var/run/docker.sock:/var/run/docker.sock \
- containrrr/watchtower
-```
-
-## Documentation
-The full documentation is available at https://containrrr.dev/watchtower.
-
-## Contributors
-
-Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
-
-
-
-
-
-
-
-
-
-
-
-This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
-
diff --git a/watchtower/versions/latest/config.json b/watchtower/versions/latest/config.json
deleted file mode 100644
index 9bed1691..00000000
--- a/watchtower/versions/latest/config.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "formFields": [
- {
- "type": "text",
- "labelZh": "环境参数(以;分割)",
- "labelEn": "Environmental parameters (split by ;)",
- "required": true,
- "default": "WATCHTOWER_NO_STARTUP_MESSAGE",
- "envKey": "ENV1",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "命令参数(以空格分割)",
- "labelEn": "Command parameters (separated by spaces)",
- "required": true,
- "default": "--interval 3600 --cleanup",
- "envKey": "COMMAND1",
- "edit": true
- },
- {
- "type": "text",
- "labelZh": "更多参数命令看官方文档获取",
- "labelEn": "See the official documentation for more parameter commands",
- "required": false,
- "default": "这是一个提示/This is a tip",
- "edit": true
- }
- ]
-}