diff --git a/appstore/beszel-agent/0.12.0/.env b/appstore/beszel-agent/0.12.1/.env
similarity index 100%
rename from appstore/beszel-agent/0.12.0/.env
rename to appstore/beszel-agent/0.12.1/.env
diff --git a/appstore/beszel-agent/0.12.0/data.yml b/appstore/beszel-agent/0.12.1/data.yml
similarity index 100%
rename from appstore/beszel-agent/0.12.0/data.yml
rename to appstore/beszel-agent/0.12.1/data.yml
diff --git a/appstore/beszel-agent/0.12.0/docker-compose.yml b/appstore/beszel-agent/0.12.1/docker-compose.yml
similarity index 92%
rename from appstore/beszel-agent/0.12.0/docker-compose.yml
rename to appstore/beszel-agent/0.12.1/docker-compose.yml
index 662558179..53a0a3154 100644
--- a/appstore/beszel-agent/0.12.0/docker-compose.yml
+++ b/appstore/beszel-agent/0.12.1/docker-compose.yml
@@ -11,7 +11,7 @@ services:
- TZ=Asia/Shanghai
- LOG_LEVEL=info
- PORT=${PANEL_APP_PORT_HTTP:-45876}
- image: henrygd/beszel-agent:0.12.0
+ image: henrygd/beszel-agent:0.12.1
labels:
createdBy: Apps
network_mode: ${NETWORK_MODE:-host}
diff --git a/appstore/beszel-agent/0.12.0/envs/default.env b/appstore/beszel-agent/0.12.1/envs/default.env
similarity index 100%
rename from appstore/beszel-agent/0.12.0/envs/default.env
rename to appstore/beszel-agent/0.12.1/envs/default.env
diff --git a/appstore/beszel-agent/0.12.0/envs/global.env b/appstore/beszel-agent/0.12.1/envs/global.env
similarity index 100%
rename from appstore/beszel-agent/0.12.0/envs/global.env
rename to appstore/beszel-agent/0.12.1/envs/global.env
diff --git a/appstore/beszel-agent/0.12.0/scripts/init.sh b/appstore/beszel-agent/0.12.1/scripts/init.sh
similarity index 100%
rename from appstore/beszel-agent/0.12.0/scripts/init.sh
rename to appstore/beszel-agent/0.12.1/scripts/init.sh
diff --git a/appstore/beszel-agent/0.12.0/scripts/uninstall.sh b/appstore/beszel-agent/0.12.1/scripts/uninstall.sh
similarity index 100%
rename from appstore/beszel-agent/0.12.0/scripts/uninstall.sh
rename to appstore/beszel-agent/0.12.1/scripts/uninstall.sh
diff --git a/appstore/beszel-agent/0.12.0/scripts/upgrade.sh b/appstore/beszel-agent/0.12.1/scripts/upgrade.sh
similarity index 100%
rename from appstore/beszel-agent/0.12.0/scripts/upgrade.sh
rename to appstore/beszel-agent/0.12.1/scripts/upgrade.sh
diff --git a/appstore/beszel/0.12.0/.env b/appstore/beszel/0.12.1/.env
similarity index 100%
rename from appstore/beszel/0.12.0/.env
rename to appstore/beszel/0.12.1/.env
diff --git a/appstore/beszel/0.12.0/data.yml b/appstore/beszel/0.12.1/data.yml
similarity index 100%
rename from appstore/beszel/0.12.0/data.yml
rename to appstore/beszel/0.12.1/data.yml
diff --git a/appstore/beszel/0.12.0/docker-compose.yml b/appstore/beszel/0.12.1/docker-compose.yml
similarity index 91%
rename from appstore/beszel/0.12.0/docker-compose.yml
rename to appstore/beszel/0.12.1/docker-compose.yml
index e13455ec5..663f5776a 100644
--- a/appstore/beszel/0.12.0/docker-compose.yml
+++ b/appstore/beszel/0.12.1/docker-compose.yml
@@ -9,7 +9,7 @@ services:
- .env
environment:
- TZ=Asia/Shanghai
- image: henrygd/beszel:0.12.0
+ image: henrygd/beszel:0.12.1
labels:
createdBy: Apps
networks:
diff --git a/appstore/beszel/0.12.0/envs/default.env b/appstore/beszel/0.12.1/envs/default.env
similarity index 100%
rename from appstore/beszel/0.12.0/envs/default.env
rename to appstore/beszel/0.12.1/envs/default.env
diff --git a/appstore/beszel/0.12.0/envs/global.env b/appstore/beszel/0.12.1/envs/global.env
similarity index 100%
rename from appstore/beszel/0.12.0/envs/global.env
rename to appstore/beszel/0.12.1/envs/global.env
diff --git a/appstore/beszel/0.12.0/scripts/init.sh b/appstore/beszel/0.12.1/scripts/init.sh
similarity index 100%
rename from appstore/beszel/0.12.0/scripts/init.sh
rename to appstore/beszel/0.12.1/scripts/init.sh
diff --git a/appstore/beszel/0.12.0/scripts/uninstall.sh b/appstore/beszel/0.12.1/scripts/uninstall.sh
similarity index 100%
rename from appstore/beszel/0.12.0/scripts/uninstall.sh
rename to appstore/beszel/0.12.1/scripts/uninstall.sh
diff --git a/appstore/beszel/0.12.0/scripts/upgrade.sh b/appstore/beszel/0.12.1/scripts/upgrade.sh
similarity index 100%
rename from appstore/beszel/0.12.0/scripts/upgrade.sh
rename to appstore/beszel/0.12.1/scripts/upgrade.sh
diff --git a/appstore/casdoor/1.986.0/.env b/appstore/casdoor/1.988.0/.env
similarity index 100%
rename from appstore/casdoor/1.986.0/.env
rename to appstore/casdoor/1.988.0/.env
diff --git a/appstore/casdoor/1.986.0/config/init_data.json b/appstore/casdoor/1.988.0/config/init_data.json
similarity index 100%
rename from appstore/casdoor/1.986.0/config/init_data.json
rename to appstore/casdoor/1.988.0/config/init_data.json
diff --git a/appstore/casdoor/1.986.0/data.yml b/appstore/casdoor/1.988.0/data.yml
similarity index 100%
rename from appstore/casdoor/1.986.0/data.yml
rename to appstore/casdoor/1.988.0/data.yml
diff --git a/appstore/casdoor/1.986.0/docker-compose.yml b/appstore/casdoor/1.988.0/docker-compose.yml
similarity index 93%
rename from appstore/casdoor/1.986.0/docker-compose.yml
rename to appstore/casdoor/1.988.0/docker-compose.yml
index 7d53b2e7b..5b7f0dc09 100644
--- a/appstore/casdoor/1.986.0/docker-compose.yml
+++ b/appstore/casdoor/1.988.0/docker-compose.yml
@@ -14,7 +14,7 @@ services:
- verificationCodeTimeout=10
- appname=casdoor
- authState=casdoor
- image: casbin/casdoor:v1.986.0
+ image: casbin/casdoor:v1.988.0
labels:
createdBy: Apps
networks:
diff --git a/appstore/casdoor/1.986.0/envs/casdoor.env b/appstore/casdoor/1.988.0/envs/casdoor.env
similarity index 100%
rename from appstore/casdoor/1.986.0/envs/casdoor.env
rename to appstore/casdoor/1.988.0/envs/casdoor.env
diff --git a/appstore/casdoor/1.986.0/envs/default.env b/appstore/casdoor/1.988.0/envs/default.env
similarity index 100%
rename from appstore/casdoor/1.986.0/envs/default.env
rename to appstore/casdoor/1.988.0/envs/default.env
diff --git a/appstore/casdoor/1.986.0/envs/global.env b/appstore/casdoor/1.988.0/envs/global.env
similarity index 100%
rename from appstore/casdoor/1.986.0/envs/global.env
rename to appstore/casdoor/1.988.0/envs/global.env
diff --git a/appstore/casdoor/1.986.0/scripts/init.sh b/appstore/casdoor/1.988.0/scripts/init.sh
similarity index 100%
rename from appstore/casdoor/1.986.0/scripts/init.sh
rename to appstore/casdoor/1.988.0/scripts/init.sh
diff --git a/appstore/casdoor/1.986.0/scripts/uninstall.sh b/appstore/casdoor/1.988.0/scripts/uninstall.sh
similarity index 100%
rename from appstore/casdoor/1.986.0/scripts/uninstall.sh
rename to appstore/casdoor/1.988.0/scripts/uninstall.sh
diff --git a/appstore/casdoor/1.986.0/scripts/upgrade.sh b/appstore/casdoor/1.988.0/scripts/upgrade.sh
similarity index 100%
rename from appstore/casdoor/1.986.0/scripts/upgrade.sh
rename to appstore/casdoor/1.988.0/scripts/upgrade.sh
diff --git a/appstore/kotatsu/README.md b/appstore/kotatsu/README.md
new file mode 100644
index 000000000..13c80dc46
--- /dev/null
+++ b/appstore/kotatsu/README.md
@@ -0,0 +1,70 @@
+# Kotatsu
+
+口袋里的漫画
+
+
+
+
+
+## 安装说明
+
+### Kotatsu 同步服务器
+
+Kotatsu 是一款适用于 Android 平台的免费开源漫画阅读器。它支持多种语言的在线漫画,并具备筛选和搜索功能、本地存储离线阅读、收藏、书签、新章节通知等功能。
+
+如果您不想公开自部署的同步服务器,请在注册完成自己的设备后,将`允许新用户注册`改为禁止,重启即可。
+
+### 初始化数据库
+
+创建数据库后,请将应用目录 `config/database.sql` 数据库文件进行初始化。
+
+## 简介
+
+一款简单、方便的 Android 开源漫画阅读器,由社区提供,您可以比以往更轻松地找到和阅读您喜欢的漫画。
+
+## 特性
+
+### 大量来源
+
+支持超过 1000 个来源
+
+### 可定制的阅读器
+
+通过不同的阅读器设置使阅读更加方便
+
+### 支持追踪
+
+支持 MyAnimeList、Anilist 和 Shikimori
+
+### 智能搜索
+
+快速轻松地搜索感兴趣的标题
+
+### 强大的下载器
+
+可以缓慢下载标题以避免出现源问题
+
+### 同步
+
+轻松在您的设备之间同步系列。
+
+## 下载客户端
+
+
+
+---
+
+
diff --git a/appstore/kotatsu/data.yml b/appstore/kotatsu/data.yml
new file mode 100644
index 000000000..a47710025
--- /dev/null
+++ b/appstore/kotatsu/data.yml
@@ -0,0 +1,14 @@
+additionalProperties:
+ key: kotatsu
+ name: Kotatsu
+ tags:
+ - WebSite
+ - Local
+ shortDescZh: 口袋里的漫画
+ shortDescEn: Manga in your pocket
+ type: website
+ crossVersionUpdate: true
+ limit: 0
+ website: https://kotatsu.app/
+ github: https://github.com/KotatsuApp/Kotatsu/
+ document: https://kotatsu.app/
diff --git a/appstore/kotatsu/logo.png b/appstore/kotatsu/logo.png
new file mode 100644
index 000000000..7f0ce6745
Binary files /dev/null and b/appstore/kotatsu/logo.png differ
diff --git a/appstore/kotatsu/logo.svg b/appstore/kotatsu/logo.svg
new file mode 100644
index 000000000..64321067b
--- /dev/null
+++ b/appstore/kotatsu/logo.svg
@@ -0,0 +1,56 @@
+
+
+
diff --git a/appstore/kotatsu/v20250725/.env b/appstore/kotatsu/v20250725/.env
new file mode 100644
index 000000000..b18cfdad4
--- /dev/null
+++ b/appstore/kotatsu/v20250725/.env
@@ -0,0 +1,27 @@
+# MySQL 服务 (前置检查) [必填]
+PANEL_DB_TYPE=mysql
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8080
+
+# JWT 密钥 [必填]
+JWT_SECRET=
+
+# 数据库 主机 [必填]
+DATABASE_HOST=127.0.0.1
+
+# 数据库 端口 [必填]
+DATABASE_PORT=3306
+
+# 数据库 名称 [必填]
+DATABASE_NAME=kotatsu-syncserver
+
+# 数据库 用户名 [必填]
+DATABASE_USER=kotatsu-syncserver
+
+# 数据库 密码 [必填]
+DATABASE_PASSWORD=
+
+# 允许新用户注册 [必填]
+ALLOW_NEW_REGISTER=true
+
diff --git a/appstore/kotatsu/v20250725/config/database.sql b/appstore/kotatsu/v20250725/config/database.sql
new file mode 100644
index 000000000..662429cff
--- /dev/null
+++ b/appstore/kotatsu/v20250725/config/database.sql
@@ -0,0 +1,134 @@
+drop table if exists favourites;
+
+drop table if exists categories;
+
+drop table if exists history;
+
+drop table if exists manga_tags;
+
+drop table if exists manga;
+
+drop table if exists tags;
+
+drop table if exists users;
+
+create table manga
+(
+ id bigint not null,
+ title varchar(84) not null,
+ alt_title varchar(84) null,
+ url varchar(255) not null,
+ public_url varchar(255) not null,
+ rating float not null,
+ content_rating char(12) null,
+ cover_url varchar(255) not null,
+ large_cover_url varchar(255) null,
+ state char(12) null,
+ author varchar(64) null,
+ source varchar(32) not null,
+ primary key (id)
+);
+
+create table tags
+(
+ id bigint not null,
+ title varchar(64) not null,
+ `key` varchar(120) not null,
+ source varchar(32) not null,
+ primary key (id)
+);
+
+create table manga_tags
+(
+ manga_id bigint not null,
+ tag_id bigint not null,
+ primary key (manga_id, tag_id),
+ constraint manga_tags_ibfk_1
+ foreign key (tag_id) references tags (id),
+ constraint manga_tags_ibfk_2
+ foreign key (manga_id) references manga (id)
+ on delete cascade
+);
+
+create index tag_id
+ on manga_tags (tag_id);
+
+create table users
+(
+ id int auto_increment
+ primary key,
+ email varchar(120) not null,
+ password char(32) not null,
+ nickname varchar(84) null,
+ favourites_sync_timestamp bigint null,
+ history_sync_timestamp bigint null
+);
+
+create table categories
+(
+ id bigint not null,
+ created_at bigint not null,
+ sort_key int not null,
+ title varchar(120) not null,
+ `order` char(16) not null,
+ user_id int not null,
+ track tinyint(1) not null,
+ show_in_lib tinyint(1) not null,
+ deleted_at bigint not null,
+ primary key (id, user_id),
+ constraint categories_ibfk_1
+ foreign key (user_id) references users (id)
+ on delete cascade
+);
+
+create index categories_id_index
+ on categories (id);
+
+create table favourites
+(
+ manga_id bigint not null,
+ category_id bigint not null,
+ sort_key int not null,
+ pinned tinyint(1) not null,
+ created_at bigint not null,
+ deleted_at bigint not null,
+ user_id int not null,
+ primary key (manga_id, category_id, user_id),
+ constraint favourites_categories_id_pk
+ foreign key (category_id, user_id) references categories (id, user_id),
+ constraint favourites_ibfk_1
+ foreign key (manga_id) references manga (id),
+ constraint favourites_ibfk_2
+ foreign key (user_id) references users (id)
+);
+
+create index user_id
+ on favourites (user_id);
+
+create table history
+(
+ manga_id bigint not null,
+ created_at bigint not null,
+ updated_at bigint not null,
+ chapter_id bigint not null,
+ page smallint not null,
+ scroll double not null,
+ percent double not null,
+ chapters int not null,
+ deleted_at bigint not null,
+ user_id int not null,
+ primary key (user_id, manga_id),
+ constraint history_ibfk_1
+ foreign key (manga_id) references manga (id),
+ constraint history_ibfk_2
+ foreign key (user_id) references users (id)
+ on delete cascade
+);
+
+create index manga_id
+ on history (manga_id);
+
+create unique index users_email_uindex
+ on users (email);
+
+
diff --git a/appstore/kotatsu/v20250725/data.yml b/appstore/kotatsu/v20250725/data.yml
new file mode 100644
index 000000000..996f2a90d
--- /dev/null
+++ b/appstore/kotatsu/v20250725/data.yml
@@ -0,0 +1,84 @@
+additionalProperties:
+ formFields:
+ - child:
+ default: ""
+ envKey: PANEL_DB_HOST
+ required: true
+ type: service
+ default: mysql
+ edit: true
+ envKey: PANEL_DB_TYPE
+ labelZh: MySQL 服务 (前置检查)
+ labelEn: Database Service (Pre-check)
+ required: true
+ type: apps
+ values:
+ - label: MySQL
+ value: mysql
+ - label: MariaDB
+ value: mariadb
+ - label: Percona
+ value: percona
+ - default: 8080
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelZh: WebUI 端口
+ labelEn: WebUI port
+ required: true
+ rule: paramPort
+ type: number
+ - default: ""
+ edit: true
+ envKey: JWT_SECRET
+ labelZh: JWT 密钥
+ labelEn: JWT secret
+ required: true
+ type: password
+ - default: "127.0.0.1"
+ edit: true
+ envKey: DATABASE_HOST
+ labelZh: 数据库 主机
+ labelEn: Database Host
+ required: true
+ type: text
+ - default: 3306
+ edit: true
+ envKey: DATABASE_PORT
+ labelZh: 数据库 端口
+ labelEn: Database Port
+ required: true
+ rule: paramPort
+ type: number
+ - default: "kotatsu-syncserver"
+ edit: true
+ envKey: DATABASE_NAME
+ labelZh: 数据库 名称
+ labelEn: Database Name
+ required: true
+ type: text
+ - default: "kotatsu-syncserver"
+ edit: true
+ envKey: DATABASE_USER
+ labelZh: 数据库 用户名
+ labelEn: Database Username
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: DATABASE_PASSWORD
+ labelZh: 数据库 密码
+ labelEn: Database Password
+ required: true
+ type: password
+ - default: "true"
+ edit: true
+ envKey: ALLOW_NEW_REGISTER
+ labelZh: 允许新用户注册
+ labelEn: Allow new users to register
+ required: true
+ type: select
+ values:
+ - label: 开放注册
+ value: "true"
+ - label: 禁止注册
+ value: "false"
diff --git a/appstore/kotatsu/v20250725/docker-compose.yml b/appstore/kotatsu/v20250725/docker-compose.yml
new file mode 100644
index 000000000..39631d586
--- /dev/null
+++ b/appstore/kotatsu/v20250725/docker-compose.yml
@@ -0,0 +1,19 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ kotatsu-syncserver:
+ container_name: kotatsu
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - TZ=Asia/Shanghai
+ image: qyg2297248353/kotatsu-syncserver:v20250725
+ labels:
+ createdBy: Apps
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8080
+ restart: always
diff --git a/appstore/rsshub/2025-07-24/envs/default.env b/appstore/kotatsu/v20250725/envs/default.env
similarity index 100%
rename from appstore/rsshub/2025-07-24/envs/default.env
rename to appstore/kotatsu/v20250725/envs/default.env
diff --git a/appstore/rsshub/2025-07-24/envs/global.env b/appstore/kotatsu/v20250725/envs/global.env
similarity index 100%
rename from appstore/rsshub/2025-07-24/envs/global.env
rename to appstore/kotatsu/v20250725/envs/global.env
diff --git a/appstore/rsshub/2025-07-24/scripts/init.sh b/appstore/kotatsu/v20250725/scripts/init.sh
similarity index 100%
rename from appstore/rsshub/2025-07-24/scripts/init.sh
rename to appstore/kotatsu/v20250725/scripts/init.sh
diff --git a/appstore/rsshub/2025-07-24/scripts/uninstall.sh b/appstore/kotatsu/v20250725/scripts/uninstall.sh
similarity index 100%
rename from appstore/rsshub/2025-07-24/scripts/uninstall.sh
rename to appstore/kotatsu/v20250725/scripts/uninstall.sh
diff --git a/appstore/rsshub/2025-07-24/scripts/upgrade.sh b/appstore/kotatsu/v20250725/scripts/upgrade.sh
similarity index 100%
rename from appstore/rsshub/2025-07-24/scripts/upgrade.sh
rename to appstore/kotatsu/v20250725/scripts/upgrade.sh
diff --git a/appstore/rsshub/2025-07-24/.env b/appstore/rsshub/2025-07-25/.env
similarity index 100%
rename from appstore/rsshub/2025-07-24/.env
rename to appstore/rsshub/2025-07-25/.env
diff --git a/appstore/rsshub/2025-07-24/data.yml b/appstore/rsshub/2025-07-25/data.yml
similarity index 100%
rename from appstore/rsshub/2025-07-24/data.yml
rename to appstore/rsshub/2025-07-25/data.yml
diff --git a/appstore/rsshub/2025-07-24/docker-compose.yml b/appstore/rsshub/2025-07-25/docker-compose.yml
similarity index 97%
rename from appstore/rsshub/2025-07-24/docker-compose.yml
rename to appstore/rsshub/2025-07-25/docker-compose.yml
index 97e248d66..18df47a5d 100644
--- a/appstore/rsshub/2025-07-24/docker-compose.yml
+++ b/appstore/rsshub/2025-07-25/docker-compose.yml
@@ -57,7 +57,7 @@ services:
- -f
- http://localhost:1200/healthz?key=${ACCESS_KEY}
timeout: 10s
- image: diygod/rsshub:2025-07-24
+ image: diygod/rsshub:2025-07-25
labels:
createdBy: Apps
networks:
diff --git a/appstore/super-productivity/14.1.0/envs/default.env b/appstore/rsshub/2025-07-25/envs/default.env
similarity index 100%
rename from appstore/super-productivity/14.1.0/envs/default.env
rename to appstore/rsshub/2025-07-25/envs/default.env
diff --git a/appstore/super-productivity/14.1.0/envs/global.env b/appstore/rsshub/2025-07-25/envs/global.env
similarity index 100%
rename from appstore/super-productivity/14.1.0/envs/global.env
rename to appstore/rsshub/2025-07-25/envs/global.env
diff --git a/appstore/rsshub/2025-07-25/scripts/init.sh b/appstore/rsshub/2025-07-25/scripts/init.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/appstore/rsshub/2025-07-25/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/super-productivity/14.1.0/scripts/uninstall.sh b/appstore/rsshub/2025-07-25/scripts/uninstall.sh
similarity index 100%
rename from appstore/super-productivity/14.1.0/scripts/uninstall.sh
rename to appstore/rsshub/2025-07-25/scripts/uninstall.sh
diff --git a/appstore/rsshub/2025-07-25/scripts/upgrade.sh b/appstore/rsshub/2025-07-25/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/appstore/rsshub/2025-07-25/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/super-productivity/14.1.0/.env b/appstore/super-productivity/14.2.3/.env
similarity index 100%
rename from appstore/super-productivity/14.1.0/.env
rename to appstore/super-productivity/14.2.3/.env
diff --git a/appstore/super-productivity/14.1.0/conf/webdav.yaml b/appstore/super-productivity/14.2.3/conf/webdav.yaml
similarity index 100%
rename from appstore/super-productivity/14.1.0/conf/webdav.yaml
rename to appstore/super-productivity/14.2.3/conf/webdav.yaml
diff --git a/appstore/super-productivity/14.1.0/data.yml b/appstore/super-productivity/14.2.3/data.yml
similarity index 100%
rename from appstore/super-productivity/14.1.0/data.yml
rename to appstore/super-productivity/14.2.3/data.yml
diff --git a/appstore/super-productivity/14.1.0/docker-compose.yml b/appstore/super-productivity/14.2.3/docker-compose.yml
similarity index 93%
rename from appstore/super-productivity/14.1.0/docker-compose.yml
rename to appstore/super-productivity/14.2.3/docker-compose.yml
index 23f723093..13eb74815 100644
--- a/appstore/super-productivity/14.1.0/docker-compose.yml
+++ b/appstore/super-productivity/14.2.3/docker-compose.yml
@@ -21,7 +21,7 @@ services:
environment:
- TZ=Asia/Shanghai
- WEBDAV_BACKEND=http://sp-webdav
- image: johannesjo/super-productivity:v14.1.0
+ image: johannesjo/super-productivity:v14.2.3
labels:
createdBy: Apps
networks:
diff --git a/appstore/super-productivity/14.2.3/envs/default.env b/appstore/super-productivity/14.2.3/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/appstore/super-productivity/14.2.3/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/appstore/super-productivity/14.2.3/envs/global.env b/appstore/super-productivity/14.2.3/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/appstore/super-productivity/14.2.3/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/appstore/super-productivity/14.1.0/scripts/init.sh b/appstore/super-productivity/14.2.3/scripts/init.sh
similarity index 100%
rename from appstore/super-productivity/14.1.0/scripts/init.sh
rename to appstore/super-productivity/14.2.3/scripts/init.sh
diff --git a/appstore/super-productivity/14.2.3/scripts/uninstall.sh b/appstore/super-productivity/14.2.3/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/appstore/super-productivity/14.2.3/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/super-productivity/14.1.0/scripts/upgrade.sh b/appstore/super-productivity/14.2.3/scripts/upgrade.sh
similarity index 100%
rename from appstore/super-productivity/14.1.0/scripts/upgrade.sh
rename to appstore/super-productivity/14.2.3/scripts/upgrade.sh
diff --git a/dockge/beszel-agent/docker-compose.yml b/dockge/beszel-agent/docker-compose.yml
index 662558179..53a0a3154 100644
--- a/dockge/beszel-agent/docker-compose.yml
+++ b/dockge/beszel-agent/docker-compose.yml
@@ -11,7 +11,7 @@ services:
- TZ=Asia/Shanghai
- LOG_LEVEL=info
- PORT=${PANEL_APP_PORT_HTTP:-45876}
- image: henrygd/beszel-agent:0.12.0
+ image: henrygd/beszel-agent:0.12.1
labels:
createdBy: Apps
network_mode: ${NETWORK_MODE:-host}
diff --git a/dockge/beszel/docker-compose.yml b/dockge/beszel/docker-compose.yml
index e13455ec5..663f5776a 100644
--- a/dockge/beszel/docker-compose.yml
+++ b/dockge/beszel/docker-compose.yml
@@ -9,7 +9,7 @@ services:
- .env
environment:
- TZ=Asia/Shanghai
- image: henrygd/beszel:0.12.0
+ image: henrygd/beszel:0.12.1
labels:
createdBy: Apps
networks:
diff --git a/dockge/casdoor/docker-compose.yml b/dockge/casdoor/docker-compose.yml
index 7d53b2e7b..5b7f0dc09 100644
--- a/dockge/casdoor/docker-compose.yml
+++ b/dockge/casdoor/docker-compose.yml
@@ -14,7 +14,7 @@ services:
- verificationCodeTimeout=10
- appname=casdoor
- authState=casdoor
- image: casbin/casdoor:v1.986.0
+ image: casbin/casdoor:v1.988.0
labels:
createdBy: Apps
networks:
diff --git a/dockge/kotatsu/.env b/dockge/kotatsu/.env
new file mode 100644
index 000000000..b18cfdad4
--- /dev/null
+++ b/dockge/kotatsu/.env
@@ -0,0 +1,27 @@
+# MySQL 服务 (前置检查) [必填]
+PANEL_DB_TYPE=mysql
+
+# WebUI 端口 [必填]
+PANEL_APP_PORT_HTTP=8080
+
+# JWT 密钥 [必填]
+JWT_SECRET=
+
+# 数据库 主机 [必填]
+DATABASE_HOST=127.0.0.1
+
+# 数据库 端口 [必填]
+DATABASE_PORT=3306
+
+# 数据库 名称 [必填]
+DATABASE_NAME=kotatsu-syncserver
+
+# 数据库 用户名 [必填]
+DATABASE_USER=kotatsu-syncserver
+
+# 数据库 密码 [必填]
+DATABASE_PASSWORD=
+
+# 允许新用户注册 [必填]
+ALLOW_NEW_REGISTER=true
+
diff --git a/dockge/kotatsu/config/database.sql b/dockge/kotatsu/config/database.sql
new file mode 100644
index 000000000..662429cff
--- /dev/null
+++ b/dockge/kotatsu/config/database.sql
@@ -0,0 +1,134 @@
+drop table if exists favourites;
+
+drop table if exists categories;
+
+drop table if exists history;
+
+drop table if exists manga_tags;
+
+drop table if exists manga;
+
+drop table if exists tags;
+
+drop table if exists users;
+
+create table manga
+(
+ id bigint not null,
+ title varchar(84) not null,
+ alt_title varchar(84) null,
+ url varchar(255) not null,
+ public_url varchar(255) not null,
+ rating float not null,
+ content_rating char(12) null,
+ cover_url varchar(255) not null,
+ large_cover_url varchar(255) null,
+ state char(12) null,
+ author varchar(64) null,
+ source varchar(32) not null,
+ primary key (id)
+);
+
+create table tags
+(
+ id bigint not null,
+ title varchar(64) not null,
+ `key` varchar(120) not null,
+ source varchar(32) not null,
+ primary key (id)
+);
+
+create table manga_tags
+(
+ manga_id bigint not null,
+ tag_id bigint not null,
+ primary key (manga_id, tag_id),
+ constraint manga_tags_ibfk_1
+ foreign key (tag_id) references tags (id),
+ constraint manga_tags_ibfk_2
+ foreign key (manga_id) references manga (id)
+ on delete cascade
+);
+
+create index tag_id
+ on manga_tags (tag_id);
+
+create table users
+(
+ id int auto_increment
+ primary key,
+ email varchar(120) not null,
+ password char(32) not null,
+ nickname varchar(84) null,
+ favourites_sync_timestamp bigint null,
+ history_sync_timestamp bigint null
+);
+
+create table categories
+(
+ id bigint not null,
+ created_at bigint not null,
+ sort_key int not null,
+ title varchar(120) not null,
+ `order` char(16) not null,
+ user_id int not null,
+ track tinyint(1) not null,
+ show_in_lib tinyint(1) not null,
+ deleted_at bigint not null,
+ primary key (id, user_id),
+ constraint categories_ibfk_1
+ foreign key (user_id) references users (id)
+ on delete cascade
+);
+
+create index categories_id_index
+ on categories (id);
+
+create table favourites
+(
+ manga_id bigint not null,
+ category_id bigint not null,
+ sort_key int not null,
+ pinned tinyint(1) not null,
+ created_at bigint not null,
+ deleted_at bigint not null,
+ user_id int not null,
+ primary key (manga_id, category_id, user_id),
+ constraint favourites_categories_id_pk
+ foreign key (category_id, user_id) references categories (id, user_id),
+ constraint favourites_ibfk_1
+ foreign key (manga_id) references manga (id),
+ constraint favourites_ibfk_2
+ foreign key (user_id) references users (id)
+);
+
+create index user_id
+ on favourites (user_id);
+
+create table history
+(
+ manga_id bigint not null,
+ created_at bigint not null,
+ updated_at bigint not null,
+ chapter_id bigint not null,
+ page smallint not null,
+ scroll double not null,
+ percent double not null,
+ chapters int not null,
+ deleted_at bigint not null,
+ user_id int not null,
+ primary key (user_id, manga_id),
+ constraint history_ibfk_1
+ foreign key (manga_id) references manga (id),
+ constraint history_ibfk_2
+ foreign key (user_id) references users (id)
+ on delete cascade
+);
+
+create index manga_id
+ on history (manga_id);
+
+create unique index users_email_uindex
+ on users (email);
+
+
diff --git a/dockge/kotatsu/docker-compose.yml b/dockge/kotatsu/docker-compose.yml
new file mode 100644
index 000000000..39631d586
--- /dev/null
+++ b/dockge/kotatsu/docker-compose.yml
@@ -0,0 +1,19 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ kotatsu-syncserver:
+ container_name: kotatsu
+ env_file:
+ - ./envs/global.env
+ - .env
+ environment:
+ - TZ=Asia/Shanghai
+ image: qyg2297248353/kotatsu-syncserver:v20250725
+ labels:
+ createdBy: Apps
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8080
+ restart: always
diff --git a/dockge/kotatsu/envs/default.env b/dockge/kotatsu/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/dockge/kotatsu/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/kotatsu/envs/global.env b/dockge/kotatsu/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/dockge/kotatsu/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/dockge/rsshub/docker-compose.yml b/dockge/rsshub/docker-compose.yml
index 97e248d66..18df47a5d 100644
--- a/dockge/rsshub/docker-compose.yml
+++ b/dockge/rsshub/docker-compose.yml
@@ -57,7 +57,7 @@ services:
- -f
- http://localhost:1200/healthz?key=${ACCESS_KEY}
timeout: 10s
- image: diygod/rsshub:2025-07-24
+ image: diygod/rsshub:2025-07-25
labels:
createdBy: Apps
networks:
diff --git a/dockge/super-productivity/docker-compose.yml b/dockge/super-productivity/docker-compose.yml
index 23f723093..13eb74815 100644
--- a/dockge/super-productivity/docker-compose.yml
+++ b/dockge/super-productivity/docker-compose.yml
@@ -21,7 +21,7 @@ services:
environment:
- TZ=Asia/Shanghai
- WEBDAV_BACKEND=http://sp-webdav
- image: johannesjo/super-productivity:v14.1.0
+ image: johannesjo/super-productivity:v14.2.3
labels:
createdBy: Apps
networks: