From 545ea826afce6e2be943b6765353200164539ddd Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Wed, 29 Jul 2026 03:14:44 +0800 Subject: [PATCH] Add Moodist application --- apps/moodist/2.6.1/.env.sample | 2 + apps/moodist/2.6.1/data.yml | 19 ++++++++ apps/moodist/2.6.1/docker-compose.yml | 15 +++++++ apps/moodist/2.6.1/scripts/init.sh | 4 ++ apps/moodist/2.6.1/scripts/uninstall.sh | 4 ++ apps/moodist/2.6.1/scripts/upgrade.sh | 4 ++ apps/moodist/LICENSE | 21 +++++++++ apps/moodist/README.md | 55 +++++++++++++++++++++++ apps/moodist/data.yml | 30 +++++++++++++ apps/moodist/latest/.env.sample | 2 + apps/moodist/latest/data.yml | 19 ++++++++ apps/moodist/latest/docker-compose.yml | 15 +++++++ apps/moodist/latest/scripts/init.sh | 4 ++ apps/moodist/latest/scripts/uninstall.sh | 4 ++ apps/moodist/latest/scripts/upgrade.sh | 4 ++ apps/moodist/logo.png | Bin 0 -> 2809 bytes 16 files changed, 202 insertions(+) create mode 100644 apps/moodist/2.6.1/.env.sample create mode 100644 apps/moodist/2.6.1/data.yml create mode 100644 apps/moodist/2.6.1/docker-compose.yml create mode 100755 apps/moodist/2.6.1/scripts/init.sh create mode 100755 apps/moodist/2.6.1/scripts/uninstall.sh create mode 100755 apps/moodist/2.6.1/scripts/upgrade.sh create mode 100644 apps/moodist/LICENSE create mode 100644 apps/moodist/README.md create mode 100644 apps/moodist/data.yml create mode 100644 apps/moodist/latest/.env.sample create mode 100644 apps/moodist/latest/data.yml create mode 100644 apps/moodist/latest/docker-compose.yml create mode 100755 apps/moodist/latest/scripts/init.sh create mode 100755 apps/moodist/latest/scripts/uninstall.sh create mode 100755 apps/moodist/latest/scripts/upgrade.sh create mode 100644 apps/moodist/logo.png diff --git a/apps/moodist/2.6.1/.env.sample b/apps/moodist/2.6.1/.env.sample new file mode 100644 index 000000000..bc3780719 --- /dev/null +++ b/apps/moodist/2.6.1/.env.sample @@ -0,0 +1,2 @@ +PANEL_APP_PORT_HTTP=8478 +CONTAINER_NAME=moodist diff --git a/apps/moodist/2.6.1/data.yml b/apps/moodist/2.6.1/data.yml new file mode 100644 index 000000000..07e03973b --- /dev/null +++ b/apps/moodist/2.6.1/data.yml @@ -0,0 +1,19 @@ +additionalProperties: + formFields: + - default: 8478 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 访问端口 + label: + en: Web Port + zh: Web 访问端口 + zh-Hant: Web 存取埠 + ja: Web ポート + ko: Web 포트 + ru: Веб-порт + ms: Port Web + pt-br: Porta Web + required: true + rule: paramPort + type: number diff --git a/apps/moodist/2.6.1/docker-compose.yml b/apps/moodist/2.6.1/docker-compose.yml new file mode 100644 index 000000000..6a9b0b016 --- /dev/null +++ b/apps/moodist/2.6.1/docker-compose.yml @@ -0,0 +1,15 @@ +services: + moodist: + image: "ghcr.io/remvze/moodist:v2.6.1" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/moodist/2.6.1/scripts/init.sh b/apps/moodist/2.6.1/scripts/init.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/moodist/2.6.1/scripts/init.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/moodist/2.6.1/scripts/uninstall.sh b/apps/moodist/2.6.1/scripts/uninstall.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/moodist/2.6.1/scripts/uninstall.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/moodist/2.6.1/scripts/upgrade.sh b/apps/moodist/2.6.1/scripts/upgrade.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/moodist/2.6.1/scripts/upgrade.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/moodist/LICENSE b/apps/moodist/LICENSE new file mode 100644 index 000000000..dab63c09d --- /dev/null +++ b/apps/moodist/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 MAZE + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/apps/moodist/README.md b/apps/moodist/README.md new file mode 100644 index 000000000..28bef2787 --- /dev/null +++ b/apps/moodist/README.md @@ -0,0 +1,55 @@ +# Moodist + +## 产品介绍 + +Moodist 是一个免费、开源的环境声音混音器,可在浏览器中组合自然、雨声、城市、场所、交通和噪声等声音,帮助专注、放松或入睡。 + +## 主要功能 + +- 同时叠加多种环境声音并分别调节音量 +- 保存、重命名和重新应用自定义声音预设 +- 提供睡眠计时器、番茄钟、倒计时和呼吸练习 +- 支持通过链接分享声音组合 +- 可安装为渐进式 Web 应用 + +## 访问说明 + +安装后通过 `http://<服务器 IP>:<端口>` 访问,实际端口以 `PANEL_APP_PORT_HTTP` 为准。 + +声音选择、音量、预设和其他个人设置保存在当前浏览器本地,不会写入服务器端目录。清除浏览器站点数据或更换浏览器后,这些设置不会自动迁移;卸载应用不会清除浏览器中已经保存的数据。 + +该应用没有内置身份验证。如需从公网访问,请通过 HTTPS 反向代理限制访问范围。部分浏览器只允许渐进式 Web 应用、媒体会话等能力在安全上下文中完整工作。 + +## 安全与漏洞说明 + +- 当前打包镜像的 Trivy 扫描结果为 `0 Critical / 9 High`。报告涉及 Caddy 基础镜像中的 c-ares、curl/libcurl,以及 Go 标准库和 gRPC。 +- 上游 Caddy 配置只在容器端口上提供 `/var/www/html` 中的静态文件,没有配置 TLS、反向代理、gRPC/xDS、出站 DNS、上传或用户可控的 curl 请求。因此这些 High 项对应的默认服务路径不可达,但仍应在上游发布重建镜像后及时升级。 + +## Introduction + +Moodist is a free and open-source ambient sound mixer. It lets you layer sounds from nature, rain, cities, places, transport, and noise for focus, relaxation, or sleep. + +## Features + +- Layer multiple ambient sounds and adjust each level independently +- Save, rename, and reapply custom sound presets +- Sleep timer, Pomodoro, countdown, and breathing tools +- Share sound mixes through links +- Installable progressive web app + +## Usage And Security Notes + +Open the app at `http://:` using the Web port configured during installation. + +Sound selection, volume, presets, and other personal settings are stored in the current browser rather than a server-side data directory. Clearing site data or changing browsers does not migrate them, and uninstalling the container does not clear browser-local data. + +Moodist has no built-in authentication. Restrict public exposure through an HTTPS reverse proxy. Some PWA and media-session capabilities require a secure browser context. + +The packaged image scans as `0 Critical / 9 High`, covering c-ares, curl/libcurl, the Go standard library, and gRPC in the Caddy base image. The shipped Caddyfile only serves static files from `/var/www/html`; it configures no TLS, reverse proxy, gRPC/xDS, outbound DNS, upload path, or user-controlled curl request. Those High paths are not reachable through the default deployment, but the image should still be upgraded after upstream rebuilds it with fixed packages. + +## References + +- Project and self-hosting: +- License: (MIT) +- Logo: +- Bundled audio includes upstream-declared Pixabay Content License and CC0 assets; see the project's license notes before redistribution. diff --git a/apps/moodist/data.yml b/apps/moodist/data.yml new file mode 100644 index 000000000..0b4f28ce4 --- /dev/null +++ b/apps/moodist/data.yml @@ -0,0 +1,30 @@ +name: Moodist +tags: + - Tool +title: 专注与放松的环境声音混音器 +description: 专注与放松的环境声音混音器 +additionalProperties: + key: moodist + name: Moodist + tags: + - Tool + shortDescZh: 专注与放松的环境声音混音器 + shortDescEn: Ambient sound mixer for focus and calm + description: + en: Ambient sound mixer for focus, relaxation, and sleep + zh: 用于专注、放松和睡眠的环境声音混音器 + zh-Hant: 用於專注、放鬆與睡眠的環境聲音混音器 + ja: 集中、リラックス、睡眠のための環境音ミキサー + ko: 집중, 휴식, 수면을 위한 환경음 믹서 + ru: Микшер фоновых звуков для концентрации, отдыха и сна + ms: Pengadun bunyi suasana untuk fokus, bersantai dan tidur + pt-br: Mixer de sons ambientes para foco, relaxamento e sono + type: tool + crossVersionUpdate: true + limit: 0 + website: https://moodist.mvze.net/ + github: https://github.com/remvze/moodist + document: https://github.com/remvze/moodist#readme + architectures: + - amd64 + - arm64 diff --git a/apps/moodist/latest/.env.sample b/apps/moodist/latest/.env.sample new file mode 100644 index 000000000..bc3780719 --- /dev/null +++ b/apps/moodist/latest/.env.sample @@ -0,0 +1,2 @@ +PANEL_APP_PORT_HTTP=8478 +CONTAINER_NAME=moodist diff --git a/apps/moodist/latest/data.yml b/apps/moodist/latest/data.yml new file mode 100644 index 000000000..07e03973b --- /dev/null +++ b/apps/moodist/latest/data.yml @@ -0,0 +1,19 @@ +additionalProperties: + formFields: + - default: 8478 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 访问端口 + label: + en: Web Port + zh: Web 访问端口 + zh-Hant: Web 存取埠 + ja: Web ポート + ko: Web 포트 + ru: Веб-порт + ms: Port Web + pt-br: Porta Web + required: true + rule: paramPort + type: number diff --git a/apps/moodist/latest/docker-compose.yml b/apps/moodist/latest/docker-compose.yml new file mode 100644 index 000000000..10f4265f2 --- /dev/null +++ b/apps/moodist/latest/docker-compose.yml @@ -0,0 +1,15 @@ +services: + moodist: + image: "ghcr.io/remvze/moodist:latest" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/moodist/latest/scripts/init.sh b/apps/moodist/latest/scripts/init.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/moodist/latest/scripts/init.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/moodist/latest/scripts/uninstall.sh b/apps/moodist/latest/scripts/uninstall.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/moodist/latest/scripts/uninstall.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/moodist/latest/scripts/upgrade.sh b/apps/moodist/latest/scripts/upgrade.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/moodist/latest/scripts/upgrade.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/moodist/logo.png b/apps/moodist/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fe3a1fbadd6cdd25d71323e4da874415f4151ef4 GIT binary patch literal 2809 zcmVYcXx%wQ00001bW%=J z06^y0W&i*RM@d9MRCwC$o$F$wDiDAZ6K*PCjBV3&yXXDi@_^ixBuX*H-Q~w_n|k@g zVVD_a$ZmJ1?N@BOq_!q;8u!|~3D|41CUCEfnSi}EVhZ-!dVMhf)W z6n_KsezVYPGbB;3jquk%uT79dy*9u<=vQw4pj9glM*ty2Nc;nihvN023rs*+)s!*L z8KZSo0)lgMXNJbG5x|_EbQ9#XZXkYP=z~CJr%_`9`|zUBn3OF)MH_ERlCiflLZ2&k zy4hF<^GS9#Xj}%8Ax5DXi-C-k+4?#cG%2a$qix+)qIGpk-ILIgybN@KWh*TlrxiM4 z-HxcDw!c}~fA(`R`5`nWXH<$-nSSPVdG^PgIH0TzHm&5b=={?``2%PSVA)i4+fw?* zY%h?4JGJ~T$PyFF{WU*Bc~h9UnvBraoj1? zbD@Q7aMPdfN_fpICq&)q2r5b3=;NJu2%vsr@+=|h=FRYWwuH=ucFY~@C$@q}->Sba zK7hu|GA-Kgt)62I5Kl#v707x`hY9S=l|H~sh?&sDP|-^F4{5}l*w$L-T9cZ00B9;{ zO!sf(LiJztJ2P`Xo2#(rK^I0ysl5+u`wv?EJ2uqxT~FSES-*brrGAID2lUn2a!F{? z8D?u?Ky~BJ$fce9xans*&~T?mqB-|qsJnSxJqy~*5WI3XL0o-e4NiRh?Q3FswZp7X zs+uF$30iqu9k~GXQFWq`N)MVf&Ppb}+r_-+E7XASp!a7b_q?6e)pMXRV*34h{en(I zXrUDyw6D)J^vQ$9TDsU}PFK%?2I^(9cfVW4JuRfjb~W?gd!(nuC{dqP$AzGcq6n^Xm1|AQ@y;UiEj@Fw2jT`;OgHJCk z@+45p2MhX7^RY{C0WC{&^v4WnQYq;OI%uaEemndZ@HBqGofT?>L5X_wLj5CpizB#J!tMt zlo4ps@f*-eJQjiu!_T8wu5YT1p$8!Zb9N01qSb%305mDz>@69syQ&dQIM#kF*ICX( zXg^rPXlu_F&k2sbw;tq(Rj+rP39>#We&b_b0_7+oxvx5`fmq5CkCI{O_BBf;2xL(r=qpZwK4^hfNH`M6cVNAQ_|R51{1~6R zbmQx!iDEqoT3i1L0#;olxDrx((D#{*J$T|qKypFj#`(+`cAUq8D*>E?9=w8KGwuSb zwVyx9teyZ}=uy}Q4xnU+zC}CSI7LK-5q@6@vci6ioulQBRoed)7U~3JZvwROQ>AgC z18~t^^E$OrdW@FMUD+^(qnynzs%O}guATr*bVo}wPTSNs8BAX*&CP3iPd4mRN>XD4 z))N%SW9UNL!Bn~yE~t2o=@2)Gg#X2uu^+75+xQv`gZ>c*0)U^)Vkg<73ft6=L+p>CwXD_F$}GJlA-U{QBCnNY zJ?Ls-BZWuE1s88o$%;F!)d!E~mkH3yhj!5z;)?+9&3Uhlg__gBA)aF^M8`@4R)d`7 zgZ3Q@jJo@t*W|`JPuy|!Up8nRVGO(>5M9Zf-TL)K4|*J*{Hvg!C?2_G`gsE}kM`K2 z%6r=60y0i6gK7M_iD~?X!9+6{OvYji4W`Ei^_r&Xbve`2cLIzPli3N7Di*fegX;eBg&Zp+*Yd?BOk~dt?G}nEAQY5c>iJ4pDEf*m zGcB-C_D%?a|`r`+c`^(G^=>-hfV8W?mUOZ9#u| zXocEfKZosSsS|zqpZa*2)QQ67?U1IW{8QdNJxPV1KE>Hx1L2ZMDlQ#J7!0}6fy7L+ zXgbg~6R$Rz;dZl5eer^`acQ3(iCjj*%u3y`v`-#emC%#{KD)GUTtr!U zVK|j|Gb*A~bhLhNWWnVMMU+xPK4LpH@Jgsb_{GC=)!`bXS$78-YGZ9;E~deh%BvL)(`e{;@usJHlaP=CPpZf%2li(e+U#jow#?Y2j~+ij0} zx7!}|?p|9PE&=&PsUI=FAoc|0SHqr&{6gGwh+hPIHuCD+_qhHCU&!=Sx?a|$00000 LNkvXXu0mjfr!Z;` literal 0 HcmV?d00001