Self-hosted service
lin-snow/Ech0 avatar
lin-snow/Ech0

Ech0: A Lightweight Self-Hosted Microblog That Puts Your Timeline First

Ech0, An open-source, self-hosted lightweight publishing platform for personal idea sharing.

2,057 stars159 forksGoAGPL-3.0

At a glance

What is it?
Ech0 is a Go-based, self-hosted publishing platform for short posts, links, and media. It positions itself between note-taking and full social networks, with a focus on ownership, lightweight deployment, and optional social interaction.
Who is it for?
Adopt Ech0 if you want a self-hosted public timeline for short posts, links, and media, with optional comments and RSS, and you value lightweight deployment on ARM devices. Do not adopt it if you need a bidirectional knowledge base, team docs, or a pure note-taking tool without timeline features.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Ech0 Actually Solves

Ech0 targets a narrow gap between quick note capture and full social networking. Tools like Memos handle fast capture, but Ech0 aims at the next step: publishing those thoughts to a timeline that others can follow and interact with. The README is explicit about who fits: someone who wants a personal public or semi-public timeline on their own domain, who publishes short posts, links, and media, and who wants data ownership with RSS and optional comments. It is not for bidirectional knowledge base workflows like Obsidian, team-first collaborative docs like Notion, or a pure note-taking tool with no timeline. That positioning is a strength. It keeps the feature set focused, and it tells you early if you are the wrong user.

How the Architecture Fits Together

The repository shows a Go backend with a web frontend, and the README names two in-house components: VireFS and Busen. VireFS is a unified storage layer that mounts local storage and S3-compatible object storage under one interface. Busen is a data bus for decoupled module communication and reliable message delivery. These are not just buzzwords. They explain how Ech0 handles media and data across different backends, and how modules talk to each other without tight coupling. The README also mentions a CLI, a TUI, and a web console for logs. That suggests a server-side administration story that goes beyond the web UI. The MCP server exposes near-complete coverage of core features to AI layers, using Streamable HTTP, Tools & Resources, and scoped JWT. This is a concrete integration point, though the README truncates before giving exact details.

Getting It Running in 60 Seconds

The README gives a single Docker command to start: `docker run -d --name ech0 -p 6277:6277 -v /opt/ech0/data:/app/data -e JWT_SECRET="Hello Echos" sn0wl1n/ech0:latest`. After that, you open `http://ip:6277`, register the first account, and that account becomes the Owner with admin privileges. By default, publishing is restricted to privileged accounts. The README points to a DEPLOYMENT.md for Docker Compose and Helm options, but that file is not included in the provided material. The command sets a JWT secret via environment variable, which is a clear sign that authentication is token-based. The volume mount at `/app/data` is where your data lives, so backups are a matter of copying that directory, or using the built-in export features.

Storage, Migration, and Backup Realities

Ech0 supports S3-compatible object storage through VireFS, which is useful if you want to scale beyond a single disk. The README claims a data migration workflow with import for historical data, plus snapshot and capsule export for migration and archiving, from both the dashboard and the CLI. It also mentions automated backups via Web, CLI, and TUI, plus background automatic backups. That is a lot of backup paths. The capsule export is described as a self-contained package that you can import into another instance or compile into a static site. This is a notable feature for portability, but the README does not specify the capsule format or whether it includes media files. If you plan to migrate between instances, you should test the capsule workflow with your actual content before relying on it.

Social Features and Moderation Trade-offs

Ech0 includes a built-in comment system with moderation configuration, plus likes and sharing. That makes it more social than a plain blog. But the README also says it avoids becoming a full social network. The distinction is important. You get comments and likes, but you do not get follower graphs, feeds, or discovery. That is a deliberate trade-off. For someone who wants a public timeline with optional interaction, this is enough. For someone expecting a community platform, it will feel thin. The moderation configuration is mentioned but not detailed, so you should check the docs to see whether it supports allowlists, blocklists, or manual approval. The README also mentions multi-account permission management, which is useful if you run a small group, but the default restriction to privileged accounts suggests it is not designed for open registration.

Authentication and API Surface

Ech0 supports OAuth2 and OIDC for third-party login, plus passkey passwordless login using biometrics or hardware keys. That covers modern auth expectations. It also has access token management with scoped tokens for API calls and third-party integration. The MCP server uses scoped JWT, which is a sensible way to limit what an AI client can do. The README claims an Open API and Webhook support, but it does not list the endpoints. If you want to build integrations, you will need to read the API docs separately. The CLI toolchain is mentioned for automation, but again, the README truncates before showing commands. The presence of a TUI and a web log console suggests that server administrators have multiple ways to manage the instance, which is good for a self-hosted tool.

Licensing and Maintenance Considerations

Ech0 is licensed under AGPL-3.0. That means if you modify the code and run it as a network service, you must make your modifications available to users under the same license. This is a real obligation for anyone who plans to fork or customize. The README has a License Compliance section, but its content is truncated. The project is not archived, and the last push was in August 2026, with releases v5.7.0 and v5.6.0 within a day of each other. That suggests active development. The README mentions a goreportcard badge, which is a code quality signal, but I cannot verify the score from the provided material. The Docker image is published on Docker Hub as `sn0wl1n/ech0`, and there is a Helm option, but the README does not give the Helm chart details.

Editorial conclusion

Adopt Ech0 if you want a self-hosted public timeline for short posts, links, and media, with optional comments and RSS, and you value lightweight deployment on ARM devices. Do not adopt it if you need a bidirectional knowledge base, team docs, or a pure note-taking tool without timeline features. Before adopting, verify the VireFS storage layer works with your S3 provider, confirm the MCP server's scoped JWT integration meets your security needs, and check the AGPL-3.0 obligations if you plan to modify and redistribute the code. The project is actively maintained with recent releases, but you should test the capsule export/import workflow on a staging instance before trusting it for migration.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes