hummingbard/README.md

66 lines
2.3 KiB
Markdown

# Hummingbard
Hummingbard is an experimental client for building decentralized communities on top of [Matrix](https:/matrix.org). See a live instance on [hummingbard.com](https://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:
- Spaces ([MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946))
- Threading ([MSC2836](https://github.com/matrix-org/matrix-doc/pull/2836))
There is a temporary patch in our [forked
Dendrite](https://github.com/hummingbard/dendrite) for paginating threads. This
should not be necessary once upstream Dendrite implements threads fully.
## Install
To run Hummingbard, you'll need:
- [Dendrite fork](https://github.com/hummingbard/dendrite) configured and running
- redis (for session storage)
- postgres (for various non-Matrix storage)
- [goose](https://github.com/pressly/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](https://www.gnu.org/licenses/agpl-3.0.html). I may choose a more permissive license in the future.