Lemmy Release v0.8.0 - Federation beta!

Written by @dessalines and @nutomic, 2020-10-20

Changes

We’ve been working at warp speed since our v0.7.0 release in June, adding over 870 commits since then. :sweat:

Here are some of the bigger changes:

LemmyNet projects

Lemmy Server

Federation

  • The first federation public beta release, woohoo :fireworks:
  • All Lemmy functionality now works over ActivityPub (except turning remote users into mods/admins)
  • Instance allowlist and blocklist
  • Documentation for admins and devs on how federation works
  • Upgraded to newest versions of @asonix activitypub libraries
  • Full local federation setup for manual testing
  • Automated testing for nearly every federation action
  • Many additional security checks
  • Lots and lots of refactoring
  • Asynchronous sending of outgoing activities

User Interface

  • Separated the UI from the server code, in lemmy-ui.
  • The UI can now read with javascript disabled!
  • It’s now a fully isomorphic application using inferno-isomorphic. This means that page loads are now much faster, as the server does the work.
  • The UI now also supports open-graph and twitter cards! Linking to lemmy posts (from whatever platform you use) looks pretty now:
  • Improved the search page ( more features incoming ).
  • The default view is now Local, instead of All, since all would show all federated posts.
  • User settings are now shared across browsers ( a page refresh will pick up changes ).
  • A much leaner mobile view.

Backend

  • Re-organized the rust codebase into separate workspaces for backend and frontend.
  • Removed materialized views, making the database a lot faster.
  • New post sorts Active (previously called hot), and Hot. Active shows posts with recent comments, hot shows highly ranked posts.
  • New sort for Local ( meaning from local communities).
  • Customizeable site, user, and community icons and banners.
  • Added user preferred names / display names, bios, and cakedays.
  • Visual / Audio captchas through the lemmy API.
  • Lots of API field verifications.
  • Upgraded to pictrs-v2 ( thanks to @asonix )
  • Wayyy too many bugfixes to count.

Contributors

We’d also like to thank both the NLnet foundation for their support in allowing us to work full-time on Lemmy ( as well as their support for other important open-source projects ), those who sponsor us, and those who help translate Lemmy. Every little bit does help. We remain committed to never allowing advertisements, monetizing, or venture-capital in Lemmy; software should be communal, and should benefit humanity, not a small group of company owners.

Upgrading

Testing Federation

Federation is finally ready in Lemmy, pending possible bugs or other issues. So for now we suggest to enable federation only on test servers, or try it on our own test servers ( enterprise, ds9, voyager ).

If everything goes well, after a few weeks we will enable federation on dev.lemmy.ml, at first with a limited number of trusted instances. We will also likely change the domain to https://lemmy.ml . Keep in mind that changing domains after turning on federation will break things.

To enable on your instance, edit your lemmy.hjson federation section to enabled: true, and restart.

Connecting to another server

The server https://ds9.lemmy.ml has open federation, so after either adding it to the allowed_instances list in your config.hjson, or if you have open federation, you don’t need to add it explicitly.

To federate / connect with a server, type in !community_name@server.tld, in your server’s search box like so.

To connect with the main community on ds9, the search is !main@ds9.lemmy.ml.

You can then click the community, and you will see a local version of the community, which you can subscribe to. New posts and comments from !main@ds9.lemmy.ml will now show up on your front page, or /c/All