From 5d7685914e376a2cbc136ac44458f357fb0cfbeb Mon Sep 17 00:00:00 2001 From: okxlin Date: Tue, 25 Jun 2024 21:24:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0ntfy=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/ntfy/2.11.0/.env.sample | 6 +++++ apps/ntfy/2.11.0/data.yml | 39 ++++++++++++++++++++++++++++ apps/ntfy/2.11.0/docker-compose.yml | 29 +++++++++++++++++++++ apps/ntfy/README.md | 23 ++++++++++++++++ apps/ntfy/data.yml | 19 ++++++++++++++ apps/ntfy/latest/.env.sample | 6 +++++ apps/ntfy/latest/data.yml | 39 ++++++++++++++++++++++++++++ apps/ntfy/latest/docker-compose.yml | 29 +++++++++++++++++++++ apps/ntfy/logo.png | Bin 0 -> 5552 bytes 9 files changed, 190 insertions(+) create mode 100644 apps/ntfy/2.11.0/.env.sample create mode 100644 apps/ntfy/2.11.0/data.yml create mode 100644 apps/ntfy/2.11.0/docker-compose.yml create mode 100644 apps/ntfy/README.md create mode 100644 apps/ntfy/data.yml create mode 100644 apps/ntfy/latest/.env.sample create mode 100644 apps/ntfy/latest/data.yml create mode 100644 apps/ntfy/latest/docker-compose.yml create mode 100644 apps/ntfy/logo.png diff --git a/apps/ntfy/2.11.0/.env.sample b/apps/ntfy/2.11.0/.env.sample new file mode 100644 index 00000000..a36385e5 --- /dev/null +++ b/apps/ntfy/2.11.0/.env.sample @@ -0,0 +1,6 @@ +CONTAINER_NAME="ntfy" +PANEL_APP_PORT_HTTP=40265 +APP_PORT_INTERNAL=80 +PGID=1000 +PUID=1000 +TIME_ZONE="Asia/Shanghai" diff --git a/apps/ntfy/2.11.0/data.yml b/apps/ntfy/2.11.0/data.yml new file mode 100644 index 00000000..5332a75f --- /dev/null +++ b/apps/ntfy/2.11.0/data.yml @@ -0,0 +1,39 @@ +additionalProperties: + formFields: + - default: "40265" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "80" + edit: true + envKey: APP_PORT_INTERNAL + labelEn: Internal Container Ports + labelZh: 容器内部端口 + required: true + rule: paramPort + type: number + - default: "Asia/Shanghai" + edit: true + envKey: TIME_ZONE + labelEn: Time Zone + labelZh: 时区 + required: true + type: text + - default: "1000" + edit: true + envKey: PUID + labelEn: User ID + labelZh: 用户 ID + required: true + type: number + - default: "1000" + edit: true + envKey: PGID + labelEn: Group ID + labelZh: 组 ID + required: true + type: number diff --git a/apps/ntfy/2.11.0/docker-compose.yml b/apps/ntfy/2.11.0/docker-compose.yml new file mode 100644 index 00000000..848a72e5 --- /dev/null +++ b/apps/ntfy/2.11.0/docker-compose.yml @@ -0,0 +1,29 @@ +services: + ntfy: + image: "binwiederhier/ntfy:v2.11.0" + container_name: ${CONTAINER_NAME} + command: + - serve + environment: + - TZ=${TIME_ZONE} + user: ${PUID}:${PGID} + volumes: + - ./data/cache/ntfy:/var/cache/ntfy + - ./data/ntfy:/etc/ntfy + ports: + - "${PANEL_APP_PORT_HTTP}:${APP_PORT_INTERNAL}" + restart: always + networks: + - 1panel-network + healthcheck: + test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:${APP_PORT_INTERNAL}/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"] + interval: 60s + timeout: 10s + retries: 3 + start_period: 40s + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/ntfy/README.md b/apps/ntfy/README.md new file mode 100644 index 00000000..d5a15155 --- /dev/null +++ b/apps/ntfy/README.md @@ -0,0 +1,23 @@ +![ntfy](https://github.com/binwiederhier/ntfy/raw/main/web/public/static/images/ntfy.png) + +# ntfy.sh +## Send push notifications to your phone or desktop via PUT/POST +[![Release](https://img.shields.io/github/release/binwiederhier/ntfy.svg?color=success&style=flat-square)](https://github.com/binwiederhier/ntfy/releases/latest) +[![Go Reference](https://pkg.go.dev/badge/heckel.io/ntfy.svg)](https://pkg.go.dev/heckel.io/ntfy/v2) +[![Tests](https://github.com/binwiederhier/ntfy/workflows/test/badge.svg)](https://github.com/binwiederhier/ntfy/actions) +[![Go Report Card](https://goreportcard.com/badge/github.com/binwiederhier/ntfy)](https://goreportcard.com/report/github.com/binwiederhier/ntfy) +[![codecov](https://codecov.io/gh/binwiederhier/ntfy/branch/main/graph/badge.svg?token=A597KQ463G)](https://codecov.io/gh/binwiederhier/ntfy) +[![Discord](https://img.shields.io/discord/874398661709295626?label=Discord)](https://discord.gg/cT7ECsZj9w) +[![Matrix](https://img.shields.io/matrix/ntfy:matrix.org?label=Matrix)](https://matrix.to/#/#ntfy:matrix.org) +[![Matrix space](https://img.shields.io/matrix/ntfy-space:matrix.org?label=Matrix+space)](https://matrix.to/#/#ntfy-space:matrix.org) +[![Healthcheck](https://healthchecks.io/badge/68b65976-b3b0-4102-aec9-980921/kcoEgrLY.svg)](https://ntfy.statuspage.io/) +[![Gitpod](https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/binwiederhier/ntfy) + +**ntfy** (pronounced "*notify*") is a simple HTTP-based [pub-sub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) +notification service. With ntfy, you can **send notifications to your phone or desktop via scripts** from any computer, +**without having to sign up or pay any fees**. If you'd like to run your own instance of the service, you can easily do +so since ntfy is open source. + +You can access the free version of ntfy at **[ntfy.sh](https://ntfy.sh)**. There is also an [open-source Android app](https://github.com/binwiederhier/ntfy-android) +available on [Google Play](https://play.google.com/store/apps/details?id=io.heckel.ntfy) or [F-Droid](https://f-droid.org/en/packages/io.heckel.ntfy/), +as well as an [open source iOS app](https://github.com/binwiederhier/ntfy-ios) available on the [App Store](https://apps.apple.com/us/app/ntfy/id1625396347). diff --git a/apps/ntfy/data.yml b/apps/ntfy/data.yml new file mode 100644 index 00000000..84aeb5c1 --- /dev/null +++ b/apps/ntfy/data.yml @@ -0,0 +1,19 @@ +name: ntfy +tags: + - 开发工具 +title: 基于 HTTP 的简单 pub-sub 通知服务 +description: 基于 HTTP 的简单 pub-sub 通知服务 +additionalProperties: + key: ntfy + name: ntfy + tags: + - DevTool + shortDescZh: 基于 HTTP 的简单 pub-sub 通知服务 + shortDescEn: A simple HTTP-based pub-sub notification service + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://ntfy.sh/ + github: https://github.com/binwiederhier/ntfy + document: https://ntfy.sh/docs diff --git a/apps/ntfy/latest/.env.sample b/apps/ntfy/latest/.env.sample new file mode 100644 index 00000000..a36385e5 --- /dev/null +++ b/apps/ntfy/latest/.env.sample @@ -0,0 +1,6 @@ +CONTAINER_NAME="ntfy" +PANEL_APP_PORT_HTTP=40265 +APP_PORT_INTERNAL=80 +PGID=1000 +PUID=1000 +TIME_ZONE="Asia/Shanghai" diff --git a/apps/ntfy/latest/data.yml b/apps/ntfy/latest/data.yml new file mode 100644 index 00000000..5332a75f --- /dev/null +++ b/apps/ntfy/latest/data.yml @@ -0,0 +1,39 @@ +additionalProperties: + formFields: + - default: "40265" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "80" + edit: true + envKey: APP_PORT_INTERNAL + labelEn: Internal Container Ports + labelZh: 容器内部端口 + required: true + rule: paramPort + type: number + - default: "Asia/Shanghai" + edit: true + envKey: TIME_ZONE + labelEn: Time Zone + labelZh: 时区 + required: true + type: text + - default: "1000" + edit: true + envKey: PUID + labelEn: User ID + labelZh: 用户 ID + required: true + type: number + - default: "1000" + edit: true + envKey: PGID + labelEn: Group ID + labelZh: 组 ID + required: true + type: number diff --git a/apps/ntfy/latest/docker-compose.yml b/apps/ntfy/latest/docker-compose.yml new file mode 100644 index 00000000..1106017d --- /dev/null +++ b/apps/ntfy/latest/docker-compose.yml @@ -0,0 +1,29 @@ +services: + ntfy: + image: "binwiederhier/ntfy:latest" + container_name: ${CONTAINER_NAME} + command: + - serve + environment: + - TZ=${TIME_ZONE} + user: ${PUID}:${PGID} + volumes: + - ./data/cache/ntfy:/var/cache/ntfy + - ./data/ntfy:/etc/ntfy + ports: + - "${PANEL_APP_PORT_HTTP}:${APP_PORT_INTERNAL}" + restart: always + networks: + - 1panel-network + healthcheck: + test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:${APP_PORT_INTERNAL}/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"] + interval: 60s + timeout: 10s + retries: 3 + start_period: 40s + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/ntfy/logo.png b/apps/ntfy/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4c9c3b26335a21d537fa240387d0a5f3dad981 GIT binary patch literal 5552 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%0ACacOfR@NlqU+0~UJKW_066Q;tL zCne)L>gzX|4bT4Qxc>b&8jbcglntz?04gf>OC$YaN`|F)Jf%($c__wUFn!G8uqH?j>LF=sXj8y>XY@#_=6XNMgn$;O8VjHDSV5E)$@ht(9D4i&HR4&dD zN|b<(Wy`(WlC2`3`5-t+sJ0{B4FxJRrzoU|&vR)5$m2YUuF|Kp6vyRj-K?wy?U&CC zU4-P0oFSi>;;q=sR`9KkXF%Jjls=Yf`(*(o3~_9CwE26u>|mDcWZjqMTeP5C;RAzb z@Zq7edxv$We747zmpzRx?zx2)QA750Z$d0n>E4eGh*Z=a$|n*v$3*kj!#1KBjx)oq zs3aHr-8mm`VhO|rfC?Al!=g4Uj&ItBgVB~J;6nwT`ncFVsoadJ&IW;vYJW;?7 zh|9c{M+r-4$N?~Uwjg5Y57m%}ykQjFT{&b-@$3jM1a4DgwXVufOvNWHF(OZj@4riZ zO!14b_8#*v2{6qCPIzBgsMMGH%gut$xy?i@0>oF>70p1J3i2fR39!%>Q6U50y-)Yy zs_;bf1vtauT{J8+@sEi|Mix&n93%XPuZlfNb;`r~RA`g@1z%?vl8M?_o{J~X-@Q~Y zzC9B%zNf^$wdlCv3mYxHq2JfH)*LvV7wG&$F;Z#4TU$ zO2N($d8`>MQIk03y;?9dJU*jUtJB>^Kz4rQdgRl^zHa2DiO_#1iVlru#C&r~9{*FQ zNv7<>BGr$7vrII%H><<)jB6?VEc9PWd<=ZwL|PAc>v`{~eaIK5C;f&-2NlJP7IlQh z{)f@{{x|n18`4m*vZvqjc!o_PcSX;{h{FPBmSi1Db&y@jqzD9Oz5CL zcxFNVF4!ynz!M)?Fm5% zsqW>$j}RjD!D(kJ3LF;mXD23oEL3&+f+fjN866aDtMl&NM}K}Q_dgi7c77w^eXMnh zRGXgKT)*u&1Plwb_z>rh0peC_i$n#cC|AGm5_kDd2=bHpH_C*!OfOxXfY5)}Ei46% zqTdyU4&FU;DHI6pfF|*JhH1v&VpK0sdeaqtbEgB@ltu=|*P{7dm9ft=#ph?4J;T^u zV4GuXb&i*W1y8&6dq3DFUtfpqeG!eGh>+DGUNr&YjKG!jFwVWUj`Q?ScM{r;o8SDo zs^J+&=Mh8<6N?Dw^2Ef7pCr`ISgEU_A6Kf z?y8JS;G@pFWJ~aq1qy7hSd%uetJhsX@nrgs2M4NRjB;1#5E;9nRgTMe-xM^pdO%+& zRJX`cSmCE6ss<5}CC`p79Pv1A{i{NNJqrj}srqm;}o8G@l;>_!I(yRu7UO>V9-*w%0yrjeLlreGD z+Ck*)tJ%kwS|MGO)x*vZCw^Q^E)FOO`6U%IA9btN`wGP-)$QPeC7H!+jQiXrLGUHo z?jU$-2XBM^RqP(6q|Xicm!%GtrlCYxl>NMbc;U@{7gdzcC@%D8g!ohh6KzMmGBHeu z66-A%oW)8$Lw~K!Nr+U|;xVBnS;Ci#7nws@u#DsIPQf>-NL1Mugt1vpZ*BS|??U1X zw?*&R1oT8^%>_|o*g)uW%f816EgQ=Z;AwG~hJ0@ICeX#zO!kd)7d^wQ`HwndQ$E-K zWLNaT9PG&UzMh|tT8`0tS#-OO%dYNr7#*XObx$HRQ$&TWr~Pvj;};cX4Ix3HYiVEmllsBtHeYzdO@59C1%1})M%Gj!0A30Qjm1K{ z%6?o}Tp68{b@($p=NcS#JnT$<=issUg1%l4U-#L#3Aq@@lW7s+R{o7TfLW7%{KsAE zrd?7d+xqT*747UYdFfyWFMc}Z8yc;%`03G9w}~N>6^R7&gVRl$80#B-w(bU`BmHG3388|`i_zW z5QRL^K%5lYXwcpK0Xr|DBptkoqPa@+8U7vtPvzj|?mz3rpzIK8Gm^ylQz8z}t5@Ni z1*dVp5Ze2a(ObE@6gxdw8~Lm~TOL5!Qx$D$SCjv4*WN)?DZ4{#rV~DpqLLc5v9ftS!r>17`C{%GnK6gppzW?E4OgonrR>p3wY}e6*QgfnHFM%PBS`I+cwzLJb%B7 z1X!8s@o~LImWC?bh+H|ux;}B-b-rh|vzKaU|HMO@KRL#o^<&G&bhiS&o=+jyu-q^` zVGz;$@Yln4N0ZR7ydY;$C)L5y@2=;WEdb)z&YKmVjaC=I$e-wJQ+%Jx7S2WuN%1FL z#>B%t!75F-eZR$lEgpfdNEB02&?6?8nMmpwOA<2)y=Q0Ix~%xg>AC7d$}K_;fnljM zMMLYlW>Zb;es2>P2CIf#GC+NkUR5r#3gzZzS$L@1;it}gE~H&q<+8Argiv(*cm5Ak zX=&ttN9sweW7mzq1h0aFuvrqxt8A+0v(0dqao44pf`PQSC_=--Ckcgs&@faDS4ctt z;OhCvRNSqdA=|*_^QN}wdS_lZEm^NrbGtJ4XlZiZ9yYy``9g;a+^FN8UAyp&a{5De zevjkt3nzr5_g8r^Kh_?bo=(~f%Ikb2A1Gp&1p}fjfpE7Kx2SVf!9KN6Fu|xkea>ClQY>&UT`KBS+kwF!wuH}eqxX_IZ2fhy-18wj&dSrOmNc7g zUb!vjQ*jxT({e|ivgR$2=urJi!_(p~^zkZwZXduD|8smPRXO7-u#;xw%F<_7o>@G_ z+YF$wT}vmPXdXO!uGrCg-pNd1?#@GGlKPmjB3N|dT&Ni$m&bw6QzaB*+rm5eq^dTWGJ{BijJC)WrZ=0- zf;k)E{`a~&vsNkUGrUWMCkI{7{E;dSWaqOJ6K+4N1>Dak>mPS6edQ)GM<}E3Bsc}Y+EYf0lG*T%F^|Y1Ff#@T`QFMnhtXsLA2P!h%=^Dx;n{vs_$eYn zj3T?p_P^nX=nIC#e-fPN%l})`ZLR|35SL{pCeX_s6C>%Z^K}_Y`+t}E2s{I@rs7|9 lRWhdpp0x`lc$Cb01