自托管个人微博客:你的时间线可以被分享、讨论,同时数据完全由你掌控。
Ech0一款专为轻量级分享而设计的开源自托管平台,支持快速发布与分享你的想法、文字与链接。简单直观的操作界面,轻松管理你的内容,让分享变得更加自由,确保数据完全掌控,随时随地与世界连接。个人感觉类似Memos ,但 Ech0 更关注“记录之后”的阶段:把内容发布到个人时间线,让更多人可以持续关注和互动。
你可以在自己的服务器上托管内容,保留完整控制权,同时通过可选评论与分享保持轻连接,而不是变成复杂社交平台。
它保持轻量、易部署、完全开源。
适合谁使用
适合你,如果你想:
- 搭建一个自己的公开或半公开动态站
- 用统一界面发布短文、链接与媒体卡片
- 兼顾数据主权,同时保留 RSS 与评论等能力
- 让个人内容具备轻社交连接能力,而不需要重型社交产品
不太适合你,如果你需要:
- 双链知识库式的笔记工作流(例如 Obsidian 风格)
- 团队优先的协作文档平台(例如 Notion 风格)
- 纯私密备忘且不关注发布/时间线场景
docker部署
docker run -d \
--name ech0 \
-p 6277:6277 \
-v /opt/ech0/data:/app/data \
-e JWT_SECRET="Hello Echos" \
sn0wl1n/ech0:latest
然后访问 http://ip:6277:
- 注册你的第一个账号。
- 首个账号会自动成为 Owner(管理员权限)。
- 默认仅高权限账号可发布内容。
更多部署方式见 极速部署。
产品亮点
- ☁️ 轻量高效架构:低资源占用与小体积镜像,适合个人服务器到 ARM 设备。
- 🚀 极速部署体验:开箱即用 Docker 部署,从安装到运行一条命令即可启动。
- 📦 自包含部署包:提供完整二进制与容器镜像,无需额外依赖。
- 💻 跨平台支持:支持 Linux、Windows 与 ARM 架构设备(如 Raspberry Pi)。
详细介绍
储存与数据
- 🗂️ VireFS 统一存储抽象层:以 VireFS 统一本地存储与 S3 兼容对象存储的挂载与管理。
- ☁️ S3 对象存储支持:原生支持 S3 兼容对象存储,便于云端资源扩展。
- 📦 数据主权架构:内容与元数据由用户掌控,并支持 RSS 输出。
- 🔄 数据迁移机制:支持迁移导入历史数据,配合快照导出实现迁移与归档。
- 🔐 自动备份系统:支持 Web、CLI、TUI 三种导出/备份方式与后台自动备份。
写作 & 内容
- ✍️ Markdown 写作体验:基于 markdown-it 的编辑与渲染引擎,支持插件扩展和实时预览。
- 🏷️ 标签管理系统:支持标签分类、快速过滤与精准检索。
- 🃏 富媒体卡片内容:支持网站链接、GitHub 项目等卡片展示。
- 🎥 视频内容解析:支持哔哩哔哩与 YouTube 视频解析展示。
多媒体 & 附件
- 📁 可视化文件管理器:内建文件上传、浏览与资源管理能力。
社交与互动
- 💬 原生评论系统:内建评论与评论管理功能,无需第三方评论服务。
- 🃏 内容互动能力:支持点赞、分享等社交互动。
认证与安全
- 🔑 OAuth2 / OIDC 身份认证:支持 OAuth2 与 OIDC 协议,便于接入第三方登录。
- 🙈 Passkey 无密码登录:支持生物识别或硬件密钥登录。
- 🔑 访问令牌管理:支持生成与吊销带 Scope 的访问令牌,便于 API 调用与第三方集成。
- 👤 多账户权限管理:支持多用户与权限控制。
系统与开发者
- 🧱 Busen 数据总线架构:通过自研 Busen 实现模块解耦通信与可靠消息传递。
- 📊 结构化日志系统:系统日志统一为结构化格式,提升可读性与可分析性。
- 🖥️ 实时系统日志控制台:内建 Web 控制台可实时查看日志流,便于调试与排障。
- 📟 TUI 管理界面:提供终端交互界面,适合服务器环境管理。
- 🧰 CLI 工具链:提供 CLI 工具,支持自动化管理与脚本集成。
- 🔗 开放 API 与 Webhook:提供完整 API 与 Webhook,便于外部系统集成和自动化工作流。
- 🤖 MCP(模型上下文协议):内建 MCP Server,近乎完整覆盖核心功能,帖子、文件与统计等能力通过 Streamable HTTP 以 Tools / Resources 交给上层 AI 工作流,Scoped JWT 鉴权。
体验
- 🌍 跨设备适配:响应式设计,适配桌面、平板与移动浏览器。
- 🌐 i18n 多语言支持:支持多语言界面切换,覆盖不同语言使用场景。
- 👾 PWA 支持:支持安装为 Web App,体验更接近原生应用。
- 🌗 主题与 Dark Mode:支持深色模式与主题扩展。
授权
- 🎉 完全开源:基于 AGPL-3.0 协议发布,无追踪、无订阅、无 SaaS 依赖。
部署与更新
完整的 Docker Compose、脚本安装、Kubernetes (Helm) 部署说明以及版本更新操作流程详见 DEPLOYMENT.md。
如果只是想最快跑起来,上面的 docker部署 已经足够 — 一条 docker run 命令即可启动。
常见问题
-
Ech0 是什么? Ech0 是一款轻量级的开源自托管平台,专为快速发布与分享个人想法、文字和链接而设计。它提供简洁的界面与零干扰体验,并确保数据始终由你自己掌控。
-
Ech0 不是什么? Ech0 不是传统的笔记软件,设计之初并不是为了专业的笔记管理和记录(如 Obsidian、Notion 等),Ech0 的核心功能类似朋友圈/说说。
-
Ech0 是免费的吗? 是的,Ech0 完全免费且开源,遵循 AGPL-3.0 协议。它没有广告、追踪、订阅或服务依赖。
-
如何进行备份和导入数据? Ech0 支持通过“快照导出 / 迁移导入”进行数据迁移与恢复。部署层面建议定期备份你映射的数据目录(如
/opt/ech0/data)。默认情况下核心数据位于本地数据库;若启用了对象存储,媒体文件会按存储配置写入对应后端。 -
Ech0 支持 RSS 吗? 是的,Ech0 支持 RSS 订阅,您可以通过 RSS 阅读器订阅您的内容更新。
-
为什么发布失败,提示联系管理员? 当前版本下,发布权限默认受限于高权限账号。初始化时创建的首个账号为 Owner(同时具备管理权限),普通用户默认不能发布,需要由高权限用户按实际策略授权。若是首次部署,请先对照 1 分钟上手 确认首个账号是否为 Owner。
-
为什么没有明确的权限划分? Ech0 当前采用轻量权限模型(Owner / Admin / 普通用户),目标是降低管理复杂度并保持日常使用流畅。后续会根据社区反馈持续迭代。
-
为什么别人无法显示自己的 Connect 头像? 要使别人显示自己的 Connect 头像需要在
系统设置-服务地址中填入自己当前的实例地址,比如https://memo.vaaat.com(注意:这里填的链接需要带上 http 或 https)。 -
设置中的 MetingAPI 项是什么? 这是音乐卡片解析所使用的 API 地址。你可以填写自建或可信的解析服务;未配置时会使用系统默认解析地址。建议在生产环境中优先使用你可控的服务端点。
-
为什么添加后的 Connect 只显示了一部分? 因为后端会尝试获取所有 Connect 的实例信息,如果某个实例挂了或者无法访问则会被抛弃,只返回获取到的有效 Connect 实例的信息给前端。
-
如何开启评论功能? 在面板的评论管理页面开启评论并按需配置审核与验证码参数即可。当前为内建评论系统,无需额外接入第三方评论平台。
-
S3 存储如何配置? 在存储设置中填写 Provider、Endpoint、Bucket、Access Key、Secret Key 等信息。
endpoint建议填写不含http/https的地址;若前端需直接访问媒体资源,请确保对象具备可访问策略(如 public-read 或等效 CDN/网关配置)。 -
如何启用 Passkey 无密码登录? 在
SSO - Passkey页面先配置WebAuthn RP ID与WebAuthn Origins,保存并显示“Passkey 就绪”后,再按浏览器提示绑定你常用的生物识别或安全密钥设备即可使用。 -
关于第三方集成平台的官方声明 未经 Ech0 官方授权的第三方集成平台或服务,不属于官方支持范围。因使用此类平台或服务导致的安全事件、数据丢失、账号异常或其他风险与损失,由使用方及第三方自行承担,官方不承担相关责任。
-
如何通过第三方集成(AI / 自动化)发布评论? Ech0 提供专用集成评论接口
POST /api/comments/integration,无需通过验证码或表单 token。使用前需在「访问令牌」管理中创建一个包含comment:writescope 和integrationaudience 的 access token,并在请求头中附带Authorization: Bearer <token>。请求体字段与响应说明请以你部署实例上的 OpenAPI 文档为准:在浏览器打开/swagger/index.html(本地开发一般为http://localhost:6277/swagger/index.html)。该接口具有独立的频控策略,评论来源会标记为integration,可在后台评论管理中识别。 -
想详细了解本地与对象存储的数据布局、
key映射规则,以及更换 S3 或本地 ⇄ 对象互迁时要注意什么? 请参阅仓库内文档:存储迁移指南。文中说明扁平key与schema.Resolve、PathPrefix、入库url快照的含义,前台/api/files静态访问与stream接口的差异,以及更换 S3 服务商与本地存储和对象存储之间迁移的操作要点与注意事项。
反馈与社区
- Github地址:https://github.com/lin-snow/Ech0
- 在线体验:https://soopy.cn/
- 提交 Issues:https://github.com/lin-snow/Ech0/issues
- Discussions:https://github.com/lin-snow/Ech0/discussions
- 官方 QQ 群号:
1065435773