diff --git a/appstore/casdoor/1.806.0/.env b/appstore/casdoor/1.807.0/.env
similarity index 100%
rename from appstore/casdoor/1.806.0/.env
rename to appstore/casdoor/1.807.0/.env
diff --git a/appstore/casdoor/1.806.0/config/init_data.json b/appstore/casdoor/1.807.0/config/init_data.json
similarity index 100%
rename from appstore/casdoor/1.806.0/config/init_data.json
rename to appstore/casdoor/1.807.0/config/init_data.json
diff --git a/appstore/casdoor/1.806.0/data.yml b/appstore/casdoor/1.807.0/data.yml
similarity index 100%
rename from appstore/casdoor/1.806.0/data.yml
rename to appstore/casdoor/1.807.0/data.yml
diff --git a/appstore/casdoor/1.806.0/docker-compose.yml b/appstore/casdoor/1.807.0/docker-compose.yml
similarity index 93%
rename from appstore/casdoor/1.806.0/docker-compose.yml
rename to appstore/casdoor/1.807.0/docker-compose.yml
index 13c80e56..313963d8 100644
--- a/appstore/casdoor/1.806.0/docker-compose.yml
+++ b/appstore/casdoor/1.807.0/docker-compose.yml
@@ -14,7 +14,7 @@ services:
     - verificationCodeTimeout=10
     - appname=casdoor
     - authState=casdoor
-    image: casbin/casdoor:v1.806.0
+    image: casbin/casdoor:v1.807.0
     labels:
       createdBy: Apps
     networks:
diff --git a/appstore/casdoor/1.806.0/envs/casdoor.env b/appstore/casdoor/1.807.0/envs/casdoor.env
similarity index 100%
rename from appstore/casdoor/1.806.0/envs/casdoor.env
rename to appstore/casdoor/1.807.0/envs/casdoor.env
diff --git a/appstore/casdoor/1.806.0/envs/default.env b/appstore/casdoor/1.807.0/envs/default.env
similarity index 100%
rename from appstore/casdoor/1.806.0/envs/default.env
rename to appstore/casdoor/1.807.0/envs/default.env
diff --git a/appstore/casdoor/1.806.0/envs/global.env b/appstore/casdoor/1.807.0/envs/global.env
similarity index 100%
rename from appstore/casdoor/1.806.0/envs/global.env
rename to appstore/casdoor/1.807.0/envs/global.env
diff --git a/appstore/casdoor/1.806.0/scripts/init.sh b/appstore/casdoor/1.807.0/scripts/init.sh
similarity index 100%
rename from appstore/casdoor/1.806.0/scripts/init.sh
rename to appstore/casdoor/1.807.0/scripts/init.sh
diff --git a/appstore/casdoor/1.806.0/scripts/uninstall.sh b/appstore/casdoor/1.807.0/scripts/uninstall.sh
similarity index 100%
rename from appstore/casdoor/1.806.0/scripts/uninstall.sh
rename to appstore/casdoor/1.807.0/scripts/uninstall.sh
diff --git a/appstore/casdoor/1.806.0/scripts/upgrade.sh b/appstore/casdoor/1.807.0/scripts/upgrade.sh
similarity index 100%
rename from appstore/casdoor/1.806.0/scripts/upgrade.sh
rename to appstore/casdoor/1.807.0/scripts/upgrade.sh
diff --git a/appstore/nodebb/3.12.3/.env b/appstore/nodebb/3.12.4/.env
similarity index 100%
rename from appstore/nodebb/3.12.3/.env
rename to appstore/nodebb/3.12.4/.env
diff --git a/appstore/nodebb/3.12.3/conf/setup.json b/appstore/nodebb/3.12.4/conf/setup.json
similarity index 100%
rename from appstore/nodebb/3.12.3/conf/setup.json
rename to appstore/nodebb/3.12.4/conf/setup.json
diff --git a/appstore/nodebb/3.12.3/data.yml b/appstore/nodebb/3.12.4/data.yml
similarity index 100%
rename from appstore/nodebb/3.12.3/data.yml
rename to appstore/nodebb/3.12.4/data.yml
diff --git a/appstore/nodebb/3.12.3/docker-compose.yml b/appstore/nodebb/3.12.4/docker-compose.yml
similarity index 93%
rename from appstore/nodebb/3.12.3/docker-compose.yml
rename to appstore/nodebb/3.12.4/docker-compose.yml
index cf28405c..731ea616 100644
--- a/appstore/nodebb/3.12.3/docker-compose.yml
+++ b/appstore/nodebb/3.12.4/docker-compose.yml
@@ -9,7 +9,7 @@ services:
     - .env
     environment:
     - TZ=Asia/Shanghai
-    image: ghcr.io/nodebb/nodebb:3.12.3
+    image: ghcr.io/nodebb/nodebb:3.12.4
     labels:
       createdBy: Apps
     networks:
diff --git a/appstore/nodebb/3.12.3/envs/default.env b/appstore/nodebb/3.12.4/envs/default.env
similarity index 100%
rename from appstore/nodebb/3.12.3/envs/default.env
rename to appstore/nodebb/3.12.4/envs/default.env
diff --git a/appstore/nodebb/3.12.3/envs/global.env b/appstore/nodebb/3.12.4/envs/global.env
similarity index 100%
rename from appstore/nodebb/3.12.3/envs/global.env
rename to appstore/nodebb/3.12.4/envs/global.env
diff --git a/appstore/nodebb/3.12.3/scripts/init.sh b/appstore/nodebb/3.12.4/scripts/init.sh
similarity index 100%
rename from appstore/nodebb/3.12.3/scripts/init.sh
rename to appstore/nodebb/3.12.4/scripts/init.sh
diff --git a/appstore/nodebb/3.12.3/scripts/uninstall.sh b/appstore/nodebb/3.12.4/scripts/uninstall.sh
similarity index 100%
rename from appstore/nodebb/3.12.3/scripts/uninstall.sh
rename to appstore/nodebb/3.12.4/scripts/uninstall.sh
diff --git a/appstore/nodebb/3.12.3/scripts/upgrade.sh b/appstore/nodebb/3.12.4/scripts/upgrade.sh
similarity index 100%
rename from appstore/nodebb/3.12.3/scripts/upgrade.sh
rename to appstore/nodebb/3.12.4/scripts/upgrade.sh
diff --git a/appstore/nodebb/4.0.0/.env b/appstore/nodebb/4.0.0/.env
new file mode 100644
index 00000000..c3aaae43
--- /dev/null
+++ b/appstore/nodebb/4.0.0/.env
@@ -0,0 +1,36 @@
+# 数据持久化路径 [必填] 
+NODEBB_ROOT_PATH=/home/nodebb
+
+# WebUI 端口 [必填] 
+PANEL_APP_PORT_HTTP=4567
+
+# 服务地址 [必填] 
+NODEBB_URL=http://127.0.0.1:4567
+
+# 管理员用户名 [必填] 
+NODEBB_ADMIN_USERNAME=
+
+# 管理员密码 [必填] 
+NODEBB_ADMIN_PASSWORD=
+
+# 管理员邮箱 [必填] 
+NODEBB_ADMIN_EMAIL=
+
+# 数据库类型 [必填] 
+NODEBB_DB=postgres
+
+# 数据库 主机地址 [必填] 
+NODEBB_DB_HOST=127.0.0.1
+
+# 数据库 端口 [必填] 
+NODEBB_DB_PORT=5432
+
+# 数据库 名称 [必填] 
+NODEBB_DB_NAME=nodebb
+
+# 数据库 用户名 
+NODEBB_DB_USER=nodebb
+
+# 数据库 密码 
+NODEBB_DB_PASSWORD=
+
diff --git a/appstore/nodebb/4.0.0/conf/setup.json b/appstore/nodebb/4.0.0/conf/setup.json
new file mode 100644
index 00000000..e5efa16d
--- /dev/null
+++ b/appstore/nodebb/4.0.0/conf/setup.json
@@ -0,0 +1,11 @@
+{
+  "defaults": {
+    "$NODEBB_DB": {
+      "host": "$NODEBB_DB_HOST",
+      "port": $NODEBB_DB_PORT,
+      "database": "$NODEBB_DB_NAME",
+      "username": "$NODEBB_DB_USER",
+      "password": "$NODEBB_DB_PASSWORD"
+    }
+  }
+}
diff --git a/appstore/nodebb/4.0.0/data.yml b/appstore/nodebb/4.0.0/data.yml
new file mode 100644
index 00000000..a161316f
--- /dev/null
+++ b/appstore/nodebb/4.0.0/data.yml
@@ -0,0 +1,98 @@
+additionalProperties:
+  formFields:
+    - default: "/home/nodebb"
+      edit: true
+      envKey: NODEBB_ROOT_PATH
+      labelZh: 数据持久化路径
+      labelEn: Data persistence path
+      required: true
+      type: text
+    - default: 4567
+      edit: true
+      envKey: PANEL_APP_PORT_HTTP
+      labelZh: WebUI 端口
+      labelEn: WebUI port
+      required: true
+      rule: paramPort
+      type: number
+    - default: "http://127.0.0.1:4567"
+      edit: true
+      envKey: NODEBB_URL
+      labelZh: 服务地址
+      labelEn: Service address
+      required: true
+      type: text
+    - default: ""
+      edit: true
+      envKey: NODEBB_ADMIN_USERNAME
+      labelZh: 管理员用户名
+      labelEn: Admin Username
+      required: true
+      type: text
+    - default: ""
+      edit: true
+      envKey: NODEBB_ADMIN_PASSWORD
+      labelZh: 管理员密码
+      labelEn: Admin Password
+      required: true
+      type: password
+    - default: ""
+      edit: true
+      envKey: NODEBB_ADMIN_EMAIL
+      labelZh: 管理员邮箱
+      labelEn: Admin Email
+      required: true
+      type: text
+    - default: "postgres"
+      edit: true
+      envKey: NODEBB_DB
+      labelZh: 数据库类型
+      labelEn: Database type
+      required: true
+      type: select
+      values:
+        - label: PostgreSQL
+          value: "postgres"
+        - label: Redis
+          value: "redis"
+        - label: MongoDB
+          value: "mongo"
+    - default: "127.0.0.1"
+      edit: true
+      envKey: NODEBB_DB_HOST
+      labelZh: 数据库 主机地址
+      labelEn: Database Host
+      required: true
+      type: text
+    - default: 5432
+      edit: true
+      envKey: NODEBB_DB_PORT
+      labelZh: 数据库 端口
+      labelEn: Database Port
+      required: true
+      rule: paramPort
+      type: number
+    - default: "nodebb"
+      edit: true
+      envKey: NODEBB_DB_NAME
+      labelZh: 数据库 名称
+      labelEn: Database Name
+      required: true
+      rule: paramCommon
+      type: text
+    - default: "nodebb"
+      edit: true
+      envKey: NODEBB_DB_USER
+      labelZh: 数据库 用户名
+      labelEn: Database Username
+      required: false
+      type: text
+    - default: ""
+      edit: true
+      envKey: NODEBB_DB_PASSWORD
+      labelZh: 数据库 密码
+      labelEn: Database Password
+      random: true
+      required: false
+      rule: paramComplexity
+      type: password
diff --git a/appstore/nodebb/4.0.0/docker-compose.yml b/appstore/nodebb/4.0.0/docker-compose.yml
new file mode 100644
index 00000000..d59e5a1b
--- /dev/null
+++ b/appstore/nodebb/4.0.0/docker-compose.yml
@@ -0,0 +1,25 @@
+networks:
+  1panel-network:
+    external: true
+services:
+  nodebb:
+    container_name: nodebb
+    env_file:
+    - ./envs/global.env
+    - .env
+    environment:
+    - TZ=Asia/Shanghai
+    image: ghcr.io/nodebb/nodebb:4.0.0
+    labels:
+      createdBy: Apps
+    networks:
+    - 1panel-network
+    ports:
+    - ${PANEL_APP_PORT_HTTP}:4567
+    restart: always
+    volumes:
+    - ${NODEBB_ROOT_PATH}/node_modules:/usr/src/app/node_modules
+    - ${NODEBB_ROOT_PATH}/build:/usr/src/app/build
+    - ${NODEBB_ROOT_PATH}/uploads:/usr/src/app/public/uploads
+    - ${NODEBB_ROOT_PATH}/config:/opt/config
+    - ${NODEBB_ROOT_PATH}/setup.json:/usr/src/app/setup.json
diff --git a/appstore/nodebb/4.0.0/envs/default.env b/appstore/nodebb/4.0.0/envs/default.env
new file mode 100644
index 00000000..cd05f46e
--- /dev/null
+++ b/appstore/nodebb/4.0.0/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/appstore/nodebb/4.0.0/envs/global.env b/appstore/nodebb/4.0.0/envs/global.env
new file mode 100644
index 00000000..e10989fe
--- /dev/null
+++ b/appstore/nodebb/4.0.0/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/appstore/nodebb/4.0.0/scripts/init.sh b/appstore/nodebb/4.0.0/scripts/init.sh
new file mode 100644
index 00000000..00b4605f
--- /dev/null
+++ b/appstore/nodebb/4.0.0/scripts/init.sh
@@ -0,0 +1,56 @@
+#!/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
+
+  # setup-2 update dir permissions
+  mkdir -p "$NODEBB_ROOT_PATH"
+  mkdir -p "$NODEBB_ROOT_PATH/node_modules"
+  mkdir -p "$NODEBB_ROOT_PATH/build"
+  mkdir -p "$NODEBB_ROOT_PATH/uploads"
+  mkdir -p "$NODEBB_ROOT_PATH/config"
+
+  # setup-3 初始化参数配置
+  if [ -z "$NODEBB_DB_NAME" ]; then
+    NODEBB_DB_NAME="nodebb"
+  fi
+
+  if [ -z "$NODEBB_DB_USER" ]; then
+    NODEBB_DB_USER=""
+  fi
+
+  if [ -z "$NODEBB_DB_PASSWORD" ]; then
+    NODEBB_DB_PASSWORD=""
+  fi
+
+  SETUP_JSON_PATH="$NODEBB_ROOT_PATH/setup.json"
+  cp ./conf/setup.json "$SETUP_JSON_PATH"
+  sed -i "
+    s|\$NODEBB_DB_HOST|$NODEBB_DB_HOST|g;
+    s|\$NODEBB_DB_PORT|$NODEBB_DB_PORT|g;
+    s|\$NODEBB_DB_NAME|$NODEBB_DB_NAME|g;
+    s|\$NODEBB_DB_USER|$NODEBB_DB_USER|g;
+    s|\$NODEBB_DB_PASSWORD|$NODEBB_DB_PASSWORD|g;
+    s|\$NODEBB_DB|$NODEBB_DB|g
+  " "$SETUP_JSON_PATH"
+
+
+  # setup-4 update dir permissions
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/node_modules"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/build"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/uploads"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/config"
+
+  echo "Check Finish."
+
+else
+  echo "Error: .env file not found."
+fi
diff --git a/appstore/nodebb/4.0.0/scripts/uninstall.sh b/appstore/nodebb/4.0.0/scripts/uninstall.sh
new file mode 100644
index 00000000..c86c4fbc
--- /dev/null
+++ b/appstore/nodebb/4.0.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/nodebb/4.0.0/scripts/upgrade.sh b/appstore/nodebb/4.0.0/scripts/upgrade.sh
new file mode 100644
index 00000000..6cdcf174
--- /dev/null
+++ b/appstore/nodebb/4.0.0/scripts/upgrade.sh
@@ -0,0 +1,44 @@
+#!/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
+
+  # setup-2 update dir permissions
+  mkdir -p "$NODEBB_ROOT_PATH"
+  mkdir -p "$NODEBB_ROOT_PATH/node_modules"
+  mkdir -p "$NODEBB_ROOT_PATH/build"
+  mkdir -p "$NODEBB_ROOT_PATH/uploads"
+  mkdir -p "$NODEBB_ROOT_PATH/config"
+
+  if [ ! -f "$NODEBB_ROOT_PATH/setup.json" ]; then
+    SETUP_JSON_PATH="$NODEBB_ROOT_PATH/setup.json"
+    cp ./conf/setup.json "$SETUP_JSON_PATH"
+    sed -i "
+      s|\$NODEBB_DB_HOST|$NODEBB_DB_HOST|g;
+      s|\$NODEBB_DB_PORT|$NODEBB_DB_PORT|g;
+      s|\$NODEBB_DB_NAME|$NODEBB_DB_NAME|g;
+      s|\$NODEBB_DB_USER|$NODEBB_DB_USER|g;
+      s|\$NODEBB_DB_PASSWORD|$NODEBB_DB_PASSWORD|g;
+      s|\$NODEBB_DB|$NODEBB_DB|g
+    " "$SETUP_JSON_PATH"
+  fi
+
+  # setup-3 update dir permissions
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/node_modules"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/build"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/uploads"
+  chown -R 1001:1001 "$NODEBB_ROOT_PATH/config"
+
+  echo "Check Finish."
+
+else
+  echo "Error: .env file not found."
+fi
diff --git a/dockge/casdoor/docker-compose.yml b/dockge/casdoor/docker-compose.yml
index 13c80e56..313963d8 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.806.0
+    image: casbin/casdoor:v1.807.0
     labels:
       createdBy: Apps
     networks:
diff --git a/dockge/nodebb/docker-compose.yml b/dockge/nodebb/docker-compose.yml
index cf28405c..d59e5a1b 100644
--- a/dockge/nodebb/docker-compose.yml
+++ b/dockge/nodebb/docker-compose.yml
@@ -9,7 +9,7 @@ services:
     - .env
     environment:
     - TZ=Asia/Shanghai
-    image: ghcr.io/nodebb/nodebb:3.12.3
+    image: ghcr.io/nodebb/nodebb:4.0.0
     labels:
       createdBy: Apps
     networks:
diff --git a/dockge/nodebb_3_12_4/.env b/dockge/nodebb_3_12_4/.env
new file mode 100644
index 00000000..c3aaae43
--- /dev/null
+++ b/dockge/nodebb_3_12_4/.env
@@ -0,0 +1,36 @@
+# 数据持久化路径 [必填] 
+NODEBB_ROOT_PATH=/home/nodebb
+
+# WebUI 端口 [必填] 
+PANEL_APP_PORT_HTTP=4567
+
+# 服务地址 [必填] 
+NODEBB_URL=http://127.0.0.1:4567
+
+# 管理员用户名 [必填] 
+NODEBB_ADMIN_USERNAME=
+
+# 管理员密码 [必填] 
+NODEBB_ADMIN_PASSWORD=
+
+# 管理员邮箱 [必填] 
+NODEBB_ADMIN_EMAIL=
+
+# 数据库类型 [必填] 
+NODEBB_DB=postgres
+
+# 数据库 主机地址 [必填] 
+NODEBB_DB_HOST=127.0.0.1
+
+# 数据库 端口 [必填] 
+NODEBB_DB_PORT=5432
+
+# 数据库 名称 [必填] 
+NODEBB_DB_NAME=nodebb
+
+# 数据库 用户名 
+NODEBB_DB_USER=nodebb
+
+# 数据库 密码 
+NODEBB_DB_PASSWORD=
+
diff --git a/dockge/nodebb_3_12_4/conf/setup.json b/dockge/nodebb_3_12_4/conf/setup.json
new file mode 100644
index 00000000..e5efa16d
--- /dev/null
+++ b/dockge/nodebb_3_12_4/conf/setup.json
@@ -0,0 +1,11 @@
+{
+  "defaults": {
+    "$NODEBB_DB": {
+      "host": "$NODEBB_DB_HOST",
+      "port": $NODEBB_DB_PORT,
+      "database": "$NODEBB_DB_NAME",
+      "username": "$NODEBB_DB_USER",
+      "password": "$NODEBB_DB_PASSWORD"
+    }
+  }
+}
diff --git a/dockge/nodebb_3_12_4/docker-compose.yml b/dockge/nodebb_3_12_4/docker-compose.yml
new file mode 100644
index 00000000..731ea616
--- /dev/null
+++ b/dockge/nodebb_3_12_4/docker-compose.yml
@@ -0,0 +1,25 @@
+networks:
+  1panel-network:
+    external: true
+services:
+  nodebb:
+    container_name: nodebb
+    env_file:
+    - ./envs/global.env
+    - .env
+    environment:
+    - TZ=Asia/Shanghai
+    image: ghcr.io/nodebb/nodebb:3.12.4
+    labels:
+      createdBy: Apps
+    networks:
+    - 1panel-network
+    ports:
+    - ${PANEL_APP_PORT_HTTP}:4567
+    restart: always
+    volumes:
+    - ${NODEBB_ROOT_PATH}/node_modules:/usr/src/app/node_modules
+    - ${NODEBB_ROOT_PATH}/build:/usr/src/app/build
+    - ${NODEBB_ROOT_PATH}/uploads:/usr/src/app/public/uploads
+    - ${NODEBB_ROOT_PATH}/config:/opt/config
+    - ${NODEBB_ROOT_PATH}/setup.json:/usr/src/app/setup.json
diff --git a/dockge/nodebb_3_12_4/envs/default.env b/dockge/nodebb_3_12_4/envs/default.env
new file mode 100644
index 00000000..cd05f46e
--- /dev/null
+++ b/dockge/nodebb_3_12_4/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/dockge/nodebb_3_12_4/envs/global.env b/dockge/nodebb_3_12_4/envs/global.env
new file mode 100644
index 00000000..e10989fe
--- /dev/null
+++ b/dockge/nodebb_3_12_4/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai