diff --git a/appstore/metatube-server-memory/1.3.1/.env b/appstore/metatube-server-memory/1.3.1/.env
new file mode 100644
index 000000000..eeec6f970
--- /dev/null
+++ b/appstore/metatube-server-memory/1.3.1/.env
@@ -0,0 +1,15 @@
+# 网络模式 [必填]
+NETWORK_MODE=1panel-network
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8080
+
+# 访问令牌 [必填]
+TOKEN=
+
+# 请求超时时间 [必填]
+REQUEST_TIMEOUT=1m
+
+# 网络代理 (HTTP/Socket5)
+HTTP_PROXY=
+
diff --git a/appstore/metatube-server-memory/1.3.1/data.yml b/appstore/metatube-server-memory/1.3.1/data.yml
new file mode 100644
index 000000000..80552a017
--- /dev/null
+++ b/appstore/metatube-server-memory/1.3.1/data.yml
@@ -0,0 +1,47 @@
+additionalProperties:
+ formFields:
+ - default: "1panel-network"
+ edit: true
+ envKey: NETWORK_MODE
+ labelZh: 网络模式
+ labelEn: Network mode
+ required: true
+ type: select
+ values:
+ - label: 主机网络模式
+ value: "host"
+ - label: 桥接网络模式
+ value: "bridge"
+ - label: 无网络模式
+ value: "none"
+ - label: 1panel-network
+ value: "1panel-network"
+ - default: 8080
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelZh: WebUI 端口
+ labelEn: WebUI port
+ required: true
+ rule: paramPort
+ type: number
+ - default: ""
+ edit: true
+ envKey: TOKEN
+ labelZh: 访问令牌
+ labelEn: Access Token
+ required: true
+ type: password
+ - default: "1m"
+ edit: true
+ envKey: REQUEST_TIMEOUT
+ labelZh: 请求超时时间
+ labelEn: Request Timeout
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: HTTP_PROXY
+ labelZh: 网络代理 (HTTP/Socket5)
+ labelEn: Network Proxy (HTTP/Socket5)
+ required: false
+ type: text
diff --git a/appstore/metatube-server-memory/1.3.1/docker-compose.yml b/appstore/metatube-server-memory/1.3.1/docker-compose.yml
new file mode 100644
index 000000000..d77daeff5
--- /dev/null
+++ b/appstore/metatube-server-memory/1.3.1/docker-compose.yml
@@ -0,0 +1,20 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ metatube-server:
+ container_name: metatube-server-memory
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - DB_AUTO_MIGRATE=true
+ - PORT=${PANEL_APP_PORT_HTTP}
+ image: ghcr.io/metatube-community/metatube-server:1.3.1
+ labels:
+ createdBy: Apps
+ network_mode: ${NETWORK_MODE}
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}
+ restart: always
diff --git a/appstore/umami-mysql/2.18.1/envs/default.env b/appstore/metatube-server-memory/1.3.1/envs/default.env
similarity index 100%
rename from appstore/umami-mysql/2.18.1/envs/default.env
rename to appstore/metatube-server-memory/1.3.1/envs/default.env
diff --git a/appstore/umami-mysql/2.18.1/envs/global.env b/appstore/metatube-server-memory/1.3.1/envs/global.env
similarity index 100%
rename from appstore/umami-mysql/2.18.1/envs/global.env
rename to appstore/metatube-server-memory/1.3.1/envs/global.env
diff --git a/appstore/umami-mysql/2.18.1/scripts/init.sh b/appstore/metatube-server-memory/1.3.1/scripts/init.sh
similarity index 100%
rename from appstore/umami-mysql/2.18.1/scripts/init.sh
rename to appstore/metatube-server-memory/1.3.1/scripts/init.sh
diff --git a/appstore/umami-mysql/2.18.1/scripts/uninstall.sh b/appstore/metatube-server-memory/1.3.1/scripts/uninstall.sh
similarity index 100%
rename from appstore/umami-mysql/2.18.1/scripts/uninstall.sh
rename to appstore/metatube-server-memory/1.3.1/scripts/uninstall.sh
diff --git a/appstore/umami-mysql/2.18.1/scripts/upgrade.sh b/appstore/metatube-server-memory/1.3.1/scripts/upgrade.sh
similarity index 100%
rename from appstore/umami-mysql/2.18.1/scripts/upgrade.sh
rename to appstore/metatube-server-memory/1.3.1/scripts/upgrade.sh
diff --git a/appstore/metatube-server-memory/README.md b/appstore/metatube-server-memory/README.md
new file mode 100644
index 000000000..cb5c78eb4
--- /dev/null
+++ b/appstore/metatube-server-memory/README.md
@@ -0,0 +1,87 @@
+# MetaTube 服务端
+
+为 Jellyfin/Emby/Plex 开发的超级好用的元数据插件
+
+
+
+
+
+## 应用特性
+
++ 完整数据:包括标题、简介、演员、标签、评分等内容。
++ 完整搜索:支持通过众多的刮削源搜索影片和演员信息。
++ 预告功能:无需下载完整预告视频即可在线观看预告片。
++ 计划任务:自动整理影片标签以及在后台自动更新插件。
++ 人脸识别:内置的人脸识别以人脸为中心裁剪海报图像。
++ 自动翻译:支持将特定的元数据内容翻译成需要的语言。
+
+## 应用说明
+
+该应用为 MetaTube 服务端,用于为 Jellyfin/Emby/Plex 提供元数据插件。
+
+优先推荐部署在: 云服务器(美国/日本)
+
+如果您的网络环境不适合部署服务端,可以尝试配置网络代理。仅支持 HTTP 代理 / Socks5 代理。
+
+## 插件安装
+
+### Jellyfin
+
+1. 进入 Jellyfin 控制台 > 插件目录/存储库 > 设置,点击添加
+2. 输入存储库名称:MetaTube
+3. 输入存储库
+
+```url
+# URL for GitHub
+https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json
+```
+
+4. 在插件目录下找到 MetaTube,点击安装
+5. 重启 Jellyfin
+
+> 适用于中国大陆的存储库
+>
+> ```url
+> # URL for jsDelivr
+> https://cdn.jsdelivr.net/gh/metatube-community/jellyfin-plugin-metatube@dist/manifest.json
+> ```
+
+### Emby
+
+1. 从 Releases 下载 MetaTube 最新插件
+2. 解压出 MetaTube.dll 文件
+3. 将 dll 文件复制到 Emby 插件目录
+4. 重启 Emby 服务
+
+> PS:Emby 后续插件更新由计划任务在后台自动完成。
+
+### Plex
+
+1. 从 [GitHub](https://github.com/metatube-community/metatube-plex-plugins/archive/refs/heads/main.zip)
+ 或 [Releases](https://github.com/metatube-community/metatube-plex-plugins/releases) 下载最新的插件
+ zip 文件
+2. 将解压后的 MetaTube.bundle 文件夹移入 Plex 插件目录的根目录
+3. 其中文件夹 MetaTubeHelper.bundle 为辅助插件,可选择性安装
+4. 重启 Plex 服务
+
+### 常见 Emby 插件应用目录
+
+#### 群晖
+
+`/volume1/Emby/plugins`
+
+#### Windows
+
+`emby\programdata\plugins`
+
+#### Docker
+
+`<配置文件夹>/plugins`
+
+#### Linux(供参考)
+
+`/var/lib/emby-server/plugins/`
+
+---
+
+
diff --git a/appstore/metatube-server-memory/data.yml b/appstore/metatube-server-memory/data.yml
new file mode 100644
index 000000000..90e33526a
--- /dev/null
+++ b/appstore/metatube-server-memory/data.yml
@@ -0,0 +1,15 @@
+additionalProperties:
+ key: metatube-server-memory
+ name: MetaTube (内存模式)
+ tags:
+ - WebSite
+ - Tool
+ - Local
+ shortDescZh: 为 Jellyfin/Emby/Plex 开发的超级好用的成人元数据刮削插件
+ shortDescEn: A super easy-to-use adult metadata scraping plugin developed for Jellyfin/Emby/Plex
+ type: website
+ crossVersionUpdate: true
+ limit: 0
+ website: https://github.com/metatube-community/
+ github: https://github.com/metatube-community/
+ document: https://metatube-community.github.io/
diff --git a/appstore/metatube-server-memory/logo.png b/appstore/metatube-server-memory/logo.png
new file mode 100644
index 000000000..5671ce959
Binary files /dev/null and b/appstore/metatube-server-memory/logo.png differ
diff --git a/appstore/openpanel/25.6.5.41-alpine/.env b/appstore/openpanel/25.6.5.41-alpine/.env
new file mode 100644
index 000000000..e3d40eb70
--- /dev/null
+++ b/appstore/openpanel/25.6.5.41-alpine/.env
@@ -0,0 +1,51 @@
+# Postgres 服务 (前置检查)
+PANEL_POSTGRES_TYPE=postgresql
+
+# Redis 服务 (前置检查) [必填]
+PANEL_REDIS_TYPE=redis
+
+# 数据持久化路径 [必填]
+CLICKHOUSE_SERVER_ROOT_PATH=/home/clickhouse-server
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8123
+
+# Native/TCP 通讯端口 [必填]
+PANEL_APP_PORT_NATIVE_TCP=9000
+
+# 服务器通信端口 [必填]
+PANEL_APP_PORT_INTER_SERVER=9009
+
+# ClickHouse 访问地址 [必填]
+CLICKHOUSE_URL=http://127.0.0.1:8123/openpanel
+
+# Redis 地址 [必填]
+REDIS_URL=redis://127.0.0.1:6379
+
+# Redis 地址 [必填]
+DATABASE_URL=postgresql://postgres_user:postgres_pass@127.0.0.1:5432/postgres_db_name?schema=public
+
+# 开放注册 [必填]
+ALLOW_REGISTRATION=false
+
+# 开放邀请 [必填]
+ALLOW_INVITATION=false
+
+# 邮件发送 (Resend) API KEY
+RESEND_API_KEY=
+
+# 邮件发送者地址
+EMAIL_SENDER=
+
+# Github 客户端 ID (OAuth2)
+GITHUB_CLIENT_ID=
+
+# Github 客户端密钥 (OAuth2)
+GITHUB_CLIENT_SECRET=
+
+# Google 客户端 ID (OAuth2)
+GOOGLE_CLIENT_ID=
+
+# Google 客户端密钥 (OAuth2)
+GOOGLE_CLIENT_SECRET=
+
diff --git a/appstore/openpanel/25.6.5.41-alpine/config/clickhouse-config.xml b/appstore/openpanel/25.6.5.41-alpine/config/clickhouse-config.xml
new file mode 100644
index 000000000..659577864
--- /dev/null
+++ b/appstore/openpanel/25.6.5.41-alpine/config/clickhouse-config.xml
@@ -0,0 +1,29 @@
+
+
+ warning
+ true
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+ 0.0.0.0
+ 0.0.0.0
+ op-ch
+
+
+
+ 1
+ replica1
+ openpanel_cluster
+
+
diff --git a/appstore/openpanel/25.6.5.41-alpine/config/clickhouse-user-config.xml b/appstore/openpanel/25.6.5.41-alpine/config/clickhouse-user-config.xml
new file mode 100644
index 000000000..ae6a6b948
--- /dev/null
+++ b/appstore/openpanel/25.6.5.41-alpine/config/clickhouse-user-config.xml
@@ -0,0 +1,8 @@
+
+
+
+ 0
+ 0
+
+
+
\ No newline at end of file
diff --git a/appstore/openpanel/25.6.5.41-alpine/config/init-db.sh b/appstore/openpanel/25.6.5.41-alpine/config/init-db.sh
new file mode 100644
index 000000000..e86d8af32
--- /dev/null
+++ b/appstore/openpanel/25.6.5.41-alpine/config/init-db.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+set -e
+
+clickhouse client -n <<-EOSQL
+ CREATE DATABASE IF NOT EXISTS openpanel;
+EOSQL
\ No newline at end of file
diff --git a/appstore/openpanel/25.6.5.41-alpine/data.yml b/appstore/openpanel/25.6.5.41-alpine/data.yml
new file mode 100644
index 000000000..23c435d68
--- /dev/null
+++ b/appstore/openpanel/25.6.5.41-alpine/data.yml
@@ -0,0 +1,148 @@
+additionalProperties:
+ formFields:
+ - child:
+ default: ""
+ envKey: PANEL_POSTGRES_SERVICE
+ required: true
+ type: service
+ default: postgresql
+ envKey: PANEL_POSTGRES_TYPE
+ labelZh: Postgres 服务 (前置检查)
+ labelEn: Postgres Service (Pre-check)
+ required: false
+ type: apps
+ values:
+ - label: PostgreSQL
+ value: postgresql
+ - child:
+ default: ""
+ envKey: PANEL_REDIS_SERVICE
+ required: true
+ type: service
+ default: redis
+ envKey: PANEL_REDIS_TYPE
+ labelZh: Redis 服务 (前置检查)
+ labelEn: Redis Service (Pre-check)
+ required: true
+ type: apps
+ values:
+ - label: Redis
+ value: redis
+ - default: "/home/clickhouse-server"
+ edit: true
+ envKey: CLICKHOUSE_SERVER_ROOT_PATH
+ labelZh: 数据持久化路径
+ labelEn: Data persistence path
+ required: true
+ type: text
+ - default: 8123
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelZh: WebUI 端口
+ labelEn: WebUI port
+ required: true
+ rule: paramPort
+ type: number
+ - default: 9000
+ edit: true
+ envKey: PANEL_APP_PORT_NATIVE_TCP
+ labelZh: Native/TCP 通讯端口
+ labelEn: Native/TCP interface
+ required: true
+ rule: paramPort
+ type: number
+ - default: 9009
+ edit: true
+ envKey: PANEL_APP_PORT_INTER_SERVER
+ labelZh: 服务器通信端口
+ labelEn: Inter-server communication
+ required: true
+ rule: paramPort
+ type: number
+ - default: "http://127.0.0.1:8123/openpanel"
+ edit: true
+ envKey: CLICKHOUSE_URL
+ labelZh: ClickHouse 访问地址
+ labelEn: ClickHouse URL
+ required: true
+ type: text
+ - default: "redis://127.0.0.1:6379"
+ edit: true
+ envKey: REDIS_URL
+ labelZh: Redis 地址
+ labelEn: Redis Url
+ required: true
+ type: text
+ - default: "postgresql://postgres_user:postgres_pass@127.0.0.1:5432/postgres_db_name?schema=public"
+ edit: true
+ envKey: DATABASE_URL
+ labelZh: Redis 地址
+ labelEn: Redis Url
+ required: true
+ type: text
+ - default: "false"
+ edit: true
+ envKey: ALLOW_REGISTRATION
+ labelZh: 开放注册
+ labelEn: Open Registration
+ required: true
+ type: select
+ values:
+ - label: 允许注册
+ value: "true"
+ - label: 禁止注册
+ value: "false"
+ - default: "false"
+ edit: true
+ envKey: ALLOW_INVITATION
+ labelZh: 开放邀请
+ labelEn: Open Invitation
+ required: true
+ type: select
+ values:
+ - label: 允许邀请
+ value: "true"
+ - label: 禁止邀请
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: RESEND_API_KEY
+ labelZh: 邮件发送 (Resend) API KEY
+ labelEn: Email (Resend) Send API KEY
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: EMAIL_SENDER
+ labelZh: 邮件发送者地址
+ labelEn: Email Sender Address
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GITHUB_CLIENT_ID
+ labelZh: Github 客户端 ID (OAuth2)
+ labelEn: Github Client ID (OAuth2)
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GITHUB_CLIENT_SECRET
+ labelZh: Github 客户端密钥 (OAuth2)
+ labelEn: Github Client Secret (OAuth2)
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOOGLE_CLIENT_ID
+ labelZh: Google 客户端 ID (OAuth2)
+ labelEn: Google Client ID (OAuth2)
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOOGLE_CLIENT_SECRET
+ labelZh: Google 客户端密钥 (OAuth2)
+ labelEn: Google Client Secret (OAuth2)
+ required: false
+ type: text
diff --git a/appstore/openpanel/25.6.5.41-alpine/docker-compose.yml b/appstore/openpanel/25.6.5.41-alpine/docker-compose.yml
new file mode 100644
index 000000000..dd3009ac6
--- /dev/null
+++ b/appstore/openpanel/25.6.5.41-alpine/docker-compose.yml
@@ -0,0 +1,41 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ clickhouse-server:
+ container_name: openpanel
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - TZ=Asia/Shanghai
+ - DATABASE_URL_DIRECT=${DATABASE_URL}
+ - BATCH_SIZE=5000
+ - BATCH_INTERVAL=10000
+ - CONCURRENCY=10
+ - WORKER_PORT=9999
+ - API_PORT=3333
+ - NEXT_PUBLIC_API_URL="http://localhost:3333"
+ - NEXT_PUBLIC_DASHBOARD_URL="http://localhost:3000"
+ - GITHUB_REDIRECT_URI=https://openpanel.domain.com/api/oauth/github/callback
+ - GOOGLE_REDIRECT_URI=https://openpanel.domain.com/api/oauth/google/callback
+ image: clickhouse/clickhouse-server:25.6.5.41-alpine
+ labels:
+ createdBy: Apps
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8123
+ - ${PANEL_APP_PORT_NATIVE_TCP}:9000
+ - ${PANEL_APP_PORT_INTER_SERVER}:9009
+ restart: always
+ ulimits:
+ nofile:
+ hard: 262144
+ soft: 262144
+ volumes:
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/data:/var/lib/clickhouse
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/logs:/var/log/clickhouse-server
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/config/op-config.xml:/etc/clickhouse-server/config.d/op-config.xml
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/config/op-user-config.xml:/etc/clickhouse-server/users.d/op-user-config.xml
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/config/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
diff --git a/appstore/umami/2.18.1/envs/default.env b/appstore/openpanel/25.6.5.41-alpine/envs/default.env
similarity index 100%
rename from appstore/umami/2.18.1/envs/default.env
rename to appstore/openpanel/25.6.5.41-alpine/envs/default.env
diff --git a/appstore/umami/2.18.1/envs/global.env b/appstore/openpanel/25.6.5.41-alpine/envs/global.env
similarity index 100%
rename from appstore/umami/2.18.1/envs/global.env
rename to appstore/openpanel/25.6.5.41-alpine/envs/global.env
diff --git a/appstore/openpanel/25.6.5.41-alpine/scripts/init.sh b/appstore/openpanel/25.6.5.41-alpine/scripts/init.sh
new file mode 100644
index 000000000..80c647873
--- /dev/null
+++ b/appstore/openpanel/25.6.5.41-alpine/scripts/init.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ if [ ! -d $CLICKHOUSE_SERVER_ROOT_PATH/config ]; then
+ mkdir -p $CLICKHOUSE_SERVER_ROOT_PATH/config
+ fi
+ cp -rn ./config/* $CLICKHOUSE_SERVER_ROOT_PATH/config/
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/appstore/umami/2.18.1/scripts/uninstall.sh b/appstore/openpanel/25.6.5.41-alpine/scripts/uninstall.sh
similarity index 100%
rename from appstore/umami/2.18.1/scripts/uninstall.sh
rename to appstore/openpanel/25.6.5.41-alpine/scripts/uninstall.sh
diff --git a/appstore/umami/2.18.1/scripts/upgrade.sh b/appstore/openpanel/25.6.5.41-alpine/scripts/upgrade.sh
similarity index 100%
rename from appstore/umami/2.18.1/scripts/upgrade.sh
rename to appstore/openpanel/25.6.5.41-alpine/scripts/upgrade.sh
diff --git a/appstore/openpanel/README.md b/appstore/openpanel/README.md
new file mode 100644
index 000000000..c18c4d704
--- /dev/null
+++ b/appstore/openpanel/README.md
@@ -0,0 +1,50 @@
+# Openpanel
+
+Openpanel 是一个开源网络和产品分析平台,它结合了 Mixpanel 的强大功能和 Plausible 的易用性,是最好的 Google Analytics
+替代品之一。
+
+
+
+
+
+## 特性
+
+### 网络分析
+
++ 实时数据 :实时查看访客活动
++ 流量来源 :了解访客来自哪里
++ 地理洞察 :追踪访客位置和趋势
++ 设备分析 :监控不同设备的使用情况
++ 页面性能 :分析访问量最大的页面
+
+### 产品分析
+
++ 事件跟踪 :监控用户操作和交互
++ 用户资料 :建立详细的用户旅程洞察
++ 漏斗 :分析转化路径
++ 留存率 :跟踪用户参与度
++ 自定义属性 :为事件添加上下文
+
+## 快速开始 SDK
+
+### 脚本标签
+
+```html
+
+
+
+```
+
+---
+
+
diff --git a/appstore/openpanel/data.yml b/appstore/openpanel/data.yml
new file mode 100644
index 000000000..ecb0a43fb
--- /dev/null
+++ b/appstore/openpanel/data.yml
@@ -0,0 +1,14 @@
+additionalProperties:
+ key: openpanel
+ name: Openpanel
+ tags:
+ - WebSite
+ - Local
+ shortDescZh: 开源网络和产品分析平台
+ shortDescEn: An open source network and product analysis platform
+ type: website
+ crossVersionUpdate: true
+ limit: 0
+ website: https://openpanel.dev/
+ github: https://github.com/Openpanel-dev/openpanel/
+ document: https://openpanel.dev/
diff --git a/appstore/openpanel/logo.png b/appstore/openpanel/logo.png
new file mode 100644
index 000000000..827e9529e
Binary files /dev/null and b/appstore/openpanel/logo.png differ
diff --git a/appstore/umami-mysql/2.18.1/.env b/appstore/umami-mysql/2.19.0/.env
similarity index 100%
rename from appstore/umami-mysql/2.18.1/.env
rename to appstore/umami-mysql/2.19.0/.env
diff --git a/appstore/umami-mysql/2.18.1/data.yml b/appstore/umami-mysql/2.19.0/data.yml
similarity index 100%
rename from appstore/umami-mysql/2.18.1/data.yml
rename to appstore/umami-mysql/2.19.0/data.yml
diff --git a/appstore/umami-mysql/2.18.1/docker-compose.yml b/appstore/umami-mysql/2.19.0/docker-compose.yml
similarity index 91%
rename from appstore/umami-mysql/2.18.1/docker-compose.yml
rename to appstore/umami-mysql/2.19.0/docker-compose.yml
index 0347d07c0..63d1197b2 100644
--- a/appstore/umami-mysql/2.18.1/docker-compose.yml
+++ b/appstore/umami-mysql/2.19.0/docker-compose.yml
@@ -12,7 +12,7 @@ services:
- REMOVE_TRAILING_SLASH = 1
- DATABASE_TYPE=mysql
- DATABASE_URL=mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
- image: umamisoftware/umami:mysql-v2.18.1
+ image: umamisoftware/umami:mysql-v2.19.0
labels:
createdBy: Apps
networks:
diff --git a/dockge/umami-mysql_2_18_1/envs/default.env b/appstore/umami-mysql/2.19.0/envs/default.env
similarity index 100%
rename from dockge/umami-mysql_2_18_1/envs/default.env
rename to appstore/umami-mysql/2.19.0/envs/default.env
diff --git a/dockge/umami-mysql_2_18_1/envs/global.env b/appstore/umami-mysql/2.19.0/envs/global.env
similarity index 100%
rename from dockge/umami-mysql_2_18_1/envs/global.env
rename to appstore/umami-mysql/2.19.0/envs/global.env
diff --git a/appstore/umami/2.18.1/scripts/init.sh b/appstore/umami-mysql/2.19.0/scripts/init.sh
similarity index 100%
rename from appstore/umami/2.18.1/scripts/init.sh
rename to appstore/umami-mysql/2.19.0/scripts/init.sh
diff --git a/appstore/umami-mysql/2.19.0/scripts/uninstall.sh b/appstore/umami-mysql/2.19.0/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/appstore/umami-mysql/2.19.0/scripts/uninstall.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/appstore/umami-mysql/2.19.0/scripts/upgrade.sh b/appstore/umami-mysql/2.19.0/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/appstore/umami-mysql/2.19.0/scripts/upgrade.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/appstore/umami/2.18.1/.env b/appstore/umami/2.19.0/.env
similarity index 100%
rename from appstore/umami/2.18.1/.env
rename to appstore/umami/2.19.0/.env
diff --git a/appstore/umami/2.18.1/data.yml b/appstore/umami/2.19.0/data.yml
similarity index 100%
rename from appstore/umami/2.18.1/data.yml
rename to appstore/umami/2.19.0/data.yml
diff --git a/appstore/umami/2.18.1/docker-compose.yml b/appstore/umami/2.19.0/docker-compose.yml
similarity index 90%
rename from appstore/umami/2.18.1/docker-compose.yml
rename to appstore/umami/2.19.0/docker-compose.yml
index 9bbf23909..f8dc6fb29 100644
--- a/appstore/umami/2.18.1/docker-compose.yml
+++ b/appstore/umami/2.19.0/docker-compose.yml
@@ -12,7 +12,7 @@ services:
- REMOVE_TRAILING_SLASH = 1
- DATABASE_TYPE=postgresql
- DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
- image: umamisoftware/umami:postgresql-v2.18.1
+ image: umamisoftware/umami:postgresql-v2.19.0
labels:
createdBy: Apps
networks:
diff --git a/dockge/umami_2_18_1/envs/default.env b/appstore/umami/2.19.0/envs/default.env
similarity index 100%
rename from dockge/umami_2_18_1/envs/default.env
rename to appstore/umami/2.19.0/envs/default.env
diff --git a/dockge/umami_2_18_1/envs/global.env b/appstore/umami/2.19.0/envs/global.env
similarity index 100%
rename from dockge/umami_2_18_1/envs/global.env
rename to appstore/umami/2.19.0/envs/global.env
diff --git a/appstore/umami/2.19.0/scripts/init.sh b/appstore/umami/2.19.0/scripts/init.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/appstore/umami/2.19.0/scripts/init.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/appstore/umami/2.19.0/scripts/uninstall.sh b/appstore/umami/2.19.0/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/appstore/umami/2.19.0/scripts/uninstall.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/appstore/umami/2.19.0/scripts/upgrade.sh b/appstore/umami/2.19.0/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/appstore/umami/2.19.0/scripts/upgrade.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/dockge/metatube-server-memory/.env b/dockge/metatube-server-memory/.env
new file mode 100644
index 000000000..eeec6f970
--- /dev/null
+++ b/dockge/metatube-server-memory/.env
@@ -0,0 +1,15 @@
+# 网络模式 [必填]
+NETWORK_MODE=1panel-network
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8080
+
+# 访问令牌 [必填]
+TOKEN=
+
+# 请求超时时间 [必填]
+REQUEST_TIMEOUT=1m
+
+# 网络代理 (HTTP/Socket5)
+HTTP_PROXY=
+
diff --git a/dockge/metatube-server-memory/docker-compose.yml b/dockge/metatube-server-memory/docker-compose.yml
new file mode 100644
index 000000000..d77daeff5
--- /dev/null
+++ b/dockge/metatube-server-memory/docker-compose.yml
@@ -0,0 +1,20 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ metatube-server:
+ container_name: metatube-server-memory
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - DB_AUTO_MIGRATE=true
+ - PORT=${PANEL_APP_PORT_HTTP}
+ image: ghcr.io/metatube-community/metatube-server:1.3.1
+ labels:
+ createdBy: Apps
+ network_mode: ${NETWORK_MODE}
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}
+ restart: always
diff --git a/dockge/metatube-server-memory/envs/default.env b/dockge/metatube-server-memory/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/dockge/metatube-server-memory/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/metatube-server-memory/envs/global.env b/dockge/metatube-server-memory/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/dockge/metatube-server-memory/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/dockge/openpanel/.env b/dockge/openpanel/.env
new file mode 100644
index 000000000..e3d40eb70
--- /dev/null
+++ b/dockge/openpanel/.env
@@ -0,0 +1,51 @@
+# Postgres 服务 (前置检查)
+PANEL_POSTGRES_TYPE=postgresql
+
+# Redis 服务 (前置检查) [必填]
+PANEL_REDIS_TYPE=redis
+
+# 数据持久化路径 [必填]
+CLICKHOUSE_SERVER_ROOT_PATH=/home/clickhouse-server
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8123
+
+# Native/TCP 通讯端口 [必填]
+PANEL_APP_PORT_NATIVE_TCP=9000
+
+# 服务器通信端口 [必填]
+PANEL_APP_PORT_INTER_SERVER=9009
+
+# ClickHouse 访问地址 [必填]
+CLICKHOUSE_URL=http://127.0.0.1:8123/openpanel
+
+# Redis 地址 [必填]
+REDIS_URL=redis://127.0.0.1:6379
+
+# Redis 地址 [必填]
+DATABASE_URL=postgresql://postgres_user:postgres_pass@127.0.0.1:5432/postgres_db_name?schema=public
+
+# 开放注册 [必填]
+ALLOW_REGISTRATION=false
+
+# 开放邀请 [必填]
+ALLOW_INVITATION=false
+
+# 邮件发送 (Resend) API KEY
+RESEND_API_KEY=
+
+# 邮件发送者地址
+EMAIL_SENDER=
+
+# Github 客户端 ID (OAuth2)
+GITHUB_CLIENT_ID=
+
+# Github 客户端密钥 (OAuth2)
+GITHUB_CLIENT_SECRET=
+
+# Google 客户端 ID (OAuth2)
+GOOGLE_CLIENT_ID=
+
+# Google 客户端密钥 (OAuth2)
+GOOGLE_CLIENT_SECRET=
+
diff --git a/dockge/openpanel/config/clickhouse-config.xml b/dockge/openpanel/config/clickhouse-config.xml
new file mode 100644
index 000000000..659577864
--- /dev/null
+++ b/dockge/openpanel/config/clickhouse-config.xml
@@ -0,0 +1,29 @@
+
+
+ warning
+ true
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+ 0.0.0.0
+ 0.0.0.0
+ op-ch
+
+
+
+ 1
+ replica1
+ openpanel_cluster
+
+
diff --git a/dockge/openpanel/config/clickhouse-user-config.xml b/dockge/openpanel/config/clickhouse-user-config.xml
new file mode 100644
index 000000000..ae6a6b948
--- /dev/null
+++ b/dockge/openpanel/config/clickhouse-user-config.xml
@@ -0,0 +1,8 @@
+
+
+
+ 0
+ 0
+
+
+
\ No newline at end of file
diff --git a/dockge/openpanel/config/init-db.sh b/dockge/openpanel/config/init-db.sh
new file mode 100644
index 000000000..e86d8af32
--- /dev/null
+++ b/dockge/openpanel/config/init-db.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+set -e
+
+clickhouse client -n <<-EOSQL
+ CREATE DATABASE IF NOT EXISTS openpanel;
+EOSQL
\ No newline at end of file
diff --git a/dockge/openpanel/docker-compose.yml b/dockge/openpanel/docker-compose.yml
new file mode 100644
index 000000000..dd3009ac6
--- /dev/null
+++ b/dockge/openpanel/docker-compose.yml
@@ -0,0 +1,41 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ clickhouse-server:
+ container_name: openpanel
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - TZ=Asia/Shanghai
+ - DATABASE_URL_DIRECT=${DATABASE_URL}
+ - BATCH_SIZE=5000
+ - BATCH_INTERVAL=10000
+ - CONCURRENCY=10
+ - WORKER_PORT=9999
+ - API_PORT=3333
+ - NEXT_PUBLIC_API_URL="http://localhost:3333"
+ - NEXT_PUBLIC_DASHBOARD_URL="http://localhost:3000"
+ - GITHUB_REDIRECT_URI=https://openpanel.domain.com/api/oauth/github/callback
+ - GOOGLE_REDIRECT_URI=https://openpanel.domain.com/api/oauth/google/callback
+ image: clickhouse/clickhouse-server:25.6.5.41-alpine
+ labels:
+ createdBy: Apps
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8123
+ - ${PANEL_APP_PORT_NATIVE_TCP}:9000
+ - ${PANEL_APP_PORT_INTER_SERVER}:9009
+ restart: always
+ ulimits:
+ nofile:
+ hard: 262144
+ soft: 262144
+ volumes:
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/data:/var/lib/clickhouse
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/logs:/var/log/clickhouse-server
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/config/op-config.xml:/etc/clickhouse-server/config.d/op-config.xml
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/config/op-user-config.xml:/etc/clickhouse-server/users.d/op-user-config.xml
+ - ${CLICKHOUSE_SERVER_ROOT_PATH}/config/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
diff --git a/dockge/openpanel/envs/default.env b/dockge/openpanel/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/dockge/openpanel/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/openpanel/envs/global.env b/dockge/openpanel/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/dockge/openpanel/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/dockge/umami-mysql/docker-compose.yml b/dockge/umami-mysql/docker-compose.yml
index 2bc7a13bc..63d1197b2 100644
--- a/dockge/umami-mysql/docker-compose.yml
+++ b/dockge/umami-mysql/docker-compose.yml
@@ -12,7 +12,7 @@ services:
- REMOVE_TRAILING_SLASH = 1
- DATABASE_TYPE=mysql
- DATABASE_URL=mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
- image: umamisoftware/umami:mysql-v2.16.0
+ image: umamisoftware/umami:mysql-v2.19.0
labels:
createdBy: Apps
networks:
diff --git a/dockge/umami-mysql_2_18_1/.env b/dockge/umami-mysql_2_16_0/.env
similarity index 100%
rename from dockge/umami-mysql_2_18_1/.env
rename to dockge/umami-mysql_2_16_0/.env
diff --git a/dockge/umami-mysql_2_18_1/docker-compose.yml b/dockge/umami-mysql_2_16_0/docker-compose.yml
similarity index 91%
rename from dockge/umami-mysql_2_18_1/docker-compose.yml
rename to dockge/umami-mysql_2_16_0/docker-compose.yml
index 0347d07c0..2bc7a13bc 100644
--- a/dockge/umami-mysql_2_18_1/docker-compose.yml
+++ b/dockge/umami-mysql_2_16_0/docker-compose.yml
@@ -12,7 +12,7 @@ services:
- REMOVE_TRAILING_SLASH = 1
- DATABASE_TYPE=mysql
- DATABASE_URL=mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
- image: umamisoftware/umami:mysql-v2.18.1
+ image: umamisoftware/umami:mysql-v2.16.0
labels:
createdBy: Apps
networks:
diff --git a/dockge/umami-mysql_2_16_0/envs/default.env b/dockge/umami-mysql_2_16_0/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/dockge/umami-mysql_2_16_0/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/umami-mysql_2_16_0/envs/global.env b/dockge/umami-mysql_2_16_0/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/dockge/umami-mysql_2_16_0/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/dockge/umami/docker-compose.yml b/dockge/umami/docker-compose.yml
index 7f7a58660..f8dc6fb29 100644
--- a/dockge/umami/docker-compose.yml
+++ b/dockge/umami/docker-compose.yml
@@ -12,7 +12,7 @@ services:
- REMOVE_TRAILING_SLASH = 1
- DATABASE_TYPE=postgresql
- DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
- image: umamisoftware/umami:postgresql-v2.16.0
+ image: umamisoftware/umami:postgresql-v2.19.0
labels:
createdBy: Apps
networks:
diff --git a/dockge/umami_2_18_1/.env b/dockge/umami_2_16_0/.env
similarity index 100%
rename from dockge/umami_2_18_1/.env
rename to dockge/umami_2_16_0/.env
diff --git a/dockge/umami_2_18_1/docker-compose.yml b/dockge/umami_2_16_0/docker-compose.yml
similarity index 90%
rename from dockge/umami_2_18_1/docker-compose.yml
rename to dockge/umami_2_16_0/docker-compose.yml
index 9bbf23909..7f7a58660 100644
--- a/dockge/umami_2_18_1/docker-compose.yml
+++ b/dockge/umami_2_16_0/docker-compose.yml
@@ -12,7 +12,7 @@ services:
- REMOVE_TRAILING_SLASH = 1
- DATABASE_TYPE=postgresql
- DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
- image: umamisoftware/umami:postgresql-v2.18.1
+ image: umamisoftware/umami:postgresql-v2.16.0
labels:
createdBy: Apps
networks:
diff --git a/dockge/umami_2_16_0/envs/default.env b/dockge/umami_2_16_0/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/dockge/umami_2_16_0/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/umami_2_16_0/envs/global.env b/dockge/umami_2_16_0/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/dockge/umami_2_16_0/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai