From 5c284103325081dcdc43e0b2df6a14c2c28a3d9c Mon Sep 17 00:00:00 2001 From: okxlin Date: Tue, 5 Sep 2023 21:31:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0moments=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8(=E6=84=9F=E8=B0=A2=E7=BD=91=E5=8F=8B?= =?UTF-8?q?=E5=8C=85=E5=AD=90=E5=8F=94=E7=9A=84=E6=8A=95=E7=A8=BF)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/moments/2.0/.env.sample | 2 + apps/moments/2.0/data.yml | 10 +++ apps/moments/2.0/docker-compose.yml | 21 ++++++ apps/moments/README.md | 96 +++++++++++++++++++++++++ apps/moments/data.yml | 20 ++++++ apps/moments/latest/.env.sample | 2 + apps/moments/latest/data.yml | 10 +++ apps/moments/latest/docker-compose.yml | 21 ++++++ apps/moments/logo.png | Bin 0 -> 4382 bytes 9 files changed, 182 insertions(+) create mode 100644 apps/moments/2.0/.env.sample create mode 100644 apps/moments/2.0/data.yml create mode 100644 apps/moments/2.0/docker-compose.yml create mode 100644 apps/moments/README.md create mode 100644 apps/moments/data.yml create mode 100644 apps/moments/latest/.env.sample create mode 100644 apps/moments/latest/data.yml create mode 100644 apps/moments/latest/docker-compose.yml create mode 100644 apps/moments/logo.png diff --git a/apps/moments/2.0/.env.sample b/apps/moments/2.0/.env.sample new file mode 100644 index 00000000..e0e23904 --- /dev/null +++ b/apps/moments/2.0/.env.sample @@ -0,0 +1,2 @@ +CONTAINER_NAME="moments" +PANEL_APP_PORT_HTTP="40153" diff --git a/apps/moments/2.0/data.yml b/apps/moments/2.0/data.yml new file mode 100644 index 00000000..374cf832 --- /dev/null +++ b/apps/moments/2.0/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 40153 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/moments/2.0/docker-compose.yml b/apps/moments/2.0/docker-compose.yml new file mode 100644 index 00000000..a8030b9b --- /dev/null +++ b/apps/moments/2.0/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3' +services: + moments: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + volumes: + - "moments_data:/app" + image: drizzle2001/moments:2.0 + labels: + createdBy: "Apps" + +volumes: + moments_data: + +networks: + 1panel-network: + external: true diff --git a/apps/moments/README.md b/apps/moments/README.md new file mode 100644 index 00000000..669cd346 --- /dev/null +++ b/apps/moments/README.md @@ -0,0 +1,96 @@ +# 使用说明 + +- 默认密码 + +``` +lantin +``` + +- 关于时区 + +可以在容器内执行,切换时区为东八区,重启容器即可。 +``` +ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +``` + +- 数据默认以存储卷方式存储,类似卷`moments_data` + +# 原始相关 +*** + +
+Logo + +# Moments +构建博友们的朋友圈 —— 连接你我,创造价值 + +### 如何配置 + +- 后台地址:` http://IP:3000/admin` +- 默认密码:lantin (安装完成后应立即进入后台修改) + +![](https://img.shields.io/badge/Blazor-Server-purple?style=for-the-badge&logo=blazor) +![](https://img.shields.io/badge/MasaBlazor-1-blue?style=for-the-badge) +![](https://img.shields.io/badge/FreeSql-3-green?style=for-the-badge) +![](https://img.shields.io/badge/Flurl-3-yellow?style=for-the-badge) +
+ +Moments 为你提供了一个全新的方式来与你关注的博客作者和读者互动,让你的博客体验更加丰富和充实。 + +我们核心目标是通过整合各种订阅源,如 RSS 和 +Atom,将你感兴趣的博客转化为一个个人朋友圈。你可以订阅来自世界各地的博客,并实时获取他们的最新动态。无论是热门博客、专业博主,还是你最喜爱的作者,你都可以通过 +Moments 获得他们的最新博文、评论和互动。 + + +--- + +* `如果你有好的想法希望可以共同参与下一版本的开发` +* `我们接受任何合理的 pr 和 issue ` + +## 功能概述 + +* Feed订阅(支持包括RSS,Atom) +* 支持友链,文章 API,方便博客对接 +* 简洁的界面风格,仿照微信朋友圈更美观易用 +* 支持订阅商城,化身专属订阅神器 +* 支持友链自助申请 +* 单独查看某个好友的博文 + +## 特点和优势 + +* **个性化订阅**:通过使用 `Moments`,你可以根据自己的兴趣订阅并关注任何博客,无论是国内外的知名博主还是小众领域的专家。你将不再错过他们的精彩内容,同时也可以发现新的博客和创作者。 +* **实时动态**:`Moments` 实时获取订阅的博客的最新动态,包括新博文、更新通知和互动评论。你可以快速了解博客圈内的热门话题,与作者和其他读者进行互动和讨论。 +* **独立博客聚合**:`Moments` 提供了将多个独立博客聚合在一个平台的功能。这意味着你可以在一个地方展示你的多个博客内容,让读者更方便地获取你的全部创作。 +* **个性化用户体验**:`Moments` 提供了个性化的用户界面和设置选项,让你根据自己的喜好和需求定制博客社交的体验。你可以自由选择显示方式、排序规则和通知设置,以最符合你的个人偏好。 +* **开源项目**:`Moments` 是一个开源项目,意味着你可以参与项目的开发和改进。你可以自由定制代码,添加新功能,为社区的发展做出贡献。 + +## 快速开始 + +### 1.原生部署 + +下载源代码编译后运行即可,建议使用`supervisord`进行进程守护,或者使用`Systemd`启动,这需要一定的Linux经验,后面会补充相关的原生部署文档 + +### 2.Docker部署(⭐推荐) + +``` +docker run -d \ +--name moments \ +-p 3000:80 \ +drizzle2001/moments +``` + +运行后访问 `http://IP:3000` 即可 +建议使用反向代理绑定域名访问 + +图文教程(临时): https://shiyu.dev/archives/2069/ +完善的文档中心正在构建中 + +## 其他相关 + +### 如何绑定域名 + +程序运行后的默认端口是3000,可以使用 nginx 配置反向代理监听本地3000端口 + +## 展示 + +![display.jpg](https://github.com/Drizzle365/Moments/raw/master/wwwroot/img/display.jpg) \ No newline at end of file diff --git a/apps/moments/data.yml b/apps/moments/data.yml new file mode 100644 index 00000000..be3d3f26 --- /dev/null +++ b/apps/moments/data.yml @@ -0,0 +1,20 @@ +name: Moments +tags: + - 建站 +title: 一个 C# 开发的博客朋友圈平台 +type: 建站 +description: 一个 C# 开发的博客朋友圈平台 +additionalProperties: + key: moments + name: Moments + tags: + - WebSite + shortDescZh: 一个 C# 开发的博客朋友圈平台 + shortDescEn: A C#-developed blogosphere platform + type: website + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://moments.shiyu.dev/ + github: https://github.com/Drizzle365/Moments + document: https://shiyu.dev/archives/2069/ diff --git a/apps/moments/latest/.env.sample b/apps/moments/latest/.env.sample new file mode 100644 index 00000000..e0e23904 --- /dev/null +++ b/apps/moments/latest/.env.sample @@ -0,0 +1,2 @@ +CONTAINER_NAME="moments" +PANEL_APP_PORT_HTTP="40153" diff --git a/apps/moments/latest/data.yml b/apps/moments/latest/data.yml new file mode 100644 index 00000000..374cf832 --- /dev/null +++ b/apps/moments/latest/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 40153 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/moments/latest/docker-compose.yml b/apps/moments/latest/docker-compose.yml new file mode 100644 index 00000000..9b35fee3 --- /dev/null +++ b/apps/moments/latest/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3' +services: + moments: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + volumes: + - "moments_data:/app" + image: drizzle2001/moments:latest + labels: + createdBy: "Apps" + +volumes: + moments_data: + +networks: + 1panel-network: + external: true diff --git a/apps/moments/logo.png b/apps/moments/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3dac410d07979a04fa5dad3a96bdd891be632e GIT binary patch literal 4382 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 UUt~k~zXbqQMVLZ`oN2)S0cRVDhyVZp literal 0 HcmV?d00001