From c0ad37656bfb685427bec1bbd38883d581bdda73 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Fri, 24 Jan 2025 13:09:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=20Glance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- .github/README.md | 1 + README.md | 1 + apps/glance/0.6.4/conf/glance.yml | 68 +++++++++++++++++++++++++ apps/glance/0.6.4/data.yml | 17 +++++++ apps/glance/0.6.4/docker-compose.yml | 25 +++++++++ apps/glance/0.6.4/envs/default.env | 2 + apps/glance/0.6.4/envs/global.env | 2 + apps/glance/0.6.4/scripts/init.sh | 22 ++++++++ apps/glance/0.6.4/scripts/uninstall.sh | 10 ++++ apps/glance/0.6.4/scripts/upgrade.sh | 24 +++++++++ apps/glance/README.md | 30 +++++++++++ apps/glance/data.yml | 14 +++++ apps/glance/logo.png | Bin 0 -> 7946 bytes 13 files changed, 216 insertions(+) create mode 100644 apps/glance/0.6.4/conf/glance.yml create mode 100644 apps/glance/0.6.4/data.yml create mode 100644 apps/glance/0.6.4/docker-compose.yml create mode 100644 apps/glance/0.6.4/envs/default.env create mode 100644 apps/glance/0.6.4/envs/global.env create mode 100644 apps/glance/0.6.4/scripts/init.sh create mode 100644 apps/glance/0.6.4/scripts/uninstall.sh create mode 100644 apps/glance/0.6.4/scripts/upgrade.sh create mode 100644 apps/glance/README.md create mode 100644 apps/glance/data.yml create mode 100644 apps/glance/logo.png diff --git a/.github/README.md b/.github/README.md index f7fabdd1..e3717970 100644 --- a/.github/README.md +++ b/.github/README.md @@ -76,6 +76,7 @@ | 🟢 | | Ghost | https://ghost.org/ | 用于现代出版、会员制、订阅和通讯的人博客系统 | | | 🟢 | | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea | | 🟢 | | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea | +| 🟢 | | Glance | https://github.com/glanceapp/glance/ | 一个自托管的仪表板,将所有您的订阅源放在一个地方 | | | 🟢 | | Halo | https://halo.run/ | 强大易用的开源建站工具 | | | 🟢 | | Homarr | https://homarr.dev/ | 一个时尚、现代化的仪表板 | | | 🟢 | | ikaros | https://github.com/Suwmlee/ikaros/ | 打通下载软件与媒体服务,安心享受影片 | | diff --git a/README.md b/README.md index db9888c4..2bc3c562 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ | 🟢 | | Ghost | https://ghost.org/ | 用于现代出版、会员制、订阅和通讯的人博客系统 | | | 🟢 | | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea | | 🟢 | | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea | +| 🟢 | | Glance | https://github.com/glanceapp/glance/ | 一个自托管的仪表板,将所有您的订阅源放在一个地方 | | | 🟢 | | Halo | https://halo.run/ | 强大易用的开源建站工具 | | | 🟢 | | Homarr | https://homarr.dev/ | 一个时尚、现代化的仪表板 | | | 🟢 | | ikaros | https://github.com/Suwmlee/ikaros/ | 打通下载软件与媒体服务,安心享受影片 | | diff --git a/apps/glance/0.6.4/conf/glance.yml b/apps/glance/0.6.4/conf/glance.yml new file mode 100644 index 00000000..6417cdda --- /dev/null +++ b/apps/glance/0.6.4/conf/glance.yml @@ -0,0 +1,68 @@ +server: + port: 8080 + assets-path: /app/assets +pages: + - name: Home + columns: + - size: small + widgets: + - type: calendar + + - type: rss + limit: 10 + collapse-after: 3 + cache: 3h + feeds: + - url: https://ciechanow.ski/atom.xml + - url: https://www.joshwcomeau.com/rss.xml + title: Josh Comeau + - url: https://samwho.dev/rss.xml + - url: https://awesomekling.github.io/feed.xml + - url: https://ishadeed.com/feed.xml + title: Ahmad Shadeed + + - type: twitch-channels + channels: + - theprimeagen + - cohhcarnage + - christitustech + - blurbs + - asmongold + - jembawls + + - size: full + widgets: + - type: hacker-news + + - type: videos + channels: + - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling + - UCv6J_jJa8GJqFwQNgNrMuww # ServeTheHome + - UCOk-gHyjcWZNj3Br4oxwh0A # Techno Tim + + - type: reddit + subreddit: selfhosted + + - size: small + widgets: + - type: weather + location: London, United Kingdom + + - type: markets + markets: + - symbol: SPY + name: S&P 500 + - symbol: BTC-USD + name: Bitcoin + - symbol: NVDA + name: NVIDIA + - symbol: AAPL + name: Apple + - symbol: MSFT + name: Microsoft + - symbol: GOOGL + name: Google + - symbol: AMD + name: AMD + - symbol: RDDT + name: Reddit diff --git a/apps/glance/0.6.4/data.yml b/apps/glance/0.6.4/data.yml new file mode 100644 index 00000000..eacce78b --- /dev/null +++ b/apps/glance/0.6.4/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: "/home/app_name" + edit: true + envKey: APP_NAME_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number diff --git a/apps/glance/0.6.4/docker-compose.yml b/apps/glance/0.6.4/docker-compose.yml new file mode 100644 index 00000000..8380ba8c --- /dev/null +++ b/apps/glance/0.6.4/docker-compose.yml @@ -0,0 +1,25 @@ +networks: + 1panel-network: + external: true + +services: + glance: + image: glanceapp/glance:v0.6.4 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${APP_NAME_ROOT_PATH}/app/glance.yml:/app/glance.yml + - ${APP_NAME_ROOT_PATH}/app/assets:/app/assets + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + environment: + - TZ=Asia/Shanghai diff --git a/apps/glance/0.6.4/envs/default.env b/apps/glance/0.6.4/envs/default.env new file mode 100644 index 00000000..cd05f46e --- /dev/null +++ b/apps/glance/0.6.4/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/glance/0.6.4/envs/global.env b/apps/glance/0.6.4/envs/global.env new file mode 100644 index 00000000..e10989fe --- /dev/null +++ b/apps/glance/0.6.4/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/glance/0.6.4/scripts/init.sh b/apps/glance/0.6.4/scripts/init.sh new file mode 100644 index 00000000..2195dc92 --- /dev/null +++ b/apps/glance/0.6.4/scripts/init.sh @@ -0,0 +1,22 @@ +#!/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 + + mkdir -p "$APP_NAME_ROOT_PATH" + mkdir -p "$APP_NAME_ROOT_PATH/app" + + cp ./conf/glance.yml "$APP_NAME_ROOT_PATH/app/glance.yml" + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/glance/0.6.4/scripts/uninstall.sh b/apps/glance/0.6.4/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/apps/glance/0.6.4/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/apps/glance/0.6.4/scripts/upgrade.sh b/apps/glance/0.6.4/scripts/upgrade.sh new file mode 100644 index 00000000..0be9bfe0 --- /dev/null +++ b/apps/glance/0.6.4/scripts/upgrade.sh @@ -0,0 +1,24 @@ +#!/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 + + mkdir -p "$APP_NAME_ROOT_PATH" + mkdir -p "$APP_NAME_ROOT_PATH/app" + + if [ ! -f "$APP_NAME_ROOT_PATH/app/glance.yml" ]; then + cp ./conf/glance.yml "$APP_NAME_ROOT_PATH/app/glance.yml" + fi + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/glance/README.md b/apps/glance/README.md new file mode 100644 index 00000000..15ea6ffd --- /dev/null +++ b/apps/glance/README.md @@ -0,0 +1,30 @@ +# Glance + +一个自托管的仪表板,将所有您的订阅源放在一个地方 + +![Glance](https://file.lifebus.top/imgs/glance_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 小部件 + ++ RSS 订阅源 ++ 子版块帖子 ++ 天气 ++ 书签 ++ 黑客新闻 ++ Lobsters ++ 最新特定频道的 YouTube 视频 ++ 闹钟 ++ 日历 ++ 股票 ++ iframe ++ Twitch 频道和热门游戏 ++ GitHub 发布 ++ 代码库概览 ++ 站点监控 ++ 搜索框 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/glance/data.yml b/apps/glance/data.yml new file mode 100644 index 00000000..0f6781f7 --- /dev/null +++ b/apps/glance/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: glance + name: Glance + tags: + - WebSite + - Local + shortDescZh: 一个自托管的仪表板,将所有您的订阅源放在一个地方 + shortDescEn: A self-hosted dashboard that puts all your feeds in one place + type: website + crossVersionUpdate: true + limit: 0 + website: https://github.com/glanceapp/glance/ + github: https://github.com/glanceapp/glance/ + document: https://github.com/glanceapp/glance/ diff --git a/apps/glance/logo.png b/apps/glance/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..54fc4131137d09784f3057b58cc18afdaab13ba4 GIT binary patch literal 7946 zcmV+lANAmgP)Py8#7RU!RCt{2-G7wTb)ER}*9@b;4D1Y`43d!|$|;5Xk(eES@JrBIDi_-l7g4HB zcdf%evAUhMHrv%>+i|zeKs+UFx}{~To=s8$Tr}Ah1u0X}6BH6SA_J2QGS1+9|Ija| zOicvd@0rj0@i=Er);aQeG0?rwdEa|KpPCUPMsx=NP?Xx-3jhG=2><{nkN^OH0to;B zD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs z001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH z0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E z0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{n zkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s z04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj z2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaE zfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE z004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;B zD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs z001bE004jj2><{nP+jf?fCJ}kZ+lye7%?IS4;~y%O-*~h8XFt`;J-IDHAQoC^WJ}N z=gyt6YuB!5Z*TvD|9tiT*3!}v>(;G{#~ynu+S=N({$7FoBLJY6X=rGOQKLr1$dM!C zm}8EKqmMp1jydL-IO?dQqJRJXZ|T<@FknCo7%*U;{++E`x5m14>;CBLg%@6UOFIB* z)r=T1qC58z!0S8am}6qnq)9Ph!h|^PxZ~om!w$>6(i_^eX;VD%$Rn|Q`SMt@WQmgk z=%EAv^f0xxwJ~noxR^9)QcRvaIYy2gnR}(TY|oxOv3m9DSh{p+EM2-Zo_zAj+$#aE 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 zfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE z004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;B zD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs z001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH z0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E z0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{n zkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s z04R_E0DuAs001bE004jj2><{nkN^OH0to;BD3AaEfC32s04R_E0DuAs001bE004jj z2><{nkN^OH0to;BD3AaEfC32s04R_E0DuDhKeXp#`f<&CdjJ3c07*qoM6N<$f|qOH AkN^Mx literal 0 KcmV+b0RR6000031