Lemmy maintainer. Like programming in Rust.

Also posting at https://fedibb.ml/view_profile?u=2

  • 183 Posts
  • 1.22K Comments
Joined 3Y ago
cake
Cake day: Jan 17, 2020

help-circle
rss

You can write your own frontend for Lemmy by connecting to the Api and using it to build the HTML. The docs have some more explanation.


There were some suggestions to change the order of instances on join-lemmy.org so that smaller instances are shown near the top. So that could help to spread out users better.


If you upload videos on Peertube, Youtube or any other platform with og:video:url attribute, Lemmy will automatically embed it.





Fetching remote content only works if you are logged in.


Someone should setup a 2westerneurope4u instance which can only be accessed from European IPs.


Make sure you use rustup to install cargo. The debian version is probably too old.


Personally I would block any corporate instances on principle. It’s a community project and not a shopping mall. But I don’t make decisions for lemmy.ml alone.


It’s not necessary to create multiple posts. Instance admins can sticky any federated post to the top of their local site.



Then users would have to deal with key pairs. By using websites we get the domain system which users are already familiar with. And it supports normal password login which is impossible in p2p.



  1. Correct the performance problem now is all from local users (visiting lemmy.ml in their browser or app).

  2. If lemmy.ml goes down, other instances still have full mirrors of them. Users there can interact with their local mirror as usual, and other users can see those interactions. However these would not be federated to other instances (lemmy.ml is responsible for announcing community posts to followers). However federated actions are retried a few times so it might federate later.



You can make a pull request in the lemmy-ui repo to improve it.


There are a few main problems with performance which we are currently fixing:

Federation isnt causing any performance problems, its all due to database reads from local users.


Its not a bug but the mod log could use better filtering.



Then cloudflare would be able to spy on all the traffic so thats not an option.



Hetzner is great but they are very strict about piracy, so its not an option for lemmy.ml. For now the load has gone down so I will leave it like this, but a dedicated OVH server might be an option if load increases again.


Im also considering to setup nginx caching for lemmy.ml. Did you find a configuration which works?




Its just a markdown link so it can point anywhere.


If you really want to improve this, make a pull request. We are already very busy.



You only need to store the content from communities that you follow. So in a single user instance it will be very limited. And anyway its all text which doesnt take much space. Remote images/video are not mirrored.


Its also possible that Reddit rows back from the API change (at least temporarily). I hope they do, so that we have a bit more time to get Lemmy ready.


I fear that we wont be so lucky. If a million people try to check out Lemmy at once, all the instances can go down.




It’s mirrored in both databases.


The one which is most relevant to the topic. So slrpnk.net if its an environmentalist subreddit, or feddit.it if its Italian. There are also a number of small general purpose instances around. I won’t link anything here or else everyone would link to the same instance and it would also go down.


It currently has 8gb and only uses 6gb or so. CPU is the only limitation.


It should be easy once websocket is removed. Sharded postgres and multiple instances of frontend/backend. Though I don’t have any experience with this myself.


Yes everything except images/videos.


lemmy.ml is overloaded, use other instances instead
This site is currently struggling to handle the amount of new users. I have already upgraded the server, but it will go down regardless if half of Reddit tries to join. However Lemmy is federated software, meaning you can interact seamlessly with communities on other instances like beehaw.org or [lemmy.one](https://lemmy.one). The [documentation](https://join-lemmy.org/docs/en/index.html) explains in more detail how this works. Use the [instance list](https://join-lemmy.org/instances) to find one where you can register. Then use the [Community Browser](https://browse.feddit.de/) to find interesting communities. Paste the community url into the search field to follow it. You can help other Reddit refugees by inviting them to the same Lemmy instance where you joined. This way we can spread the load across many different servers. And users with similar interests will end up together on the same instances. Others on the same instance can also automatically see posts from all the communities that you follow. Edit: If you moderate a large subreddit, do not link your users directly to lemmy.ml in your announcements. That way the server will only go down sooner.
fedilink
491
lemmy.ml is overloaded, use other instances instead



Welcome Reddit refugees!
We are happy to see that many of you are exploring Lemmy after Reddit announced changes to its API policy. I maintain this project alongside [@dessalines@lemmy.ml](https://lemmy.ml/u/dessalines). Lemmy is similar to Reddit in many ways, but there is also a major difference: Its not only a single website, but consists of many different websites which are interconnected through federation. This is achieved with the ActivityPub protocol which is also used by Mastodon. It means that you can sign up on any Lemmy instance to interact with users and communities on other instances. The project website has a [list of instances](https://join-lemmy.org/instances) which all have their own rules and administrators. We recommend that you sign up on one of them, to avoid overt centralization on lemmy.ml. Another difference compared to Reddit is that Lemmy is open source, and not funded by any company. For this reason it relies on volunteer work to make the project better, whether it's programming, design, documentation, translating, reporting issues or others. See the [contributing guide](https://join-lemmy.org/docs/en/contributors/01-overview.html) to get started. You can also [donate](https://join-lemmy.org/donate) to support development. We also recommend that you read the [documentation](https://join-lemmy.org/docs/en/index.html). It explains how Lemmy works and how to setup your own Lemmy instance. Running an instance gives you full control over the rules and moderation, and prevents us developers from having any influence. Especially large communities that want to use Lemmy should host their own instance, because existing Lemmy instances would easily be overwhelmed by a large number of new users. Enjoy your time here! If you have any questions, feel free to ask below or in the [Matrix chat](https://matrix.to/#/#lemmy-space:matrix.org).
fedilink



What should be added to Lemmy documentation?
My current task is to improve the Lemmy documentation, particularly to explain things better for people who are new to Lemmy and the Fediverse. For this I would like to know if there are any things that were unclear when you first joined (or even still unclear now). To give you some idea, these are the pages which I plan to write for the first section, with average users in mind: - Getting started (choose an instance, register, follow, setup profile, start posting) - What is federation - Moderation - Censorship resistance - Votes and ranking - Media (Markdown, images, links) - Other features (theming, language tags, ...) Besides this I also plan to improve other parts of the documentation, to add things like documentation for the HTTP API (currently only exists for websocket), a guide to run Lemmy with TOR, and explanation of community/site options. Is there anything else where documentation is missing or requires clarification? By the way, just like other parts of Lemmy the documentation is [open source](https://github.com/LemmyNet/lemmy-docs), and you are welcome to open pull requests with improvements.
fedilink

Announcing crate activitypub-federation 0.4.0: Major rewrite with improvements to usability and documentation
I want to announce a new version of the activitypub-federation crate. Over the last weeks I worked on major improvements to the usability and documentation. It now includes an extensive guide on getting started to implement federation from scratch, and also an example project which can directly be deployed to a server and federate with projects like Mastodon. The library takes care of basic functionality like HTTP Signatures, activity sending, and fetching data from other servers. Application developers can focus on the main logic, and treat federation as another form of API. There is no restriction to the content being federated: you can implement a microblogging platform, link aggregator, video hosting site or any other type of social media. The goal is to encapsulate all basic functionality, so that developers can easily implement federation without any prior knowledge. Using this library can help to share core Activitypub logic between different projects, so that the same code doesn’t have to be implemented and maintained separately by each project. This way improvements can benefit everyone. It also encourages the use of effective patterns to make Rust and Activitypub work together. All of this has been proven to work in Lemmy which uses this library and is the biggest Activitypub project written in Rust. https://docs.rs/activitypub_federation
fedilink

Announcing crate activitypub-federation 0.4.0: Major rewrite with improvements to usability and documentation
I want to announce a new version of the activitypub-federation crate. Over the last weeks I worked on major improvements to the usability and documentation. It now includes an extensive guide on getting started to implement federation from scratch, and also an example project which can directly be deployed to a server and federate with projects like Mastodon. The library takes care of basic functionality like HTTP Signatures, activity sending, and fetching data from other servers. Application developers can focus on the main logic, and treat federation as another form of API. There is no restriction to the content being federated: you can implement a microblogging platform, link aggregator, video hosting site or any other type of social media. The goal is to encapsulate all basic functionality, so that developers can easily implement federation without any prior knowledge. Using this library can help to share core Activitypub logic between different projects, so that the same code doesn’t have to be implemented and maintained separately by each project. This way improvements can benefit everyone. It also encourages the use of effective patterns to make Rust and Activitypub work together. All of this has been proven to work in Lemmy which uses this library and is the biggest Activitypub project written in Rust. https://docs.rs/activitypub_federation
fedilink







This standard document explains how group federation works in Lemmy and other projects. It can be useful to developers who want to implement a similar federation model.
fedilink


Should Mastodon users be able to create threads on Lemmy?
There have been some requests to make it possible for Mastodon users to create threads on Lemmy. At the moment this is not possible because Mastodon cant set the title field which is mandatory in Lemmy. The same problem affects other projects like Pleroma or Friendica (where title is optional). It is unlikely that Mastodon would make any change in this regard, so a workaround in Lemmy would be necessary. I implemented such a workaround which makes the title optional when receiving a federated post, and uses the first line of the content instead. This workaround could also be made configurable per instance or per community. But to be honest I am not sure the workaround is a good idea in general, as it could result in bad titles, and generally more low-quality posts. Thats why I want to know what the community thinks about it.
fedilink

Request for build servers
We are looking for someone who would be willing to provide a build server for Lemmy's continuous integration. This is used to ensure that new changes and pull requests pass all the checks, and that the code is written well. At the moment we are using a small VPS for this purpose (2 vCPU, 2 GB RAM). This works but is quite slow, and can slow down the development process with unnecessary waiting times. For this reason we are looking for a community member with a spare server or computer, who would be willing to provide it as a build server. There are no specific hardware requirements, but the faster the better. The build server has to run 24/7 and run the [Drone Docker Runner](https://docs.drone.io/runner/docker/overview/). The setup is very easy, especially if your machine is already running docker. If you have such a server and are willing to provide it, please comment below with the specs. Additionally we are also looking for an ARM builder, so that we can provide official releases for this platform as well. Note that some Raspberry Pi models seem unable to build Lemmy (our 4GB memory builder failed), so please try if the compilation works on your device. If you can provide an ARM builder, also comment below with the specs.
fedilink




fedibb.ml is open for signup!
Give it a try if you are interested in the project. If you notice any problems, you can [open an issue](https://github.com/LemmyNet/lemmyBB/issues). Contributions are also more than welcome. In a few days I will publish the first release, and make a proper announcement.
fedilink
18

fedibb.ml is open for signup!
Give it a try if you are interested in the project. If you notice any problems, you can [open an issue](https://github.com/LemmyNet/lemmyBB/issues). Contributions are also more than welcome. In a few days I will publish the first release, and make a proper announcement.
fedilink
0

What would be a good name for a lemmyBB flagship instance?
I dont think lemmybb.ml sounds good, so im looking for other suggestions. https://github.com/Nutomic/lemmyBB
fedilink

What would be a good name for a lemmyBB flagship instance?
I dont think lemmybb.ml sounds good, so im looking for other suggestions.
fedilink

This is the first time that people insulted me using software which I created
Its a very interesting feeling. On one hand Im proud because Lemmy has come so far. Two years ago there was only one instance dev.lemmy.ml and no federation. On the other hand disappointed, because some people are unable to appreciate how much time and work I put into this project. Its especially ironic that these attacks are coming from people who pretend to represent the working class.
fedilink




LemmyBB Development Update 1
Here are the new features in lemmyBB which I added since the [original announcement](https://lemmy.ml/post/363093). In case you dont know what it is, LemmyBB is an alternative frontend for Lemmy, based on [phpBB](https://www.phpbb.com/). Sooner or later it will be able to replace lemmy-ui for those who prefer a different user interface. ## Support for site setup Admins can easily initialize their new instance ![](https://lemmy.ml/pictrs/image/6d1f847b-9f33-46de-a25e-690ae2a95f75.png) ## Much improved post editor - Working smileys - Working previews - Working buttons to insert bold, italic, quote etc - Javascript enabled on entire site - Dont need to enter community name manually anymore ![](https://lemmy.ml/pictrs/image/3c4b5024-7c7e-43b6-a06e-cc42c6beabe7.png) ## Support for notifications You will now receive notifications about new replies, mentions and private messages. ![](https://lemmy.ml/pictrs/image/ca0ad6c3-21be-4398-8621-e0cb3672a2cb.png) ## Next tasks There is still a lot of functionality missing, most importantly: - Private messages - Search - Everything related to moderation - Localization - User profiles Contributions are very much welcome!
fedilink

Comment here if you need any help.
fedilink

New domains for Weblate, Gitea, Drone (updated)
I have just finished migrating the services mentioned above to new domains, and also to hosting on the lemmy.ml server, instead of my personal server. This makes sense because all of them are used almost exclusively for Lemmy development. It will also allow [@dessalines@lemmy.ml](https://lemmy.ml/u/dessalines) to administrate the services in case of problems. The new domains are: Gitea: git.join-lemmy.org Weblate: weblate.join-lemmy.org Drone: drone.join-lemmy.org There are redirects in place, so you will automatically be forwarded from old domains to new ones.
fedilink

I have finished writing instructions for deploying lemmyBB on a production server, which you can follow at the link above. Right now the project is still in a very early stage, nevertheless main funcionality is already working. This includes browsing communities, posts and comments, writing posts/comments and registration/login. Before developing the project further, I would like to get some feedback from users and admins. If you are interested, you can follow the instructions to install lemmyBB on your own server. This setup also installs lemmy-ui, in order to access functionality which is not yet available in lemmyBB (particularly moderation). You can also try out lemmyBB on a test server with this setup, namely [lemmybb.lemmy.ml](https://lemmybb.lemmy.ml/). It runs lemmy-ui at [lemmyui.lemmy.ml](https://lemmyui.lemmy.ml/), which shows the same data in another format, and the same account login works on both domains. Registrations are currently open, but keep in mind that this instance is only meant for testing, until other instances are created. If you notice any bugs or want to request new features, please open an [issue](https://github.com/LemmyNet/lemmyBB/issues) or comment here.
fedilink

LemmyBB, a new frontend based on phpBB
Lemmy is structured in a way that backend (database, api, federation etc) and frontend (html, css, javascript) are completely separate. This makes it possible to create other frontends which can take the place of lemmy-ui. I have long been playing with the thought of having a Lemmy frontend that looks more like a traditional forum. Now I finally found some time to work on this, and get an initial proof of concept working. ![](https://lemmy.ml/pictrs/image/91170cff-8737-4a84-b70d-5e2c4d85bf72.png) ![](https://lemmy.ml/pictrs/image/da0d0bd8-5dcd-4ea8-a3ab-3b8eabf8b85a.png) To reduce the amount of work, the project uses HTML templates and CSS themes from [phpBB](https://www.phpbb.com/), which are open source under GPLv2. This also has the advantage that many preexisting phpBB themes can be used for lemmyBB. It is written in Rust, because it allows for tight integration with the Lemmy API, and is generally a great language for webservers. For now the funcionality is very basic, but nonetheless its already usable. You can: - browse the local post listing - browse comments - login and logout - create new posts and comments To give it a try, run the following commands on your local computer, replacing lemmy.ml with your own instance: ``` git clone https://github.com/Nutomic/lemmyBB.git LEMMY_INTERNAL_HOST=https://lemmy.ml cargo run ``` If there is any specific feature that you would like to see added, please [open an issue](https://github.com/Nutomic/lemmyBB/issues). For now there arent any instructions for deploying lemmyBB to a server. If you would like to do that, please open an issue as well. This post was made from lemmyBB.
fedilink

Presenting Activitypub-Rust crate
[Activitypub](https://www.w3.org/TR/activitypub/) is decentralized social networking protocol recommended by the W3C. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content. As part of the work on [Lemmy](https://join-lemmy.org/), we have implemented some high-level abstractions for handling the server-to-server protocol in Rust. These abstractions are now available as a standalone library. The main features are: - Data structures for federation are defined by the user, not the library. This gives you maximal flexibility, and lets you accept only messages which your code can handle. Others are rejected automatically during deserialization. - ObjectId type, wraps the id url and allows for type safe fetching of objects, both from database and HTTP - Queue for activity sending, handles HTTP signatures, retry with exponential backoff, all in background workers - Inbox for receiving activities, verifies HTTP signatures, performs other basic checks and helps with routing - Generic error type (unfortunately this was necessary) - various helpers for verification, (de)serialization, context etc Documentation is currently lacking. If you want to get started with the library, best look at the example. The code has already been used in production as part of Lemmy for a long time, without any notable problems. However, ergonomics are lacking and need to be improved. There are also many additional features which would be worth implementing. See the project readme for details. Contributions and suggestions are very much welcome! You can find the project here: [https://github.com/LemmyNet/activitypub-federation-rust](https://github.com/LemmyNet/activitypub-federation-rust) [https://crates.io/crates/activitypub-federation](https://crates.io/crates/activitypub-federation)
fedilink



Free hosting for liberal/mainstream political instance
Lemmy.ml has long had some political conflict among the userbase, especially in communities like worldnews. This is because the instance is composed of both leftists (anarchist/communist) and liberals (those who agree with the mainstream political views in western countries). Additionally, the instance admins all belong to the former group. Recently we made an announcement offering [free Lemmy instance hosting](https://join-lemmy.org/news/2022-03-17_-_Free_Lemmy_instance_hosting) for one year, for non-politics instances. We are hereby making a similar offer to host a liberal or mainstream political instance, which can accomodate those who are unhappy with lemmy.ml moderation. This has many advantages. Instance admins have full power to set the rules, block federated instances (like lemmygrad.ml), or remove unwanted content. An administration team that is closer aligned politically would certainly be an improvement for some of the users here. So if you are interested to host such an instance, send an email to contact@join-lemmy.org some relevant details about yourself. You will also have to buy a domain. We will only host one such instance, so if multiple people are interested, you should coordinate among yourselves. As in the original offer, the hosting will be limited to one year. On a side note, we would also like to help with the creation of a general-purpose instance that is less focused on politics than most of the existing instances. This is fully within the terms of the initial "free instance hosting" announcement, so if you are interested, send us an email!
fedilink