From 8bb1768592a14a572826ccf9f94c9385f0bf5e8e Mon Sep 17 00:00:00 2001 From: okxlin Date: Wed, 26 Jun 2024 00:21:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0gotify=E5=88=B0=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/gotify/2.5.0/.env.sample | 30 ++++ apps/gotify/2.5.0/data.yml | 235 ++++++++++++++++++++++++++ apps/gotify/2.5.0/docker-compose.yml | 46 +++++ apps/gotify/README.md | 31 ++++ apps/gotify/data.yml | 19 +++ apps/gotify/latest/.env.sample | 30 ++++ apps/gotify/latest/data.yml | 235 ++++++++++++++++++++++++++ apps/gotify/latest/docker-compose.yml | 46 +++++ apps/gotify/logo.png | Bin 0 -> 7232 bytes 9 files changed, 672 insertions(+) create mode 100644 apps/gotify/2.5.0/.env.sample create mode 100644 apps/gotify/2.5.0/data.yml create mode 100644 apps/gotify/2.5.0/docker-compose.yml create mode 100644 apps/gotify/README.md create mode 100644 apps/gotify/data.yml create mode 100644 apps/gotify/latest/.env.sample create mode 100644 apps/gotify/latest/data.yml create mode 100644 apps/gotify/latest/docker-compose.yml create mode 100644 apps/gotify/logo.png 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

+ +

+ + Build Status + + + codecov + + + Go Report Card + + + Matrix + + + Docker Pulls + + + latest release + +

+ +## 介绍 +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 0000000000000000000000000000000000000000..3876434c4e37680b9ee35911939242631c09d461 GIT binary patch literal 7232 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