From e7dc02d35062aac3729248f3290e485588495697 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Sun, 28 Sep 2025 11:39:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=20Ech0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- .github/README.md | 2 +- README.md | 1 + apps/ech0/2.5.4/data.yml | 32 ++++++++ apps/ech0/2.5.4/docker-compose.yml | 24 ++++++ apps/ech0/2.5.4/envs/default.env | 2 + apps/ech0/2.5.4/envs/global.env | 2 + apps/ech0/2.5.4/scripts/init.sh | 17 ++++ apps/ech0/2.5.4/scripts/uninstall.sh | 10 +++ apps/ech0/2.5.4/scripts/upgrade.sh | 17 ++++ apps/ech0/README.md | 115 +++++++++++++++++++++++++++ apps/ech0/data.yml | 14 ++++ apps/ech0/logo.png | Bin 0 -> 3859 bytes 12 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 apps/ech0/2.5.4/data.yml create mode 100644 apps/ech0/2.5.4/docker-compose.yml create mode 100644 apps/ech0/2.5.4/envs/default.env create mode 100644 apps/ech0/2.5.4/envs/global.env create mode 100644 apps/ech0/2.5.4/scripts/init.sh create mode 100644 apps/ech0/2.5.4/scripts/uninstall.sh create mode 100644 apps/ech0/2.5.4/scripts/upgrade.sh create mode 100644 apps/ech0/README.md create mode 100644 apps/ech0/data.yml create mode 100644 apps/ech0/logo.png diff --git a/.github/README.md b/.github/README.md index 8f55684b6..b5b633832 100644 --- a/.github/README.md +++ b/.github/README.md @@ -70,6 +70,7 @@ | 🟢 | | Dozzle | https://dozzle.dev/ | 一个轻量级的小应用程序,有一个基于web的界面来监控Docker日志 | | | 🟢 | | DPanel | https://dpanel.cc/ | Docker可视化管理面板 | | | 🟢 | | 独角数卡 | https://github.com/assimon/dujiaoka/ | 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速 | | +| 🟢 | | Ech0 | https://memo.vaaat.com/ | 专注思想流动的轻量级发布平台 | | | 🟢 | | Eigenfocus | https://eigenfocus.com/ | 看板、时间跟踪与专注工具 | | | 🟢 | | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic | | 🟢 | | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic | @@ -103,7 +104,6 @@ | 🟢 | | Komga | https://komga.org/ | 漫画、漫画、蓝光光盘、杂志和电子书的媒体服务器 | | | 🟢 | | Kotatsu | https://kotatsu.app/ | 口袋里的漫画 | | | 🟢 | | KSpeeder | https://kspeeder.istoreos.com/ | Docker镜像加速专家 | | -| 🟢 | | Kvrocks | https://kvrocks.apache.org/ | 分布式键值 NoSQL 数据库 | | | 🟢 | | LibreTV | https://libretv.is-an.org/ | 免费在线视频搜索与观看平台 | | | 🟢 | | 问卷星 | https://www.limesurvey.org/ | 在线问卷调查程序 | | | 🟢 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | | diff --git a/README.md b/README.md index 6554c4b33..443357070 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ | 🟢 | | Dozzle | https://dozzle.dev/ | 一个轻量级的小应用程序,有一个基于web的界面来监控Docker日志 | | | 🟢 | | DPanel | https://dpanel.cc/ | Docker可视化管理面板 | | | 🟢 | | 独角数卡 | https://github.com/assimon/dujiaoka/ | 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速 | | +| 🟢 | | Ech0 | https://memo.vaaat.com/ | 专注思想流动的轻量级发布平台 | | | 🟢 | | Eigenfocus | https://eigenfocus.com/ | 看板、时间跟踪与专注工具 | | | 🟢 | | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic | | 🟢 | | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic | diff --git a/apps/ech0/2.5.4/data.yml b/apps/ech0/2.5.4/data.yml new file mode 100644 index 000000000..6c03a9916 --- /dev/null +++ b/apps/ech0/2.5.4/data.yml @@ -0,0 +1,32 @@ +additionalProperties: + formFields: + - default: "/home/ech0" + edit: true + envKey: ECH0_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 6277 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: 6278 + edit: true + envKey: PANEL_APP_PORT_API + labelZh: API 端口 + labelEn: API port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: JWT_SECRET + labelZh: JWT 密钥 + labelEn: JWT Secret + required: true + type: text diff --git a/apps/ech0/2.5.4/docker-compose.yml b/apps/ech0/2.5.4/docker-compose.yml new file mode 100644 index 000000000..6e6972a27 --- /dev/null +++ b/apps/ech0/2.5.4/docker-compose.yml @@ -0,0 +1,24 @@ +networks: + 1panel-network: + external: true + +services: + app_name: + image: sn0wl1n/ech0:v2.5.4 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:6277 + - ${PANEL_APP_PORT_API}:6278 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${ECH0_ROOT_PATH}/data:/app/data + - ${ECH0_ROOT_PATH}/backup:/app/backup + environment: + - TZ=Asia/Shanghai diff --git a/apps/ech0/2.5.4/envs/default.env b/apps/ech0/2.5.4/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/ech0/2.5.4/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/ech0/2.5.4/envs/global.env b/apps/ech0/2.5.4/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/ech0/2.5.4/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/ech0/2.5.4/scripts/init.sh b/apps/ech0/2.5.4/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/ech0/2.5.4/scripts/init.sh @@ -0,0 +1,17 @@ +#!/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 + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/ech0/2.5.4/scripts/uninstall.sh b/apps/ech0/2.5.4/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/ech0/2.5.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/ech0/2.5.4/scripts/upgrade.sh b/apps/ech0/2.5.4/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/ech0/2.5.4/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/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 + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/ech0/README.md b/apps/ech0/README.md new file mode 100644 index 000000000..74bb9ec42 --- /dev/null +++ b/apps/ech0/README.md @@ -0,0 +1,115 @@ +# Ech0 + +专注思想流动的轻量级发布平台 + +![Ech0](https://file.lifebus.top/imgs/ech0_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) + +## 简介 + +Ech0 是一款专为轻量级分享而设计的开源自托管平台,支持快速发布与分享你的想法、文字与链接。简单直观的操作界面,轻松管理你的内容,让分享变得更加自由,确保数据完全掌控,随时随地与世界连接。 + +## 特性 + +### ☁️ 原子级轻量 + +内存占用不到15MB,镜像大小不到40MB,单SQLite文件存储架构 + +### 🚀 极速部署 + +无需配置,从安装到使用只需1条命令 + +### 🧰 命令行利器 + +内置高可用 CLI 工具,支持一键备份、恢复、导出 + +### 📟 极致 TUI 支持 + +面向终端用户打造的友好交互界面,轻松进行对Ech0进行管理 + +### ✍️ 零干扰写作 + +纯净的在线Markdown编辑器,支持丰富的Markdown插件与预览 + +### 📦 数据主权 + +所有内容存储于本地SQLite文件,支持RSS订阅 + +### 🔐 安全备份机制 + +支持Web、TUI、CLI三种模式下一键导出、备份完整数据 + +### ♻️ 无感恢复支持 + +通过TUI或 CLI 即可恢复任意备份,保障数据安全无忧 + +### 🎉 永久免费 + +AGPL-3.0协议开源,无追踪/无订阅/无服务依赖 + +### 🌍 跨端适配 + +完美兼容桌面/移动浏览器,支持手机、iPad、PC三端响应式布局 + +### 👾 PWA适配 + +支持作为Web应用安装 + +### 📝 内置Todo管理 + +轻松记录、管理每日待办事项,帮助你高效规划和追踪任务进度 + +### 🔗 Ech0 Connect + +全新内容聚合与互联功能,支持多实例间互通、内容订阅与同步,打造属于你的去中心化内容网络 + +### 🎵 无缝音乐集成 + +内置超低资源占用的音乐播放器,支持本地音频流解析,提供沉浸式背景音乐与专注模式 + +### 🎥 即时视频分享 + +原生支持哔哩哔哩/YouTube视频智能解析 + +### 🃏 丰富的快捷卡片 + +支持网站链接、GitHub项目等多种富媒体内容一键分享,让信息展示更加直观生动 + +### ⚙️ 高级自定义功能 + +为高级用户提供便捷自定义样式与脚本,分享更具表现力 + +### 💬 评论系统 + +支持快捷接入Twikoo评论服务,轻量、快捷、无侵入,为你的内容带来即时互动与反馈 + +### 💻 跨平台兼容 + +原生支持 Windows、Linux 以及树莓派等 ARM 架构设备,确保多样化部署场景下稳定运行 + +### 🔗 官方 Ech0 Hub 内容广场接入 + +支持手动提交接入官方 Ech0 Hub 内容生态,轻松发现、订阅和共享优质内容 + +### 🌐 自部署 Ech0 Hub 支持 + +允许用户将自身 Connect 列表作为自部署 Ech0 Hub 的内容来源,实现内容网络的高度自治与扩展 + +### 📦 二进制自包含 + +集成完整前端资源,单一二进制文件即可启动使用,无需额外安装依赖或配置,极大简化部署流程 + +🔗 丰富的 API 支持: 提供开放 API,方便与其他系统集成,实现更灵活的应用场景。 + +### 🃏 内容展示支持 + +支持类 X(Twitter)风格卡片展示,同时支持点赞等社交互动 + +### 👤 多用户与权限管理 + +支持多用户账户体系,提供灵活的权限控制,保障内容和功能访问的安全性与私密性 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/ech0/data.yml b/apps/ech0/data.yml new file mode 100644 index 000000000..21f9ccc37 --- /dev/null +++ b/apps/ech0/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: ech0 + name: Ech0 + tags: + - WebSite + - Local + shortDescZh: 专注思想流动的轻量级发布平台 + shortDescEn: A lightweight publishing platform focused on the flow of ideas + type: website + crossVersionUpdate: true + limit: 0 + website: https://memo.vaaat.com/ + github: https://github.com/lin-snow/Ech0/ + document: https://github.com/lin-snow/Ech0/ diff --git a/apps/ech0/logo.png b/apps/ech0/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e65e28c46f5feaaed58555a266cc7e7f9d6be5cf GIT binary patch literal 3859 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 E9|6=)-v9sr literal 0 HcmV?d00001