Go to file
hummingbard 8e5ac94b4b Initial commit. 2021-03-01 06:34:49 +03:00
cache Initial commit. 2021-03-01 06:34:49 +03:00
client Initial commit. 2021-03-01 06:34:49 +03:00
cmd/hummingbard Initial commit. 2021-03-01 06:34:49 +03:00
config Initial commit. 2021-03-01 06:34:49 +03:00
db/migrations Initial commit. 2021-03-01 06:34:49 +03:00
gomatrix Initial commit. 2021-03-01 06:34:49 +03:00
static/favico Initial commit. 2021-03-01 06:34:49 +03:00
templates Initial commit. 2021-03-01 06:34:49 +03:00
ui Initial commit. 2021-03-01 06:34:49 +03:00
.gitignore Initial commit. 2021-03-01 06:34:49 +03:00
LICENSE Initial commit. 2021-03-01 06:34:49 +03:00
Makefile Initial commit. 2021-03-01 06:34:49 +03:00
README.md Initial commit. 2021-03-01 06:34:49 +03:00
config-sample.toml Initial commit. 2021-03-01 06:34:49 +03:00
go.mod Initial commit. 2021-03-01 06:34:49 +03:00
go.sum Initial commit. 2021-03-01 06:34:49 +03:00

README.md

Hummingbard

Hummingbard is an experimental client for building decentralized communities on top of Matrix. See a live instance on hummingbard.com

What Works

  • Register local and federated users
  • Federated logins with existing Matrix accounts
  • Join local and federated spaces
  • Follow local and federated users
  • Generic post editor (markdown)
  • Quick posts, with images/attachments/links/youtube/etc
  • Blog posts with slug/metadata
  • Replies to posts
  • Sharing posts on profiles and across spaces
  • User feed
  • Public feed
  • Create local and federated spaces
  • Different space types - community, gallery
  • Customize spaces and user profiles with basic info, custom CSS
  • Deeply nested spaces (/music/jazz/fusion)

What Doesn't Work

  • Private spaces and user profiles
  • Embedded chat in spaces
  • Direct Messages
  • Registration flows

Dendrite

Hummingbard relies on these features that are currently only implemented in Dendrite, or expected to be implemented soon:

There is a temporary patch in our forked Dendrite for paginating threads. This should not be necessary once upstream Dendrite implements threads fully.

Install

To run Hummingbard, you'll need:

  • Dendrite fork configured and running
  • redis (for session storage)
  • postgres (for various non-Matrix storage)
  • goose for migrations

Steps:

  1. Clone the repo
  2. Copy config-sample.toml to config.toml, update with DB config etc.
  3. Run make
  4. Run migrations in db/migrations
  5. Run npm run build in /ui/js
  6. Pull a JSON dump for large matrix rooms with curl 'https://matrix-client.matrix.org:443/_matrix/client/r0/publicRooms?limit=500' > bigrooms.json (we avoid large rooms to help Dendrite not consume too much resources)
  7. Run the binary ./bin/hummingbard

You may want to:

  1. Put Hummingbard behind Nginx
  2. Server static files via Nginx
  3. Use a systemd unit if appropriate

License

The code is currenly licensed under AGPLv3. I may choose a more permissive license in the future.