🐀 Building a federated link aggregator in rust
Find a file
2019-08-19 19:37:32 -07:00
.github Update FUNDING.yml 2019-06-03 09:30:35 -07:00
docker Upping version. 2019-08-19 15:06:38 -07:00
docs Squashed commit of the following: 2019-08-13 19:52:43 -07:00
server Fix bug when changing main community name. 2019-08-17 14:39:20 -07:00
ui Adding cards for sidebars in UI. 2019-08-19 19:37:32 -07:00
.dockerignore Updating readme with gitlab and github links. 2019-08-16 13:08:37 -07:00
.travis.yml Travis 2019-04-06 10:49:27 -07:00
install.sh Externalizing JWT token 2019-05-02 09:55:29 -07:00
LICENSE Initial commit 2019-02-14 09:17:18 -08:00
README.md Adding german to readme. 2019-08-19 14:53:36 -07:00

Lemmy

Github Gitlab GitHub tag (latest SemVer) Build Status star this repo fork this repo Docker Pulls GitHub issues GitHub repo size GitHub commit activity License Mastodon Matrix Patreon

A link aggregator / reddit clone for the fediverse.

Lemmy Dev instance for testing purposes only

This is a very early beta version, and a lot of features are currently broken or in active development, such as federation.

Front Page Post
main screen chat screen

Features

  • Open source, AGPL License.
  • Self hostable, easy to deploy.
  • Live-updating Comment threads.
  • Full vote scores (+/-) like old reddit.
  • Moderation abilities.
    • Public Moderation Logs.
    • Both site admins, and community moderators, who can appoint other moderators.
    • Can lock, remove, and restore posts and comments.
    • Can ban and unban users from communities and the site.
  • Clean, mobile-friendly interface.
  • i18n / internationalization support.
  • NSFW post / community support.
  • High performance.
    • Server is written in rust.
    • Front end is ~80kB gzipped.

About

Lemmy is similar to sites like Reddit, Lobste.rs, Raddle, or Hacker News: you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the Fediverse.

For a link aggregator, this means a user registered on one server can subscribe to forums on any other server, and can have discussions with users registered elsewhere.

The overall goal is to create an easily self-hostable, decentralized alternative to reddit and other link aggregators, outside of their corporate control and meddling.

Each lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.

Why's it called Lemmy?

Made with Rust, Actix, Inferno, Typescript and Diesel.

Install

Docker

Make sure you have both docker and docker-compose(>=1.24.0) installed.

mkdir lemmy/
cd lemmy/
wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/prod/docker-compose.yml
docker-compose up -d

and goto http://localhost:8536

Nginx Config

location / {
  rewrite (\/(user|u|inbox|post|community|c|login|search|sponsors|communities|modlog|home)+) /static/index.html break;
  proxy_pass http://0.0.0.0:8536;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  # WebSocket support
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
}

Develop

Docker Development

git clone https://github.com/dessalines/lemmy
cd lemmy/docker
./docker_update.sh # This pulls the newest version, builds and runs it

and goto http://localhost:8536

Local Development

Requirements

Set up Postgres DB

 psql -c "create user rrr with password 'rrr' superuser;" -U postgres
 psql -c 'create database rrr with owner rrr;' -U postgres

Running

git clone https://github.com/dessalines/lemmy
cd lemmy
./install.sh
# For live coding, where both the front and back end, automagically reload on any save, do:
# cd ui && yarn start
# cd server && cargo watch -x run

Documentation

Support

Lemmy is free, open-source software, meaning no advertising, monetizing, or venture capital, ever. Your donations directly support full-time development of the project.

Translations

If you'd like to add translations, take a look a look at the english translation file.

  • Languages supported: en, zh, fr, sv, de, ru, de

Credits

Icon made by Andy Cuccaro (@andycuccaro).