diff --git a/apps/gotify/2.5.0/.env.sample b/apps/gotify/2.5.0/.env.sample
new file mode 100644
index 00000000..4efde397
--- /dev/null
+++ b/apps/gotify/2.5.0/.env.sample
@@ -0,0 +1,30 @@
+CONTAINER_NAME='gotify'
+GOTIFY_DATABASE_CONNECTION='data/gotify.db'
+GOTIFY_DATABASE_DIALECT='sqlite3'
+GOTIFY_DEFAULTUSER_NAME='admin'
+GOTIFY_DEFAULTUSER_PASS='password_123456'
+GOTIFY_PASSSTRENGTH=10
+GOTIFY_PLUGINSDIR='data/plugins'
+GOTIFY_REGISTRATION='false'
+GOTIFY_SERVER_CORS_ALLOWHEADERS=''
+GOTIFY_SERVER_CORS_ALLOWMETHODS=''
+GOTIFY_SERVER_CORS_ALLOWORIGINS=''
+GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=0
+GOTIFY_SERVER_LISTENADDR=''
+GOTIFY_SERVER_PORT=80
+GOTIFY_SERVER_RESPONSEHEADERS=''
+GOTIFY_SERVER_SSL_CERTFILE=''
+GOTIFY_SERVER_SSL_CERTKEY=''
+GOTIFY_SERVER_SSL_ENABLED='false'
+GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS='false'
+GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE='certs'
+GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED='false'
+GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=''
+GOTIFY_SERVER_SSL_LISTENADDR=''
+GOTIFY_SERVER_SSL_PORT=443
+GOTIFY_SERVER_SSL_REDIRECTTOHTTPS='true'
+GOTIFY_SERVER_STREAM_ALLOWEDORIGINS=''
+GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=45
+GOTIFY_UPLOADEDIMAGESDIR='data/images'
+PANEL_APP_PORT_HTTP=40266
+TIME_ZONE='Asia/Shanghai'
diff --git a/apps/gotify/2.5.0/data.yml b/apps/gotify/2.5.0/data.yml
new file mode 100644
index 00000000..36a2dbea
--- /dev/null
+++ b/apps/gotify/2.5.0/data.yml
@@ -0,0 +1,235 @@
+additionalProperties:
+ formFields:
+ - default: "40266"
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: "Asia/Shanghai"
+ edit: true
+ envKey: TIME_ZONE
+ labelEn: Time Zone
+ labelZh: 时区
+ required: true
+ type: text
+ - default: admin
+ edit: true
+ envKey: GOTIFY_DEFAULTUSER_NAME
+ labelEn: Default User Name
+ labelZh: 默认用户名
+ required: true
+ type: text
+ - default: "password"
+ edit: true
+ envKey: GOTIFY_DEFAULTUSER_PASS
+ labelEn: Default User Password
+ labelZh: 默认用户密码
+ required: false
+ random: true
+ rule: paramComplexity
+ type: password
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_REGISTRATION
+ labelEn: Enable Registration
+ labelZh: 允许注册
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: 10
+ edit: true
+ envKey: GOTIFY_PASSSTRENGTH
+ labelEn: Minimum Password Strength
+ labelZh: 最低密码强度
+ required: true
+ type: number
+ - default: "80"
+ edit: true
+ envKey: GOTIFY_SERVER_PORT
+ labelEn: Internal Container Ports
+ labelZh: 容器内部端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 0
+ edit: true
+ envKey: GOTIFY_SERVER_KEEPALIVEPERIODSECONDS
+ labelEn: Keepalive Period (seconds)
+ labelZh: 保持活跃时间(秒)
+ required: true
+ type: number
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_LISTENADDR
+ labelEn: Listen Address
+ labelZh: 监听地址
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_ENABLED
+ labelEn: Enable SSL
+ labelZh: 启用 SSL
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: "true"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_REDIRECTTOHTTPS
+ labelEn: Redirect to HTTPS
+ labelZh: 重定向到 HTTPS
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LISTENADDR
+ labelEn: SSL Listen Address
+ labelZh: SSL 监听地址
+ required: false
+ type: text
+ - default: 443
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_PORT
+ labelEn: SSL Port
+ labelZh: SSL 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_CERTFILE
+ labelEn: SSL Certificate File (inside container)
+ labelZh: SSL 证书文件 (容器内部)
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_CERTKEY
+ labelEn: SSL Certificate Key (inside container)
+ labelZh: SSL 证书密钥 (容器内部)
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED
+ labelEn: Enable Let's Encrypt
+ labelZh: 启用 Let's Encrypt
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS
+ labelEn: Accept Let's Encrypt TOS
+ labelZh: 接受 Let's Encrypt 条款
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: "certs"
+ disabled: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE
+ labelEn: Let's Encrypt Cache Directory
+ labelZh: Let's Encrypt 缓存目录
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS
+ labelEn: Let's Encrypt Hosts
+ labelZh: Let's Encrypt 域名
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_RESPONSEHEADERS
+ labelEn: Response Headers
+ labelZh: 响应头
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_CORS_ALLOWORIGINS
+ labelEn: CORS Allow Origins
+ labelZh: 允许跨域来源
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_CORS_ALLOWMETHODS
+ labelEn: CORS Allow Methods
+ labelZh: 允许跨域方法
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_CORS_ALLOWHEADERS
+ labelEn: CORS Allow Headers
+ labelZh: 允许跨域头
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_STREAM_ALLOWEDORIGINS
+ labelEn: Allowed origins for websocket connections
+ labelZh: Websocket 连接的允许来源
+ required: false
+ type: text
+ - default: 45
+ edit: true
+ envKey: GOTIFY_SERVER_STREAM_PINGPERIODSECONDS
+ labelEn: The interval in which websocket pings will be sent (seconds)
+ labelZh: 发送 websocket ping 的时间间隔(秒)
+ required: true
+ type: number
+ - default: sqlite3
+ disabled: true
+ envKey: GOTIFY_DATABASE_DIALECT
+ labelEn: Database Dialect
+ labelZh: 数据库方式
+ required: true
+ type: text
+ - default: "data/gotify.db"
+ disabled: true
+ envKey: GOTIFY_DATABASE_CONNECTION
+ labelEn: Database Connection
+ labelZh: 数据库连接
+ required: true
+ type: text
+ - default: "data/images"
+ disabled: true
+ envKey: GOTIFY_UPLOADEDIMAGESDIR
+ labelEn: Uploaded Images Directory
+ labelZh: 上传的图片目录
+ required: true
+ type: text
+ - default: "data/plugins"
+ disabled: true
+ envKey: GOTIFY_PLUGINSDIR
+ labelEn: Plugins Directory
+ labelZh: 插件目录
+ required: true
+ type: text
diff --git a/apps/gotify/2.5.0/docker-compose.yml b/apps/gotify/2.5.0/docker-compose.yml
new file mode 100644
index 00000000..017f70d3
--- /dev/null
+++ b/apps/gotify/2.5.0/docker-compose.yml
@@ -0,0 +1,46 @@
+services:
+ gotify:
+ image: "gotify/server:2.5.0"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:${GOTIFY_SERVER_PORT}"
+ environment:
+ - 'TZ=${TIME_ZONE}'
+ - 'GOTIFY_SERVER_PORT=${GOTIFY_SERVER_PORT}'
+ - 'GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=${GOTIFY_SERVER_KEEPALIVEPERIODSECONDS}'
+ - 'GOTIFY_SERVER_LISTENADDR=${GOTIFY_SERVER_LISTENADDR}'
+ - 'GOTIFY_SERVER_SSL_ENABLED=${GOTIFY_SERVER_SSL_ENABLED}'
+ - 'GOTIFY_SERVER_SSL_REDIRECTTOHTTPS=${GOTIFY_SERVER_SSL_REDIRECTTOHTTPS}'
+ - 'GOTIFY_SERVER_SSL_LISTENADDR=${GOTIFY_SERVER_SSL_LISTENADDR}'
+ - 'GOTIFY_SERVER_SSL_PORT=${GOTIFY_SERVER_SSL_PORT}'
+ - 'GOTIFY_SERVER_SSL_CERTFILE=${GOTIFY_SERVER_SSL_CERTFILE}'
+ - 'GOTIFY_SERVER_SSL_CERTKEY=${GOTIFY_SERVER_SSL_CERTKEY}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED=${GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS=${GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE=${GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=${GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS}'
+ - 'GOTIFY_SERVER_RESPONSEHEADERS=${GOTIFY_SERVER_RESPONSEHEADERS}'
+ - 'GOTIFY_SERVER_CORS_ALLOWORIGINS=${GOTIFY_SERVER_CORS_ALLOWORIGINS}'
+ - 'GOTIFY_SERVER_CORS_ALLOWMETHODS=${GOTIFY_SERVER_CORS_ALLOWMETHODS}'
+ - 'GOTIFY_SERVER_CORS_ALLOWHEADERS=${GOTIFY_SERVER_CORS_ALLOWHEADERS}'
+ - 'GOTIFY_SERVER_STREAM_ALLOWEDORIGINS=${GOTIFY_SERVER_STREAM_ALLOWEDORIGINS}'
+ - 'GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=${GOTIFY_SERVER_STREAM_PINGPERIODSECONDS}'
+ - 'GOTIFY_DATABASE_DIALECT=${GOTIFY_DATABASE_DIALECT}'
+ - 'GOTIFY_DATABASE_CONNECTION=${GOTIFY_DATABASE_CONNECTION}'
+ - 'GOTIFY_DEFAULTUSER_NAME=${GOTIFY_DEFAULTUSER_NAME}'
+ - 'GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS}'
+ - 'GOTIFY_PASSSTRENGTH=${GOTIFY_PASSSTRENGTH}'
+ - 'GOTIFY_UPLOADEDIMAGESDIR=${GOTIFY_UPLOADEDIMAGESDIR}'
+ - 'GOTIFY_PLUGINSDIR=${GOTIFY_PLUGINSDIR}'
+ - 'GOTIFY_REGISTRATION=${GOTIFY_REGISTRATION}'
+ volumes:
+ - ./data:/app/data
+ labels:
+ createdBy: "Apps"
+
+networks:
+ 1panel-network:
+ external: true
diff --git a/apps/gotify/README.md b/apps/gotify/README.md
new file mode 100644
index 00000000..5c01a037
--- /dev/null
+++ b/apps/gotify/README.md
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+gotify/server
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## 介绍
+Gotify 是一个用于通过 Web 套接字实时发送和接收消息的服务器。
diff --git a/apps/gotify/data.yml b/apps/gotify/data.yml
new file mode 100644
index 00000000..58dd56a5
--- /dev/null
+++ b/apps/gotify/data.yml
@@ -0,0 +1,19 @@
+name: Gotify
+tags:
+ - 开发工具
+title: 自托管通知服务器
+description: 自托管通知服务器
+additionalProperties:
+ key: gotify
+ name: Gotify
+ tags:
+ - DevTool
+ shortDescZh: 自托管通知服务器
+ shortDescEn: Self-hosted notification server
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://gotify.net
+ github: https://github.com/gotify/server
+ document: https://gotify.net/docs/
diff --git a/apps/gotify/latest/.env.sample b/apps/gotify/latest/.env.sample
new file mode 100644
index 00000000..4efde397
--- /dev/null
+++ b/apps/gotify/latest/.env.sample
@@ -0,0 +1,30 @@
+CONTAINER_NAME='gotify'
+GOTIFY_DATABASE_CONNECTION='data/gotify.db'
+GOTIFY_DATABASE_DIALECT='sqlite3'
+GOTIFY_DEFAULTUSER_NAME='admin'
+GOTIFY_DEFAULTUSER_PASS='password_123456'
+GOTIFY_PASSSTRENGTH=10
+GOTIFY_PLUGINSDIR='data/plugins'
+GOTIFY_REGISTRATION='false'
+GOTIFY_SERVER_CORS_ALLOWHEADERS=''
+GOTIFY_SERVER_CORS_ALLOWMETHODS=''
+GOTIFY_SERVER_CORS_ALLOWORIGINS=''
+GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=0
+GOTIFY_SERVER_LISTENADDR=''
+GOTIFY_SERVER_PORT=80
+GOTIFY_SERVER_RESPONSEHEADERS=''
+GOTIFY_SERVER_SSL_CERTFILE=''
+GOTIFY_SERVER_SSL_CERTKEY=''
+GOTIFY_SERVER_SSL_ENABLED='false'
+GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS='false'
+GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE='certs'
+GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED='false'
+GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=''
+GOTIFY_SERVER_SSL_LISTENADDR=''
+GOTIFY_SERVER_SSL_PORT=443
+GOTIFY_SERVER_SSL_REDIRECTTOHTTPS='true'
+GOTIFY_SERVER_STREAM_ALLOWEDORIGINS=''
+GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=45
+GOTIFY_UPLOADEDIMAGESDIR='data/images'
+PANEL_APP_PORT_HTTP=40266
+TIME_ZONE='Asia/Shanghai'
diff --git a/apps/gotify/latest/data.yml b/apps/gotify/latest/data.yml
new file mode 100644
index 00000000..36a2dbea
--- /dev/null
+++ b/apps/gotify/latest/data.yml
@@ -0,0 +1,235 @@
+additionalProperties:
+ formFields:
+ - default: "40266"
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: "Asia/Shanghai"
+ edit: true
+ envKey: TIME_ZONE
+ labelEn: Time Zone
+ labelZh: 时区
+ required: true
+ type: text
+ - default: admin
+ edit: true
+ envKey: GOTIFY_DEFAULTUSER_NAME
+ labelEn: Default User Name
+ labelZh: 默认用户名
+ required: true
+ type: text
+ - default: "password"
+ edit: true
+ envKey: GOTIFY_DEFAULTUSER_PASS
+ labelEn: Default User Password
+ labelZh: 默认用户密码
+ required: false
+ random: true
+ rule: paramComplexity
+ type: password
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_REGISTRATION
+ labelEn: Enable Registration
+ labelZh: 允许注册
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: 10
+ edit: true
+ envKey: GOTIFY_PASSSTRENGTH
+ labelEn: Minimum Password Strength
+ labelZh: 最低密码强度
+ required: true
+ type: number
+ - default: "80"
+ edit: true
+ envKey: GOTIFY_SERVER_PORT
+ labelEn: Internal Container Ports
+ labelZh: 容器内部端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 0
+ edit: true
+ envKey: GOTIFY_SERVER_KEEPALIVEPERIODSECONDS
+ labelEn: Keepalive Period (seconds)
+ labelZh: 保持活跃时间(秒)
+ required: true
+ type: number
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_LISTENADDR
+ labelEn: Listen Address
+ labelZh: 监听地址
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_ENABLED
+ labelEn: Enable SSL
+ labelZh: 启用 SSL
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: "true"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_REDIRECTTOHTTPS
+ labelEn: Redirect to HTTPS
+ labelZh: 重定向到 HTTPS
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LISTENADDR
+ labelEn: SSL Listen Address
+ labelZh: SSL 监听地址
+ required: false
+ type: text
+ - default: 443
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_PORT
+ labelEn: SSL Port
+ labelZh: SSL 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_CERTFILE
+ labelEn: SSL Certificate File (inside container)
+ labelZh: SSL 证书文件 (容器内部)
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_CERTKEY
+ labelEn: SSL Certificate Key (inside container)
+ labelZh: SSL 证书密钥 (容器内部)
+ required: false
+ type: text
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED
+ labelEn: Enable Let's Encrypt
+ labelZh: 启用 Let's Encrypt
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: "false"
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS
+ labelEn: Accept Let's Encrypt TOS
+ labelZh: 接受 Let's Encrypt 条款
+ required: true
+ type: select
+ values:
+ - label: "true"
+ value: "true"
+ - label: "false"
+ value: "false"
+ - default: "certs"
+ disabled: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE
+ labelEn: Let's Encrypt Cache Directory
+ labelZh: Let's Encrypt 缓存目录
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS
+ labelEn: Let's Encrypt Hosts
+ labelZh: Let's Encrypt 域名
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_RESPONSEHEADERS
+ labelEn: Response Headers
+ labelZh: 响应头
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_CORS_ALLOWORIGINS
+ labelEn: CORS Allow Origins
+ labelZh: 允许跨域来源
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_CORS_ALLOWMETHODS
+ labelEn: CORS Allow Methods
+ labelZh: 允许跨域方法
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_CORS_ALLOWHEADERS
+ labelEn: CORS Allow Headers
+ labelZh: 允许跨域头
+ required: false
+ type: text
+ - default: ""
+ edit: true
+ envKey: GOTIFY_SERVER_STREAM_ALLOWEDORIGINS
+ labelEn: Allowed origins for websocket connections
+ labelZh: Websocket 连接的允许来源
+ required: false
+ type: text
+ - default: 45
+ edit: true
+ envKey: GOTIFY_SERVER_STREAM_PINGPERIODSECONDS
+ labelEn: The interval in which websocket pings will be sent (seconds)
+ labelZh: 发送 websocket ping 的时间间隔(秒)
+ required: true
+ type: number
+ - default: sqlite3
+ disabled: true
+ envKey: GOTIFY_DATABASE_DIALECT
+ labelEn: Database Dialect
+ labelZh: 数据库方式
+ required: true
+ type: text
+ - default: "data/gotify.db"
+ disabled: true
+ envKey: GOTIFY_DATABASE_CONNECTION
+ labelEn: Database Connection
+ labelZh: 数据库连接
+ required: true
+ type: text
+ - default: "data/images"
+ disabled: true
+ envKey: GOTIFY_UPLOADEDIMAGESDIR
+ labelEn: Uploaded Images Directory
+ labelZh: 上传的图片目录
+ required: true
+ type: text
+ - default: "data/plugins"
+ disabled: true
+ envKey: GOTIFY_PLUGINSDIR
+ labelEn: Plugins Directory
+ labelZh: 插件目录
+ required: true
+ type: text
diff --git a/apps/gotify/latest/docker-compose.yml b/apps/gotify/latest/docker-compose.yml
new file mode 100644
index 00000000..1d294027
--- /dev/null
+++ b/apps/gotify/latest/docker-compose.yml
@@ -0,0 +1,46 @@
+services:
+ gotify:
+ image: "gotify/server:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:${GOTIFY_SERVER_PORT}"
+ environment:
+ - 'TZ=${TIME_ZONE}'
+ - 'GOTIFY_SERVER_PORT=${GOTIFY_SERVER_PORT}'
+ - 'GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=${GOTIFY_SERVER_KEEPALIVEPERIODSECONDS}'
+ - 'GOTIFY_SERVER_LISTENADDR=${GOTIFY_SERVER_LISTENADDR}'
+ - 'GOTIFY_SERVER_SSL_ENABLED=${GOTIFY_SERVER_SSL_ENABLED}'
+ - 'GOTIFY_SERVER_SSL_REDIRECTTOHTTPS=${GOTIFY_SERVER_SSL_REDIRECTTOHTTPS}'
+ - 'GOTIFY_SERVER_SSL_LISTENADDR=${GOTIFY_SERVER_SSL_LISTENADDR}'
+ - 'GOTIFY_SERVER_SSL_PORT=${GOTIFY_SERVER_SSL_PORT}'
+ - 'GOTIFY_SERVER_SSL_CERTFILE=${GOTIFY_SERVER_SSL_CERTFILE}'
+ - 'GOTIFY_SERVER_SSL_CERTKEY=${GOTIFY_SERVER_SSL_CERTKEY}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED=${GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS=${GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE=${GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE}'
+ - 'GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=${GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS}'
+ - 'GOTIFY_SERVER_RESPONSEHEADERS=${GOTIFY_SERVER_RESPONSEHEADERS}'
+ - 'GOTIFY_SERVER_CORS_ALLOWORIGINS=${GOTIFY_SERVER_CORS_ALLOWORIGINS}'
+ - 'GOTIFY_SERVER_CORS_ALLOWMETHODS=${GOTIFY_SERVER_CORS_ALLOWMETHODS}'
+ - 'GOTIFY_SERVER_CORS_ALLOWHEADERS=${GOTIFY_SERVER_CORS_ALLOWHEADERS}'
+ - 'GOTIFY_SERVER_STREAM_ALLOWEDORIGINS=${GOTIFY_SERVER_STREAM_ALLOWEDORIGINS}'
+ - 'GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=${GOTIFY_SERVER_STREAM_PINGPERIODSECONDS}'
+ - 'GOTIFY_DATABASE_DIALECT=${GOTIFY_DATABASE_DIALECT}'
+ - 'GOTIFY_DATABASE_CONNECTION=${GOTIFY_DATABASE_CONNECTION}'
+ - 'GOTIFY_DEFAULTUSER_NAME=${GOTIFY_DEFAULTUSER_NAME}'
+ - 'GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS}'
+ - 'GOTIFY_PASSSTRENGTH=${GOTIFY_PASSSTRENGTH}'
+ - 'GOTIFY_UPLOADEDIMAGESDIR=${GOTIFY_UPLOADEDIMAGESDIR}'
+ - 'GOTIFY_PLUGINSDIR=${GOTIFY_PLUGINSDIR}'
+ - 'GOTIFY_REGISTRATION=${GOTIFY_REGISTRATION}'
+ volumes:
+ - ./data:/app/data
+ labels:
+ createdBy: "Apps"
+
+networks:
+ 1panel-network:
+ external: true
diff --git a/apps/gotify/logo.png b/apps/gotify/logo.png
new file mode 100644
index 00000000..3876434c
Binary files /dev/null and b/apps/gotify/logo.png differ