A next-generation open-source, self-hosted, lightweight federated publishing platform focused on personal idea sharing.
Ech0 is a new-generation open-source self-hosted platform designed for individual users. It is ultra-lightweight and low-cost, supporting the ActivityPub protocol to let you easily publish and share ideas, writings, and links. With a clean, intuitive interface and powerful command-line tools, content management becomes simple and flexible. Your data is fully owned and controlled by you, always connected to the world, building your own network of thoughts.
Table of Contents
- ☁️ Ultra Lightweight — Memory usage under 15MB, image size under 45MB, single SQLite file storage.
- 🚀 Blazing Fast Deployment — No configuration needed, install and use with just one command.
- 🧰 Command-line Power — Built-in high-availability CLI tools that support one-click backup, restore, and export.
- 📟 TUI Friendly — Terminal-friendly interactive interface to manage Ech0 from the TUI.
- ✍️ Distraction-Free Writing — Clean online Markdown editor with rich plugin support and live preview.
- 📦 Data Ownership — All content stored locally in SQLite, with RSS feed support.
- 🔐 Secure Backup — One-click export/backup/import via Web, TUI, or CLI.
- ♻️ Seamless Restore — Restore any backup via TUI or CLI to ensure data safety.
- 🎉 Completely Free — Open-source under AGPL-3.0 with no tracking, subscription, or dependency.
- 🌍 Cross-Device Compatible — Fully responsive on desktop, tablet, and mobile.
- 👾 PWA Support — Can be installed as a Web App.
- ☁️ S3 Storage Support — Native integration with S3-compatible object storage for local or cloud backups.
- 🌐 ActivityPub Federation — Native ActivityPub support for interoperability with Mastodon, Misskey, Pleroma, etc.
- 📝 Built-in Todo Management — Record and track daily tasks efficiently.
- 🔗 Ech0 Connect — Cross-instance content aggregation, subscription, and synchronization.
- 🎵 Music Integration — Lightweight audio player for local streaming and immersive background music.
- 🎥 Video Sharing — Native support for Bilibili/YouTube smart parsing.
- 🃏 Rich Card Support — Share website links, GitHub projects, and other media-rich content.
- ⚙️ Advanced Customization — Custom styles and scripts for enhanced content presentation.
- 💬 Comment System — Integrate Twikoo for lightweight interaction and feedback.
- 💻 Cross-Platform — Native support for Windows, Linux, and ARM devices like Raspberry Pi.
- 🔗 Official Ech0 Hub Integration — Submit content to the Ech0 Hub ecosystem easily.
- 🌐 Self-Hosted Ech0 Hub — Use your Connect list as a content source.
- 📦 Self-contained Binary — Full frontend resources included, single binary file ready to run.
- 🔗 Rich API Support — Open API available for integration with other systems.
- 🃏 Content Display — Supports X (Twitter)-style card display with social interactions.
- 👤 Multi-user and Permissions — Flexible account and permission management for secure access.
docker run -d \
--name ech0 \
-p 6277:6277 \
-p 6278:6278 \
-v /opt/ech0/data:/app/data \
-v /opt/ech0/backup:/app/backup \
-e JWT_SECRET="Hello Echos" \
sn0wl1n/ech0:latest💡 After deployment, access
ip:6277to use
🚷 It is recommended to changeJWT_SECRET="Hello Echos"to a secure secret
📍 The first registered user will be set as administrator
🎈 Data stored under/opt/ech0/data
- Create a new directory and place
docker-compose.ymlinside. - Run:
docker-compose up -ddocker stop ech0
docker rm ech0
docker pull sn0wl1n/ech0:latest
docker run -d \
--name ech0 \
-p 6277:6277 \
-p 6278:6278 \
-v /opt/ech0/data:/app/data \
-v /opt/ech0/backup:/app/backup \
-e JWT_SECRET="Hello Echos" \
sn0wl1n/ech0:latestcd /path/to/compose
docker-compose pull && \
docker-compose up -d --force-recreate
docker image prune -fRun the binary directly (for example, on Windows double-click Ech0.exe).
Connect to the instance via port 6278:
ssh -p 6278 ssh.vaaat.com-
What is Ech0?
A lightweight, open-source self-hosted platform for quickly sharing thoughts, writings, and links. All content is locally stored. -
What Ech0 is NOT?
Not a professional note-taking app like Obsidian or Notion; its core function is similar to social feed/microblog. -
Is Ech0 free?
Yes, fully free and open-source under AGPL-3.0, no ads, tracking, subscription, or service dependency. -
How do I back up and restore data?
Since all content is stored in a local SQLite file, you only need to back up the files in the/opt/ech0/datadirectory (or the mapped path you chose during deployment). To restore, simply replace the data files with your backup. You can also use the online data management features in the settings under "Data Management" to quickly create, export, or restore snapshots. If the latest content does not appear after restoring, try manually restarting the Docker container. -
Does Ech0 support RSS?
Yes, content updates can be subscribed via RSS. -
Why can't I publish content?
Only administrators can publish. First registered user is admin. -
Why no detailed permission system?
Ech0 emphasizes simplicity: admin vs non-admin only, for smooth experience. -
Why Connect avatars may not show?
Set your instance URL inSystem Settings - Service URL(withhttp://orhttps://). -
What is MetingAPI?
Used to parse music streaming URLs for music cards. If empty, default API provided by Ech0 is used. -
Why not all Connect items show?
Instances that are offline or unreachable are ignored; only valid instances are displayed. -
What content is not recommended?
Avoid publishing dense content mixing text + images + extension cards. Long posts or extension cards alone are okay. -
How to enable comments?
Set up Twikoo backend URL in settings. Only Twikoo is supported. -
How to configure S3?
Fill in endpoint (without http/https) and bucket with public access. -
How to join the Fediverse?
You need to bind Ech0 to a domain name and fill in the domain in the server address field in the settings page. Once set, Ech0 will automatically join the Fediverse. Example:https://memo.vaaat.com
- Report bugs via Issues.
- Propose features or share ideas in Discussions.
by ExcaliDraw
- Go 1.25.1+
- C Compiler for CGO (
go-sqlite3):- Windows: MinGW-w64
- macOS:
brew install gcc - Linux:
sudo apt install build-essential
- Google Wire:
go install github.com/google/wire/cmd/wire@latest - Golangci-Lint:
golangci-lint run/golangci-lint fmt - Swagger:
swag init -g internal/server/server.go -o internal/swagger
- NodeJS v24.5.0+, PNPM v10.17.1+
- Use fnm if multiple Node versions needed
# Backend
go run cmd/ech0/main.go
# Frontend
cd web
pnpm install
pnpm devPreview: Backend http://localhost:6277, Frontend http://localhost:5173
When importing layered packages, prefer consistent aliases such as
xxxModel,xxxService,xxxRepository, and so on.
- Gin
- Md-Editor-V3
- Figma
- VSCode & GoLand
- Open-source community contributors
🌟 If you like Ech0, please give it a Star! 🚀
Ech0 is completely free and open-source. Support helps the project continue improving.
| Platform | QR Code |
|---|---|
| Afdian |
███████╗ ██████╗ ██╗ ██╗ ██████╗
██╔════╝ ██╔════╝ ██║ ██║ ██╔═████╗
█████╗ ██║ ███████║ ██║██╔██║
██╔══╝ ██║ ██╔══██║ ████╔╝██║
███████╗ ╚██████╗ ██║ ██║ ╚██████╔╝
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝