Skip Navigation
announcements

Announcements

  • dessalines Dessalines @lemmy.ml
    Featured
    Lemmy v0.19.5 Release - A Few Bugfixes

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Changes

    This is a smaller bugfix release, with the following changes:

    Lemmy

    Lemmy-UI

    Full Changelog

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Thanks to everyone

    We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for over three years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.

    2
  • Lemmy v0.19.4 Release - Image Proxying and Federation improvements

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    This v0.19.4 release is a big one, with > 200 pull requests merged since v0.19.3. As such we can only give a general overview of the major changes in this post, and without going into detail. For more information, read the full changelogs at the bottom of this post.

    Local Only Communities

    Communities have a new visibility setting, which can be either Public (current behaviour) or LocalOnly. The latter means that the community won't federate, and can only be viewed by users who are logged in to the local instance. This can be useful for meta communities discussing moderation policies of the local instance, where outside users shouldn't be able to participate. It is also a first step towards implementing private communities. Local only communities still need more testing and should be considered experimental for now.

    Image Proxying

    There is a new config option called image_mode which provides a way to proxy external image links through the local instance. This prevents deanonymization attacks where an attacker uploads an image to his own server, embeds it in a Lemmy post and watches the IPs which load the image.

    Instead if image_mode is set to ProxyAllImages, image urls are rewritten to be proxied through /api/v3/image_proxy. This can also improve performance and avoid overloading other websites. The setting works by rewriting links in new posts, comments and other places when they are inserted in the database. This means the setting has no effect on posts created before the setting was activated. And after disabling the setting, existing images will continue to be proxied. It should also be considered experimental.

    Many thanks to @asonix for adding this functionality to pict-rs v0.5.

    Post hiding

    You can now hide a post as a dropdown option, and there is a new toggle to filter hidden posts in lemmy-ui. Apps can use the new show_hidden field on GetPosts to enable this.

    Moderation enhancements

    With the URL blocklist admins can prevent users from linking to specific sites.

    Admins and mods can now view the report history and moderation history for a given post or comment.

    The functionality to resolve reports automatically when a post is removed was previously broken and is now fixed. Additionally, reports for already removed items are now ignored.

    The site.content_warning setting lets admins show a message to users before rendering any content. If it is active, nsfw posts can be viewed without login.

    Mods and admins can now comment in locked posts.

    Mods and admins can also use external tools such as LemmyAutomod for more advanced tools.

    Media

    There is a new functionality for users to list all images they have previously uploaded, and delete them if desired. It also allows admins to view and delete images hosted on the local instance.

    When uploading a new avatar or banner, the old one is automatically deleted.

    Instance admins should also checkout lemmy-thumbnail-cleaner which can delete thumbnails for old posts, and free significant amounts of storage.

    Federation

    Lemmy can now federate with Wordpress, Discourse and NodeBB. So far there was only minor testing and these projects are still under heavy development. If you encounter any issues federating with these platforms, open an issue either in the Lemmy repo or in the respective project's issue tracker. You can test it by fetching the following posts:

    In order to improve interoperability with Mastodon and other microblogging platforms, Lemmy now automatically includes a hashtag with new posts. The hashtag is based on the community name, so posts to /c/lemmy will automatically have the hashtag #lemmy. This makes Lemmy posts much easier to discover.

    Reliability and security of federation have been improved, and numerous bugs squashed. Signed fetch was broken and is fixed now.

    Vote display user setting

    There is now a user setting to change the way vote counts are displayed, called vote display mode.

    You can specify which of the following vote data you'd like to see (or hide): Upvotes, Downvotes, Score, Upvote Percentage, or none of the above. The default (based on user feedback) is showing the upvotes + downvotes.

    App developers will need to update their apps to support this setting.

    RSS Feeds

    RSS feeds now include post thumbnail and embedded images.

    Security Audit

    A security audit was recently performed on Lemmy. Big thanks to Radically Open Security for the generous funding, and to Sabrina Deibe and Joe Neeman for carrying out the audit. The focus was on federation logic, and discovered various problems in this area. Most of the problems are being mitigated as part of this release. Fortunately no critical security vulnerabilities were discovered.

    This is already the third security audit of Lemmy, all organized by ROS. We're greatly indebted to them for their support.

    Other Changes

    Full Changelog

    Upgrade instructions

    Warning: This version requires both a Postgres and Pictrs version upgrade, which requires manual intervention.

    Follow the upgrade instructions for ansible or docker.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Thanks to everyone

    We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.

    Special thanks goes to Radically Open Security, @sleepless and @matc-pub for their work on lemmy-ui and lemmy-ui-leptos, @dullbananas for their help cleaning up the back-end, DB, and reviewing PRs, @phiresky for federation work, @MV-GH for their work on Jerboa and API suggestions, @asonix for developing pictrs, @ticoombs and @codyro for helping maintain lemmy-ansible, @kroese, @povoq, @flamingo-cant-draw, @aeharding, @Nothing4U, @db0, @MrKaplan, for helping with issues and troubleshooting, and too many more to count.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for over three years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.

    53
  • Lemmy Development Update 2024-05-24

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    We're readying the release of Lemmy v0.19.4 (currently on 0.19.4-rc.2), in the upcoming weeks, but still have a few more issues to address, and testing that needs to be done. If you'd like to help us test betas to help find issues, you can go to https://voyager.lemmy.ml or ds9.lemmy.ml for the newest RC, or run your own test ones locally from our beta docker tags.

    Please do not run unreleased builds in production, as these could cause issues which require some manual intervention to fix.

    We've also added a few github milestones for our upcoming releases, to keep track of what we'll be working on, but you can also look at our pending pull requests.

    ---

    @flamingo-cant-draw increased the character limit for alt-text fields.

    @dullbananas just graduated from high school and will have a lot more time to work on Lemmy for a few months. Has been working on a custom database migration runner.

    @matc-pub cleaned up and added a lot of asynchronous loading for various components in lemmy-ui.

    @sleepless and matc-pub fixed an issue with leap years in lemmy-ui.

    @sleepless fixed a bug with admin settings in lemmy-ui, fixed an issue with language not allowed, fixed an issue with video thumbnails, and upgraded to a non-deprecated QR library. Has also been adding a lot of the backbone for lemmy-ui-leptos.

    @nutomic fixed some issues with importing partial settings backups, 2, made NodeInfo standard compliant, and upgraded to 2.1, added some test cases for user reports, removed unused federation code, added a stricter rate limit for logins, made password reset tokens non-reusable, marked DB fields as sensitive so they don't show up in logs, allowed passing of command-line params via environment vars. Also prevented removal of comments which are already deleted, and configured a max comment width in clippy.

    @dessalines fixed some issues with image proxying, 2, made some fixes to our woodpecker CI jobs. Replies and mentions are now correctly hidden for blocked users.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    10
  • Lemmy Development Update 2024-05-11

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    We're readying the release of Lemmy v0.19.4 in the upcoming weeks, but still have a few more issues to address, and testing that needs to be done. If you'd like to help us test betas to help find issues, you can go to https://voyager.lemmy.ml for the newest beta, or run your own test ones locally from our beta docker tags.

    Please do not run unreleased builds in production, as these could cause issues which require some manual intervention to fix.

    We've also added a few github milestones for our upcoming releases, to keep track of what we'll be working on, but you can also look at our pending pull requests.

    ---

    @ticoombs converted our docker upgrade script to the newer version, and has been readying lemmy-ansible for the next release.

    @dullbananas optimized the actor language inserts, and fixed an issue with triggers locking the tables.

    @sleepless Removed an unecessary login step from our crates.io publish, fixed a deprecated reliance on encoding.rs, fixed an issue with onBlur in lemmy-ui, and added a dependency on lemmy-rs-client for lemmy-ui-leptos, which included a lot of structural changes. Fixed an issue with broken direct messages in lemmy-ui, and a bug with newly-created communities.

    @nutomic added setting the show_nsfw site setting based on content_warning, fixed an issue with Discourse federation, added NodeBB federation, fixed an issue with crashes for missing domains, added wordpress federation, fixed an issue with early exits when only running scheduled tasks, added a timeout on incoming activities, and made instance.preferred_username optional.

    @dessalines fixed an issue with broken community outboxes, fixed an issue with search returning deleted / removed posts. The liked_only for GetPosts now doesn't return your own items, making this more usable to show a history of your likes.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    6
  • Lemmy Development Update 2024-04-26

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    We're readying the release of Lemmy v0.19.4 in the upcoming weeks, but still have a few performance and front-end issues to address. If you'd like to help us test betas to help find issues, you can go to https://voyager.lemmy.ml for the newest beta, or run your own test ones locally from our beta docker tags.

    Please do not run unreleased builds in production, as these could cause issues which require some manual intervention to fix.

    ---

    @snan fixed parent comment context links.

    @matc-pub added mixins to simplify tippy popups and scroll-restoration, and conditional rendering to lemmy-ui. Also fixed deselecting community / creator filter for the search form. Added blur server-side-rendering by default for content-warning sites.

    @sleepless added an adult consent popup to lemmy-ui, to account for the new site.content_warning field. Fixed an issue with fallback images. Prevent video embeds from displaying, for content-warning sites. Added a way to view historical mod actions done on a single post or comment.

    @dullbananas moved the SQL triggers out of migrations, and into a reusable SQL file. This will really help with fixing / tweaking database triggers.

    @dessalines fixed extra modlog entries when filtering by post or comment id, removed the scheme from URL blocks to prevent duplicate http / https regex matches, made all single-row database fetches return an Option so as to catch the missing case more explicitly, created a LocalImageView so that front ends can better handle listing media. Also added the image upload views for users and admins to lemmy-ui. Full federated usernames are also always shown now for non-local users. Added vote display mode preferences to lemmy-ui, with upvotes / downvotes as the default. Added a banned indicator to the view votes popup.

    @nutomic and @kroese have been fixing / tweaking thumbnail generation.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    7
  • Lemmy Development Update 2024-04-12

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    @snan fixed parent comment linking when not showing context in lemmy-ui in #2417.

    @matc-pub fixed deselecting community/creator filter for search form in #2416.

    @aeharding fixed incorrectly escaped user data export JSON in lemmy-ui.

    @kroese added a fix for the pictrs image mode setting.

    @richardj added a comment margin to lemmy-ui.

    @tracyspace fixed unecessarily duped notifications.

    @jim-taylor-business added ignoring lemmy config based on an ENV var. Has also been working on lemmy-ui-leptos.

    @dullbananas optimized set featured posts, added more test coverage.

    @SleeplessOne1917 added url blocking and post hiding to lemmy-ui and has, more generally, been preparing lemmy-ui to support the 0.19.4 features added to the backend. He has also been working on lemmy-ui-leptos.

    @dessalines added alt text and custom thumbnail to lemmy-ui. Fixed private message sort order. Fixed the docker release.. Partially fixed custom thumbnail updates.. Fixed a bug where comment notifs wouldn't be sent to blocked instances.. Changed defaults on user vote display mode to upvotes + downvotes. Converted many Result<..., LemmyError> into LemmyResult. #4614.

    @nutomic added metadata and thumbnail fetching in the background. Added caching of LocalSite::read. Added ignoring of old federated post edits.. Changed exponential backoff for federation sends.. Added a test for fetching from a local url. Fixed a wrongly merged breaking change related to public_key, and reduced api cache duration.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    10
  • Lemmy Development Update 2024-03-29

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    @sunaurus fixed our rate-limiter and is working on federation of local site bans.

    @SleeplessOne1917 added banned_from_community to post and comment views. Added a matrix account link to the create private message form. User emails are now shown for registration applications, to stop spam emails. Worked on notifying users when they're banned from a community.

    @matc-pub reworked and cleaned up lemmy-ui's query parsing.

    @rodrigo-fm added a loading skeleton for posts / comments to lemmy-ui.

    @phiresky and @dullbananas have been doing a lot of work reviewing PRs, and finishing up current ones.

    @nutomic worked on generating post thumbnail/metadata in background, deleting old avatar/banner/icon's when uploading a new one. On registration, automatically set content languages from accept-language headers. Migrated apub block activity to standard endTime property and deprecate expires. Added delete user field removeData to apub assets. Fixed handling of apub downvotes.

    @dessalines has worked on fixing some issues with Woodpecker, our CI, deleting a person's local images on account deletion., adding a listMedia endpoint for users and admins to view local image uploads. Also added a creator_banned_from_community to vote views, and fixed an issue with comment replies being wrongly marked as read.. Also made jerboa use a new preference library.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    17
  • Lemmy Development Update 2024-03-15

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    We failed to publish the update last Friday as scheduled, so this update contains more changes than usual. We also added @dullbananas as maintainer for the Lemmy backend repo.

    @matc-pub reduced the amount of data that needs to be fetched by the browser for rendering lemmy-ui, by loading only translations which are actually used.

    @flamingo-cant-draw added a URL Blocklist, to prevent link spamming.

    @SleeplessOne exposed Lemmy errors in the Rust API. In lemmy-ui he added a badge for number of local subscribers to a community and added a UI to see and edit community visibility. In the leptos UI, he made the UI use the lemmy-client crate for API requests.

    @Nutomic fixed synchronization of featured posts. He added a 'delete content' checkbox for account deletion which was missing from previous releases. He also fixed various bugs related to password reset, signed fetch from Mastodon, search listing type, password reset and 2FA. He updated the federation library with security improvements. Added dont require leading ! or @ for webfinger resolve. Fixed video thumbnail generation.. Added including an apub hashtag with a post.

    @Dessalines added a new API endpoint for users to hide posts. He made various moderation improvements, such as removing content from local communities when a remote user is banned or purged, viewing mod action history and report history for specific posts and comments. Additionally he added an alt_text field for posts, and a new user setting for vote display mode. Also added extra fields to PostReport and CommentReport views. Has also, along with @MV-GH, been making many improvements to Jerboa.

    In personal news, @nutomic's daugher will be born next month. Afterwards he will take a break from Lemmy to take care of her for some months.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    26
  • Lemmy Development Update 2024-02-23

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    The last two weeks had these changes merged:

    @Sleepless added a field so that users can see if they've been banned from a community. Has been refactoring Lemmy's exports to make them more easily used by 3rd party libraries, such as their lemmy-client-rs , and lemmy-ui-leptos. Added an animated avatar setting for users.

    Has also been making improvements to lemmy-ui such as fixing a scroll bug, and hiding WYSIWYG buttons on preview. Has also been working a lot on lemmy-ui-leptos.

    @Nutomic created an rfc for private communities, fixed an issue with the database logging connection URLs on an error. Added an optional site content warning and post-listing-mode. Also did a lot of code reviews.

    @dullbananas fixed an issue with Comment Report reads, added better query plans, and is working on many DB improvements.

    @dessalines added an instance-level default post sort. Added a maintenance task to clean up old denied users from the DB.. Made sure that blocking an instance also hides private messages from their users, to prevent harassment. He also added the ability to specify custom thumbnails for posts. Fixed an issue with auto-resolving reports when removing a post or comment.

    Has also been making a lot of additions to Jerboa, such as admin registration applications, report queues, comment distinguishing, banning users from their profile page, privacy policies, and muted / smaller federated names.

    @sunaurus created an rfc for separate report inboxes for mods and admins.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    19
  • Lemmy Development Update 2024-02-09

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    The last two weeks were rather quiet, with only some minor changes merged:

    @Elara6331 made improvements to the RSS feeds, adding thumbnails and filtering invalid characters. She also made a change to account creation, so that new accounts automatically have the correct interface language.

    @iatenine increased the font sizes in lemmy-ui.

    @Kradyz improved the message of the add mod dialog.

    @dessalines has been adding more mod tools to jerboa: adding ban actions and viewing votes.

    @Sleepless has been working on lemmy-ui-leptos, as well as creating a rust api library for lemmy called lemmy-client-rs.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    5
  • Lemmy Developer AMA and Dev Update, 2024-01-26, 1500 CEDT

    This is a chance for any users, admins, or developers to ask anything they'd like to myself, @nutomic@lemmy.ml , SleeplessOne , or @phiresky@lemmy.world about Lemmy, its future, and wider issues about the social media landscape today.

    NLNet Funding

    First of all some good news: We are currently applying for new funding from NLnet and have reached the second round. If it gets approved then @phiresky@lemmy.world and SleeplessOne will work on the paid milestones, while @dessalines and @nutomic will keep being funded by direct user donations. This will increase the number of paid Lemmy developers to four and allow for faster development.

    You can see a preliminary draft for the milestones. This can give you a general idea what the development priorities will be over the next year or so. However the exact details will almost certainly change until the application process is finalized.

    Development Update

    @ismailkarsli added a community statistic for number of local subscribers.

    @jmcharter added a view for denied Registration Applications.

    @dullbananas made various improvements to database code, like batching insertions for better performance, SQL comments and support for backwards pagination.

    @SleeplessOne1917 made a change that besides admins also allows community moderators to see who voted on posts. Additionally he made improvements to the 2FA modal and made it more obvious when a community is locked.

    @nutomic completed the implementation of local only communities, which don't federate and can only be seen by authenticated users. Additionally he finished the image proxy feature, which user IPs being exposed to external servers via embedded images. Admin purges of content are now federated. He also made a change which reduces the problem of instances being marked as dead.

    @dessalines has been adding moderation abilities to Jerboa, including bans, locks, removes, featured posts, and vote viewing.

    In other news there will soon be a security audit of the Lemmy federation code, thanks to Radically Open Security and NLnet.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    435
  • Lemmy Security Advisory for Versions &lt; `0.19.1`: Private message details leak.
    github.com Any authenticated user may obtain private message details from other users on the same instance

    ### Summary Users can report private messages, even when they're neither sender nor recipient of the message. The API response to creating a private message report contains the private message it...

    Any authenticated user may obtain private message details from other users on the same instance

    The full description of the bug is in the linked issue above, but the short version is:

    Our CreatePrivateMessageReport endpoint had a bug that would allow anyone, not just the recipient, to create a report, and then receive the details about private messages.

    This allowed anyone to iterate over ids, creating thousands of reports in order to receive details about private messages.

    Since those reports are visible to admins, it would be easy to discover if someone was abusing this, and luckily we haven't heard of anyone doing so on production instances (so far).

    If you haven't, please be sure to upgrade to at least 0.19.1 for the fix.

    Many thanks to @Nothing4You for finding this one.

    11
  • Lemmy Release v0.19.3 - A Few Bugfixes

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    • Fixed lemmy-ui error page bug by @Sleepless in https://github.com/LemmyNet/lemmy-ui/pull/2302
    • Fix bug with Mastodon undo follow activities by @Nutomic in https://github.com/LemmyNet/lemmy/pull/4364
    • Count chars, not bytes for max title length (fixes #4366) by @Nutomic in https://github.com/LemmyNet/lemmy/pull/4367
    • Mark instance as alive after successful activity send (fixes #4039) by @Nutomic in https://github.com/LemmyNet/lemmy/pull/4377
    • Dont allow caching captcha response by @Nutomic in https://github.com/LemmyNet/lemmy/pull/4381
    • Revert "Dont ignore errors during login (fixes #4319) (#4321)" by @Nutomic in https://github.com/LemmyNet/lemmy/pull/4380
    • Removing group from woodpecker, as its deprecated. by @dessalines in https://github.com/LemmyNet/lemmy/pull/4387
    • Add secondary sort by published date for post view (fixes #4383) by @Nutomic in https://github.com/LemmyNet/lemmy/pull/4384

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Thanks to everyone

    We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for over three years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive.

    14
  • Lemmy Development Update: 2024-01-12

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    Yesterday we released Lemmy 0.19.2, which included various federation fixes, as well as a way for admins to view votes.

    @phiresky fixed a federation loop bug, and worked on lemmy-federation-state, a tool to help visualize federation status.

    @sleepless fixed a lemmy-ui theming issue, as well as an issue with lemmy-ui's error pages.

    @dessalines fixed an issue with resolving reports, added the ability for admins to view votes to prevent downvote trolling, upgraded our woodpecker-ci to 2.1, and helped fix various CI issues, and is adding comment and post removing to jerboa.

    @nutomic is fixing an issue with mastodon follows, working on local-only communities, fixed an issue with the lemmy-stats-crawler, fixed an issue with cache-control headers, better handling of federated reports from mastodon and kbin, and much more.

    @dullbananas is fixing up some Lemmy DB triggers, adding a better-organized cursor-based pagination library, and a query plan viewer.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    2
  • Lemmy v0.19.2 Release - More federation fixes

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    • Outgoing federation bug fixes.
    • Lemmy can now receive reports sent from Mastodon and Kbin.
    • Added the ability for admins to view votes, to prevent downvote trolling. Demo. #4088
    • Various bug fixes and minor enhancements.

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Thanks to everyone

    We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for over three years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive.

    30
  • Lemmy.ml is back up! Apologies for the downtime.

    Sometime early this morning, our database started having issues, most likely due to a disk corruption issue.

    Unfortunately the postgres database was unrecoverable, and we had to restore from a nightly backup, so a few hours of posts and comments will be missing.

    Apologies again for the downtime, and for the disruption.

    40
  • Lemmy Development Update 2023-12-22

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    Last Friday we finally released Lemmy 0.19.0, after a long development time and extensive bug fixing. Read the announcement to find out about the major changes. A few days later on Wednesday we had to publish 0.19.1 to fix a few more bugs that slipped through.

    @phiresky fixed the critical bug with outgoing federation in 0.19. Previously he fixed an authentication bug in lemmy-ui which was blocking the 0.19 release.

    @dessalines fixed the broken logic for "hide read posts". He also fixed a problem with email login being case sensitive

    @nutomic reenabled pushing to crates.io so Rust developers can easily interact with Lemmy. He also made performance optimizations for /api/v3/site and the optimized the Activitypub context sent by Lemmy, reducing the database size and the amount of data sent between instances. He fixed various tests to prevent random failures in continuous integration 1 2

    @dullbananas has long been busy improving the database queries for Lemmy, such as fixing a bug in the way different posts sorts are combined, and improving the test cases.

    This is our last update for 2023. It was a very busy year for Lemmy, and it looks like 2024 might have even more changes in store. So lets enjoy these holidays, have a Merry Christmas and Happy New Year!

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    3
  • Lemmy Release v0.19.1 - Outgoing Federation fix

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    0.19.0 has a critical bug where sending outgoing activities can stop working. The bug is fixed in this version. It also fixes the "hide read posts" user setting, fixes a problem with invalid comment paths, and another fix for private message reports.

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker. The upgrade should take less than 30 minutes.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Thanks to everyone

    We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for over three years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

    This month we are running a funding drive with the goal of increasing recurring donations from currently €4.000 to at least €12.000. With this amount @dessalines and @nutomic can each receive a yearly salary of €50.000 which is in line with median developer salaries. It will also allow one additional developer to work fulltime on Lemmy and speed up development.

    Read more details in the funding drive announcement.

    12
  • Lemmy v0.19.0 Release - Instance blocking, Scaled sort, and Federation Queue

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    This release is very large with almost 400 commits since 0.18.5. As such we can only give a general overview of the major changes in this post, and without going into detail. For more information, read the full changelog and linked issues at the bottom of this post.

    Improved Post Ranking

    There is a new scaled sort which takes into account the number of active users in a community, and boosts posts from less-active communities to the top. Additionally there is a new controversial sort which brings posts and comments to the top that have similar amounts of upvotes and downvotes. Lemmy's sorts are detailed here.

    Instance Blocks for Users

    Users can now block instances. Similar to community blocks, it means that any posts from communities which are hosted on that instance are hidden. However the block doesn't affect users from the blocked instance, their posts and comments can still be seen normally in other communities.

    Two-Factor-Auth Rework

    Previously 2FA was enabled in a single step which made it easy to lock yourself out. This is now fixed by using a two-step process, where the secret is generated first, and then 2FA is enabled by entering a valid 2FA token. It also fixes the problem where 2FA can be disabled without passing any 2FA token. As part of this change, 2FA is disabled for all users. This allows users who are locked out to get into their account again.

    New Federation Queue

    Outgoing federation actions are processed through a new persistent queue. This means that actions don't get lost if Lemmy is restarted. It is also much more performant, with separate senders for each target instance. This avoids problems when instances are unreachable. Additionally it supports horizontal scaling across different servers. The endpoint /api/v3/federated_instances contains details about federation state of each remote instance.

    Remote Follow

    Another new feature is support for remote follow. When browsing another instance where you don't have an account, you can click the subscribe button and enter the domain of your home instance in the popup dialog. It will automatically redirect you to your home instance where it fetches the community and presents a subscribe button. Here is a video showing how it works.

    Authentication via Header or Cookie

    Previous Lemmy versions used to send authentication tokens as part of the parameters. This was a leftover from websocket, which doesn't have any separate fields for this purpose. Now that we are using HTTP, authentication can finally be passed via jwt cookie or via header Authorization: Bearer <jwt>. The old authentication method is not supported anymore to simplify maintenance. A major benefit of this change is that Lemmy can now send cache-control headers depending on authentication state. API responses with login have cache-control: private, those without have cache-control: public, max-age=60. This means that responses can be cached in Nginx which reduces server load.

    Moderation

    Reports are now resolved automatically when the associated post/comment is marked as deleted. This reduces the amount of work for moderators. There is a new log for image uploads which stores uploader. For now it is used to delete all user uploads when an account is purged. Later the list can be used for other purposes and made available through the API.

    Cursor based pagination

    0.19 adds support for cursor based pagination on the /api/v3/post/list endpoint. This is more efficient for the database. Instead of a query parameter ?page=3, listing responses now include a field "next_page": "Pa46c" which needs to be passed as ?page_cursor=Pa46c. The existing pagination method is still supported for backwards compatibility, but will be removed in the next version.

    User data export/import

    Users can now export their data (community follows, blocklists, profile settings), and import it again on another instance. This can be used for account migrations and also as a form of backup. The export format is designed to remain unchanged for a long time. You can make regular exports, and if the instance becomes unavailable, register a new account and import the data. This way you can continue using Lemmy seamlessly.

    Time zone handling

    Lemmy didn't have any support for timezones, which led to bugs when federating with other platforms. This is now fixed by using UTC timezone for all timestamps.

    ARM64 Support

    Thanks to help from @raskyld and @kroese, there are now offical Lemmy releases for ARM64 available.

    Activity now includes voters

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker. The upgrade should take less than 30 minutes.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Pict-rs 0.5 is also close to releasing. The upgrade takes a while due to a database migration, so read the migration guide to speed it up. Note that Lemmy 0.19 still works perfectly with pict-rs 0.4.

    Thanks to everyone

    We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for over three years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

    This month we are running a funding drive with the goal of increasing recurring donations from currently €4.000 to at least €12.000. With this amount @dessalines and @nutomic can each receive a yearly salary of €50.000 which is in line with median developer salaries. It will also allow one additional developer to work fulltime on Lemmy and speed up development.

    Read more details in the funding drive announcement.

    75
  • Lemmy Development Update 2023-12-01

    Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.

    This week we finally started deploying 0.19 release candidates to lemmy.ml, as a final testing step before release. Unfortunately there are some nasty authentication which we have been attempting to debug all week, without success so far. So it will take some more time to fix this and other issues before publishing the final version.

    @rasklyd made Lemmy releases for ARM64 platforms possible. @kroese did the same for lemmy-ui. This means that official releases from Lemmy 0.19 will work on devices such as Raspberry Pi.

    @dessalines has been very busy attempting to fix the previously mentioned authentication bug. He also worked on other bug fixes and upgraded Jerboa for Lemmy 0.19.

    @nutomic again fixed various problems that were introduced during 0.19 development, to get ready for the release.

    @Sleeplessone1917 implemented the frontend for user settings import/export. He also started work on an overhaul of context menus.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.

    15
  • Lemmy.ml `v0.19` upgrade issues and downtime.

    In anticipation of Lemmy's upcoming 0.19 release, and to work out any final issues, we're going to deploy a test release on lemmy.ml within the next few days.

    We're doing this testing on lemmy.ml only, so that we can encounter any issues before the release, and to make sure the upgrade process is smooth for other production servers.

    Some of the following will happen during the process:

    • Apps will likely break (only for lemmy.ml)
    • Lemmy.ml may experience some downtime for the upgrade to complete (ideally no more than an hour).
    • If anything goes wrong, we may have to restore from a database backup, meaning content made in between backups may be lost.

    If all goes well, we'll have an official announcement for the release after this testing period.

    I apologize for the difficulties this might cause. At most this will be a week of hair-pulling, but its vital that we catch any issues before telling other servers to upgrade.

    205
  • Join-Lemmy.org Redesign and Funding Drive

    Some months have passed on since the Reddit blackout this June. It led to an explosive growth in Lemmy users, and lots of urgent work in scaling, bug fixes, user onboarding and more. Since then things have calmed down significantly, giving us breathing room and time to get more long-term work done.

    As of Nov. 2023, Lemmy is at ~36k active daily users 🥳 (those who have posted or commented within the last month). While user counts are not an explicit goal of ours, this is still a tremendous achievement, and one which we can all be proud to be a part of. It shows that people truly do want alternatives to US tech companies, and will use them if they exist.

    Join-Lemmy Redesign

    Most recently we've been working on a redesign of join-lemmy.org to provide a better onboarding experience and cater towards new users. This includes:

    • A helpful new instance picker to reduce choice overload.
    • The instances page is now filterable, based a set of topics and languages, as well as sortable based on activity. The default sort is Random, to encourage people to join smaller servers.
    • The apps page now has sections for Android, iOS, and web apps, as well as libraries. Feel free to do a pull request to add any apps that are missing.
    • The donate page now shows the total amount of monthly donations across all platforms. More details below.
    • The technology used is Typescript with tailwind and daisyUI CSS frameworks.

    For server admins: If your instance isn't listed already, you must explicitly add your server topics and languages by doing a pull request to this file.

    As you may have noticed, texts on the website are unchanged, and images on the main page are still generic placeholders. We are hoping for your contributions to improve them. For the texts, edit this file. Translations are managed via weblate. Images are located in this folder. If you are good with AI tools, consider replacing main_federation.webp and similar with more colorful images. More main_screen_x.webp images with custom themes or alternative frontends would be nice too. In general feel free to open issues or pull requests for improvements to the site.

    Funding Drive

    Before the Reddit migration, our income was almost exclusively made up of generous donations from the NLnet foundation. This funding was based on getting paid for implementing new features, specified in advance.

    We've known that this funding could not last indefinitely, and that after several years of funding, NLnet's resources are better spent getting other projects up and running. Additionally, much of our time is spent on other equally important work: reviewing changes from community contributors, fixing bugs, doing support, and various organizational tasks.

    That is why we are launching our first annual funding drive. The goal is to increase monthly, recurring donations from currently €4.000 to at least €12.000. With this amount @dessalines and @nutomic can each receive a yearly salary of €50.000 which is in line with median developer salaries. It will also allow one additional developer to work fulltime on Lemmy and speed up development.

    Recurring donations from Lemmy users are the most sustainable solution for the future. It also means that we need to worry less about funding, and can focus more on improving Lemmy. And instead of being accountable to an external organization, we work directly for Lemmy's users. While one-time donations are also welcome, they are too unpredictable for long-term planning.

    You can find available donation options on the donate page. This page was also updated during the redesign to display current donations and funding goals. If each active Lemmy user donated ~€0.33 per month it would be enough for 3 full-time developers. So please consider donating if you use Lemmy every day. Our preferred donation platform is Liberapay because it doesn't have any payment fees or delays, and is itself open source.

    Besides Lemmy's developers, please consider donating to those who develop open-source apps or software for the Lemmy ecosystem, as well as server admins and moderation teams who are the backbone of the Lemmyverse. We would be happy to add donation links for the above to join-lemmy.org as well!

    If you have any suggestions in regards to the topics mentioned in this post, please let us know. We also want to use this opportunity to thank the countless contributors who are working on Lemmy now.

    17
  • Lemmy v0.18.5 Release

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    This release fixes a problem with federation of moderation actions performed by admin accounts. Specifically there is an check when receiving remote federation actions, which is incorrectly rejecting them in some cases. The problem is fixed by this release.

    There are no other changes, and no updated lemmy-ui version.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. No one likes recurring donations, but they’ve proven to be the only way that open-source software like Lemmy can stay independent and alive.

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker. There are no config or API changes with this release.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Changes

    Lemmy

    • Fix federation of admin actions (#3988)
    6
  • Lemmy v0.18.4 Release

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    This version fixes the problem of comment context not loading properly. It also fixes a couple other bugs.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. No one likes recurring donations, but they’ve proven to be the only way that open-source software like Lemmy can stay independent and alive.

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker. There are no config or API changes with this release.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    81
  • We're the creators of Lemmy, Ask Us Anything. *Starts Monday, 7 Aug, 1500 CEST*

    This is an opportunity for any users, server admins, or interested third parties to ask anything they'd like to @nutomic@lemmy.ml and I about Lemmy. This includes its development and future, as well as wider issues relevant to the social media landscape today.

    Note: This will be the thread tmrw, so you can use this thread to ask and vote on questions beforehand.

    Original Announcement thread

    715
  • Upcoming AMA with Lemmy's creators: Monday, 7 Aug, 1500 CEST

    This is an opportunity for any users, server admins, or interested third parties to ask anything they'd like to @nutomic@lemmy.ml and I about Lemmy. This includes its development and future, as well as wider issues relevant to the social media landscape today.

    90
  • Lemmy v0.18.3 Release

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    This version brings major optimizations to the database queries, which significantly reduces CPU usage. There is also a change to the way federation activities are stored, which reduces database size by around 80%. Special thanks to @phiresky for their work on DB optimizations.

    The federation code now includes a check for dead instances which is used when sending activities. This helps to reduce the amount of outgoing POST requests, and also reduce server load.

    In terms of security, Lemmy now performs HTML sanitization on all messages which are submitted through the API or received via federation. Together with the tightened content-security-policy from 0.18.2, cross-site scripting attacks are now much more difficult.

    Other than that, there are numerous bug fixes and minor enhancements.

    Support development

    @dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. No one likes recurring donations, but they’ve proven to be the only way that open-source software like Lemmy can stay independent and alive.

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker. There are no config or API changes with this release.

    This upgrade takes ~5 minutes for the database migrations to complete.

    You may need to run sudo chown 1000:1000 lemmy.hjson if you have any permissions errors.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    76
  • Lemmy v0.18.1 Release

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    This release includes major improvements to performance, specifically optimizations of database queries. Special thanks to @phiresky, @ruud, @sunaurus and many others for investigating these. Additionally this version includes a fix for another cross-site scripting vulnerability. For these reasons instance admins should upgrade as soon as possible.

    As promised, captchas are supported again. And as usual there are countless bug fixes and minor improvements, many of them contributed by community members.

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from NLnet foundation.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.

    56
  • Lemmy v0.18.0 Release

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    HTTP API instead of Websocket

    Until now Lemmy-UI used websocket for all API requests. This has many disadvantages, like making the code harder to maintain, and causing live updates to the site which many users dislike. Most importantly, it requires keeping a connection open between server and client at all times, which causes increased load and makes scaling difficult. That's why we decided to rip out websocket entirely, and switch to HTTP instead. This change was made much more urgent by the sudden influx of new users. @CannotSleep420 and @dessalines have been working hard for the past weeks to implement this change in lemmy-ui.

    HTTP on its own is already more lightweight than websocket. Additionally it also allows for caching of server responses which can decrease load on the database. Here is an experimental nginx config which enables response caching. Note that Lemmy doesn't send any cache-control headers yet, so there is a chance that private data gets cached and served to other users. Test carefully and use at your own risk.

    Two-Factor Authentication

    New support for two-factor authentication. Use an app like andOTP or Authenticator Pro to store a secret for your account. This secret needs to be entered every time you login. It ensures that an attacker can't access your account with the password alone.

    Custom Emojis

    Instance admins can add different images as emojis which can be referenced by users when posting.

    Other changes

    Progressive Web App

    Lemmy's web client can now be installed on browsers that support PWAs, both on desktop and mobile. It will use an instance's icon and name for the app if they are set, making it look like a given instance is an app.

    Note for desktop Firefox users: the desktop version of Firefox does not have built in support for PWAs. If you would like to use a Lemmy instance as a PWA, use use this extension.

    Error Pages

    Lemmy's web client now has error pages that include resources to use if the problem persists. This should be much less jarring for users than displaying a white screen with the text "404 error message here".

    Route Changes

    Pages that took arguments in the route now take query parameters instead. For example, a link to lemmy.ml's home page with a few options used to look like this:

    https://lemmy.ml/home/data_type/Post/listing_type/All/sort/Active/page/1

    The new route would look like this:

    https://lemmy.ml?listingType=All Note that you now only have to specify parameters you want instead of all of them.

    Searchable select redesign

    The searchable selects, such as those used on the search page, have a new look and feel. No more inexplicable green selects when using the lightly themes!

    Share button

    Posts on the web client now have a share button on supported browsers. This can be used to share posts to other applications quickly and easily.

    Lemmy-UI Overall look and feel

    lemmy-ui is now upgraded to bootstrap 5, and every component is now much cleaner.

    Special thanks to sleepless, alectrocute, jsit, and many others for their great work on improving and re-organizing lemmy-ui.

    Database optimizations

    Special thanks to johanndt, for suggesting improvements to Lemmy's database queries. Some of these suggestions have already been implemented, and more are on the way.

    Query speed is Lemmy's main performance bottleneck, so we really appreciate any help database experts can provide.

    Captchas

    Captchas are not available in this version, as they need to be reimplemented in a different way. They will be back in 0.18.1, so wait with upgrading if you rely on them.

    Upgrade instructions

    Follow the upgrade instructions for ansible or docker.

    If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for almost three years. This is largely thanks to support from NLnet foundation.

    If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. No one likes recurring donations, but they've proven to be the only way that open-source software like Lemmy can stay independent and alive.

    33
  • Lemmy 0.18 is ready for testing

    The new major version of Lemmy is now ready, and we need your help with testing. Most importantly it uses HTTP for API requests now, which is much more efficient than websocket. Additionally Two-factor-auth is supported. There are also countless other improvements and bug fixes.

    You can register on any of the following servers to start testing, no approval required. You can post to your hearts content to find out if anything is broken. The test instances only federate with each other to avoid affecting production instances with spam.

    If you encounter any bugs that aren't present in 0.17, open an issue and mention in the title that it happened with a release candicate version. Over the next days we will publish new RC versions to fix bugs that will invariably pop up.

    Instance admins can try the new version by using Docker images dessalines/lemmy-ui:0.18.0-rc.2 and dessalines/lemmy:0.18.0-rc.1. Make sure that working backups are in place. For production instances its better to wait at least some days for the major issues to be fixed.

    2
  • Lemmy v0.17.4 Release
    github.com Release v0.17.4 Release · LemmyNet/lemmy

    Includes Some DB optimizations. The DB upgrade should take ~30 minutes for servers with a lot of content. Be patient. Fixes for a few security vulnerabilities. Full Release notes to come with n...

    Release v0.17.4 Release · LemmyNet/lemmy

    Its been a hectic week everyone, so I apologize that I haven't been as responsive as usual. We realized that we could either spend all our day answering questions, or coding to make lemmy better, so we're prioritizing the latter.

    Reddit caught us right in the middle of one of our larger performance improvements, so I apologize for the instability of instances like this one. But I'm confident that lemmy will improve, especially due to all the new contributors helping out with performance, security fixes, and stability.

    Please use our the issue trackers for the various lemmy projects to report issues, otherwise they will likely get lost.

    Call for testers

    • You can help us test patch releases like this one at https://enterprise.lemmy.ml
    • We're readying the 0.18.0 release soon, you can help us test at https://voyager.lemmy.ml , and https://ds9.lemmy.ml
      • App devs should use voyager.lemmy.ml to test and prepare for 0.18.0, which should come in the next few weeks. The API changes and new types can be seen here.
      • 0.18.0 should give servers a big performance boost by removing websockets and switching entirely to HTTP. It also will add a lot of features like 2fa / TOTP.
    0
  • Lemmy Release v0.17.0

    Its been a long time coming 🥳 .

    Excerpt from the link:

    Major Changes

    Language Tags

    Content can now be tagged to indicate the language it is written in. These tags can be used to filter content, so that you only see posts in languages which you actually understand. Instances and communities can also specify which languages are allowed, and prevent posting in other languages.

    In the future this will also allow for integrated translation tools.

    Comment trees

    Lemmy has changed the way it stores comments, in order to be able to properly limit the comments shown to a maximum depth.

    Included are proper comment links (/comment/id), where you can see its children, a count of its hidden children, and a context button to view its parents, or the post.

    Featured posts

    Admins and mods can now "feature" (this used to be called "sticky" ala reddit) posts to the top of either a community, or the top of the front page. This makes possible announcement and bulletin-type posts.

    Special thanks to @makotech for adding this feature.

    Federation

    Lemmy users can now be followed. Just visit a user profile from another platform like Mastodon, and click the follow button, then you will receive new posts and comments in the timeline.

    Votes are now federated as private. This prevents other platforms from showing who voted on a given post, and it also means that Lemmy now counts votes from Mastodon.

    This release also improves compatibility with Pleroma. If you previously had trouble interacting between Pleroma and Lemmy, give it another try.

    We've extracted the main federation logic into its own library, activitypub-federation-rust. It is open source and can be used by other projects to implement Activitypub federation, without having to reinvent the wheel. The library helps with handling HTTP signatures, sending and receiving activities, fetching remote objects and more.

    Other changes

    • Admins can now purge content and pictures from the database.
    • Mods can distinguish a comment, "stickying" it to the top of a post. Useful for mod messages and announcements.
    • Number of new / unread comments are now shown for each post.
    • Lemmy now automatically embeds videos from Peertube, Youtube and other sites which provide an embed link via Opengraph attribute.
    • You can give your site "taglines", short markdown messages, which are shown at the top of your front page. Thanks to @makotech for adding this.
    • You can now report private messages.
    • Most settings have been moved from the config file into the database. This means they can be updated much easier, and apply immediately without a restart.
    • When setting up a new Lemmy instance, it doesn't create a default community anymore. Instead this needs to be done manually.
    • Admins can choose to receive emails for new registration applications.
    • An upgrade of diesel to v2.0, our rust -> postgres layer.
    5
  • Lemmy upgrade tomorrow (or wednesday), and we'll have a few hours of downtime.

    We're getting ready to release a new version of Lemmy, which will require a database upgrade, so we'll have a few hours of downtime.

    0
  • Pictures should be working smoothly now.

    All the old pictures are restored from a backup, and should be working now. We've bought more hard drive space too, so we should be okay for a while.

    0
  • Lemmy Release v0.16.7 - A few bug fixes

    A few bug fixes:

    • Fix missing auth on new post refresh. (#764)
    • Change CSP rule for connect-src (websocket) to wildcard (fixes #730) (#737)
    • Increase default search rate limit. (#2424)
    • Rejected federated pm from blocked users (fixes #2398) (#2408)
    • Handle Like, Undo/Like activities from Mastodon, add tests (fixes #2378) (#2380)
    • Revert "Handle Like, Undo/Like activities from Mastodon, add tests (fixes #2378) (#2380)"
    • Handle Like, Undo/Like activities from Mastodon, add tests (fixes #2378) (#2380)
    • Dont allow login if account is banned or deleted (fixes #2372) (#2374)
    • Fix panics in search_by_apub_id() (fixes #2371) (#2373)
    0
  • Lemmy Release v0.16.0: Theming and Federation Improvements.

    What is Lemmy?

    Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

    Major Changes

    Theming

    Customizing Lemmy is now much easier than before. Instance admins can select a default instance theme under /admin which applies to all users who are not logged in, and those who haven't explicitly picked a theme.

    It is also possible now to add custom themes to an instance, without having to recompile lemmy-ui. When running with Docker, make sure that these lines are present in docker-compose.yml (Ansible will add them automatically if you updated the repo). Then put your .css file into ./volumes/lemmy-ui/extra_themes. The new theme can then be selected by users, or set as instance default.

    For native installation (without Docker), themes are loaded by lemmy-ui from ./extra_themes folder. A different path can be specified with LEMMY_UI_EXTRA_THEMES_FOLDER environment variable.

    For instructions how to create a new theme, have a look at the documentation.

    Federation

    @nutomic made many changes to federation to increase compatibility with other software. Lemmy can now receive deletions from [Pleroma], comments from [Friendica] and communities from lotide. Other actions were already compatible before. Mastodon can now display communities even when a user with identical name exists (but the user can't be viewed in that case). There were no breaking changes necessary, so federation is fully compatible with 0.15. If you notice something in another project that doesn't federate but should, please open an issue.

    Multiple users have pointed out that posts, comments and votes don't federate reliably. We first attempted to fix this in Lemmy 0.15.4 a few days ago, but that didn't help much. Later @nutomic noticed that Lemmy was only sending out activities with 4 worker threads, which is not enough for a big instance like lemmy.ml. At the same time, many of those workers were taken up by sending to broken instances, trying to connect for a minute or more. This version adds a timeout and increases the number of workers.

    Federated bans

    Until now, only community bans were federated, and the "Remove content" option didn't work over federation. The new version fixes this behaviour, so that both site bans and community bans federate, including "Remove content" option and expiry. Note that this change only affects new bans, those which were issued before upgrading to 0.16 will not be federated.

    Hide communities

    @dayinjing implemented a funcionality for instance admins to hide controversial communities. A hidden community is only visible to those users who subscribe to it. This represents a milder alternative to removing a community. This functionality is not implemented in lemmy-ui yet, but admins can hide a community like this via command line: curl -X PUT https://example.com/api/v3/community/hide \ -H "Content-Type: application/json" \ -d \ '{"community_id":3,"hidden":true,"reason":"*reason for mod log*","auth":"*admin jwt token*"}'

    Jerboa: a new android app

    To help adoption, and since most people use social media through their smartphones nowadays, @dessalines has been working on a native android app for Lemmy called Jerboa, which is now on F-Droid and Google Play.

    It is still at an alpha level, but is very usable. We'd love to have experienced android developers contribute to it.

    This now makes three smartphone apps for Lemmy: Lemmur and Jerboa for Android, and Remmel for iOS.

    Upgrade notes

    Follow the Docker or Ansible upgrade instructions here.

    There are three lemmy.hjson config changes. See defaults.hjson for comments and default values.

    • changed boolean email.use_tls to email.tls_type
    • added setup.default_theme
    • added federation.worker_count

    Support development

    We (@dessalines and @nutomic) have been working full-time on Lemmy for almost two years. This is largely thanks to support from NLnet foundation. If you would like to support our efforts, please consider donating.

    If you'd like to support development, and make sure that we will always be available to work full time on Lemmy, consider donating to support its development. We've spent hundreds of hours on Lemmy, and would like to be able to add more developers to our little open-source co-op as time goes on.

    Changes

    API

    Config

    • The config changes are here.
    2
1 Active user