explaingit

lemmynet/lemmy

14,381RustAudience · generalComplexity · 4/5Setup · hard

TLDR

Open-source, self-hostable Reddit alternative where independently run servers automatically share communities and posts with each other using the ActivityPub protocol.

Mindmap

mindmap
  root((Lemmy))
    What it does
      Decentralized discussion
      Topic communities
      Federation via ActivityPub
    Features
      Vote and comment threads
      Private messaging
      RSS feeds
    Self-Hosting
      Docker or Ansible
      Runs on Raspberry Pi
      Own moderation rules
    Funding
      Donations only
      NLnet grants
      No ads or VC
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Self-host your own topic-based discussion community that federates with the broader Lemmy network so users on other servers can join and post.

USE CASE 2

Create a private or public forum with moderation tools, RSS feeds, and no ads or tracking built in.

USE CASE 3

Participate in decentralized social discussion across federated servers without being locked into a single platform or company.

Tech stack

RustDockerAnsibleActivityPub

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Docker or Ansible on a server, federation, domain, and TLS configuration add significant setup complexity beyond a basic install.

In plain English

Lemmy is an open-source discussion platform similar in concept to Reddit or Hacker News: users subscribe to topic-based communities, share links and posts, vote on content, and leave comments. The key difference from those sites is that Lemmy is decentralized. Instead of one company running a single platform, anyone can run their own Lemmy server. All these independently operated servers communicate with each other using a standard called ActivityPub, the same protocol used by other federated services in what is collectively called the Fediverse. Think of it like email: you can have an account on one provider and still send messages to people on completely different providers. In practice, this means a person with an account on one Lemmy server can browse, join, and post in communities hosted on any other Lemmy server. Communities are not locked to the server where they were created. Each server operator sets their own rules and moderation policies. Site-wide admins manage the whole server, while community moderators handle individual communities. Moderators can pin posts, remove content, ban users from their community, and keep public logs of their moderation actions. The server software is written in Rust, a programming language known for performance and reliability. The interface is designed to be clean and mobile-friendly, and requires only a username and password to sign up. Features include live-updating comment threads, image uploads in posts and comments, private messaging, RSS feeds for various content streams, user and community tagging, emoji support, theming options, and internationalization for users in different languages. There is also a cross-posting feature that shows similar posts when you create something new, which helps avoid duplicates in question-and-answer communities. Lemmy carries no advertising, no venture capital involvement, and no monetization built in. Development is funded through direct donations and has received grants from the NLnet Foundation. The software can be self-hosted using Docker or Ansible, and runs on standard servers as well as lower-powered hardware like a Raspberry Pi.

Copy-paste prompts

Prompt 1
I want to self-host a Lemmy instance on a VPS using Docker. Walk me through the docker-compose setup and the key configuration values I need to change.
Prompt 2
How does Lemmy federation work? If I create a community on my server, how do users on other Lemmy instances find and subscribe to it?
Prompt 3
I'm running a Lemmy instance and want to set up moderation for a community. What tools do moderators have and how do I assign someone as a moderator?
Open on GitHub → Explain another repo

← lemmynet on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.