diff --git a/src/administration/administration.md b/src/administration/administration.md index a72b866..f802a2b 100644 --- a/src/administration/administration.md +++ b/src/administration/administration.md @@ -1,4 +1,4 @@ -# Administration info +# Administration Information for Lemmy instance admins, and those who want to run a server. diff --git a/src/administration/backup_and_restore.md b/src/administration/backup_and_restore.md index 982c6d6..193d45d 100644 --- a/src/administration/backup_and_restore.md +++ b/src/administration/backup_and_restore.md @@ -1,4 +1,4 @@ -# Backup and Restore Guide +# Backup and Restore ## Docker and Ansible diff --git a/src/administration/caddy.md b/src/administration/caddy.md index 92e227a..2bb836e 100644 --- a/src/administration/caddy.md +++ b/src/administration/caddy.md @@ -1,4 +1,4 @@ -# Using Caddy as reverse proxy example +# Using Caddy as reverse proxy If you prefer to use Caddy instead of Nginx - you could use this template to fit into your needs: diff --git a/src/administration/federation_getting_started.md b/src/administration/federation_getting_started.md index e17e65a..cb7695b 100644 --- a/src/administration/federation_getting_started.md +++ b/src/administration/federation_getting_started.md @@ -1,4 +1,4 @@ -# Federation +# Getting started with Federation Lemmy has three types of federation: diff --git a/src/administration/first_steps.md b/src/administration/first_steps.md index d87dac1..3cb25b8 100644 --- a/src/administration/first_steps.md +++ b/src/administration/first_steps.md @@ -1,4 +1,4 @@ -# Administration First Steps +# First Steps After you successfully installed Lemmy either [manually with Docker](install_docker.md) or [automatically with Ansible](install_ansible.md) here are some recommendations for a new administrator of a Lemmy server. diff --git a/src/administration/from_scratch.md b/src/administration/from_scratch.md index 06b9b58..2b919f3 100644 --- a/src/administration/from_scratch.md +++ b/src/administration/from_scratch.md @@ -1,4 +1,4 @@ -# From Scratch +# Install from Scratch These instructions are written for Ubuntu 20.04 / Ubuntu 22.04. They are particularly useful when you'd like to setup a Lemmy container (e.g. LXC on Proxmox) and cannot use Docker. diff --git a/src/administration/horizontal_scaling.md b/src/administration/horizontal_scaling.md index bfbab56..38dd872 100644 --- a/src/administration/horizontal_scaling.md +++ b/src/administration/horizontal_scaling.md @@ -1,4 +1,4 @@ -# Scaling Lemmy horizontally +# Horizontal Scaling This is a collection of notes on scaling different Lemmy components horizontally. This is not meant as a step-by-step guide, rather as general tips and knowledge that might be useful to somebody who is already familiar with and horizontal scaling concepts and best practices. If you don't already know about concepts like load balancing, object storage, and reverse proxies, then this document will probably be hard (or impossible) to understand. diff --git a/src/administration/install_ansible.md b/src/administration/install_ansible.md index 360122c..05ba11d 100644 --- a/src/administration/install_ansible.md +++ b/src/administration/install_ansible.md @@ -1,3 +1,3 @@ -# Ansible Installation +# Install with Ansible Follow the instructions on the [Lemmy-Ansible](https://github.com/LemmyNet/lemmy-ansible) repo. diff --git a/src/administration/install_docker.md b/src/administration/install_docker.md index 6b35d71..d6a2077 100644 --- a/src/administration/install_docker.md +++ b/src/administration/install_docker.md @@ -1,4 +1,4 @@ -# Docker Installation +# Install with Docker Make sure you have both docker and docker-compose(>=`2.0`) installed. On Ubuntu, just run `apt install docker-compose-v2 docker.io`. On Debian, you need to install Docker [using their official installation instructions and custom `apt` repo](https://docs.docker.com/engine/install/debian/). diff --git a/src/administration/on_aws.md b/src/administration/on_aws.md index dca3829..a414eca 100644 --- a/src/administration/on_aws.md +++ b/src/administration/on_aws.md @@ -1,4 +1,4 @@ -# Installing on AWS +# Install on AWS > ⚠️ **Disclaimer:** this installation method is not recommended by the Lemmy developers. If you have any problems, you need to solve them yourself or ask the respective authors. If you notice any Lemmy bugs on an instance installed like this, please mention it in the bug report. diff --git a/src/administration/prometheus.md b/src/administration/prometheus.md index 7f073a3..dbd79c7 100644 --- a/src/administration/prometheus.md +++ b/src/administration/prometheus.md @@ -1,4 +1,4 @@ -# Prometheus +# Prometheus Metrics Lemmy supports the export of metrics in the [Prometheus](https://prometheus.io/) format. This document outlines how to enable the feature and begin collecting diff --git a/src/administration/tor_hidden_service.md b/src/administration/tor_hidden_service.md index c17f67e..53e1101 100644 --- a/src/administration/tor_hidden_service.md +++ b/src/administration/tor_hidden_service.md @@ -1,4 +1,4 @@ -# Tor Hidden Services +# Running a Tor Hidden Service This guide assumes Lemmy has been installed using the official [Docker Compose](install_docker.md) method. diff --git a/src/contributors/01-overview.md b/src/contributors/01-overview.md index d9df539..f65f7eb 100644 --- a/src/contributors/01-overview.md +++ b/src/contributors/01-overview.md @@ -1,4 +1,4 @@ -## Contributing +# Overview Lemmy is an open source project and relies on community contributions to get better. Development happens mainly in the [Lemmy Github repositories](https://github.com/LemmyNet). Communication is done over [Matrix](https://matrix.to/#/#activitypub-community:codelutin.com). diff --git a/src/contributors/02-local-development.md b/src/contributors/02-local-development.md index 39607ee..32954c5 100644 --- a/src/contributors/02-local-development.md +++ b/src/contributors/02-local-development.md @@ -1,4 +1,4 @@ -## Local Development +# Local Development ### Install build requirements diff --git a/src/contributors/03-docker-development.md b/src/contributors/03-docker-development.md index 7d49f7f..ed253d5 100644 --- a/src/contributors/03-docker-development.md +++ b/src/contributors/03-docker-development.md @@ -1,6 +1,6 @@ -## Docker Development +# Docker Development -### Dependencies +## Dependencies Debian-based distro: @@ -23,7 +23,7 @@ Get the code with submodules: git clone https://github.com/LemmyNet/lemmy --recursive ``` -### Building +## Building Use these commands to create a custom container based on your local branch and tagged accordingly. diff --git a/src/contributors/04-api.md b/src/contributors/04-api.md index 327911f..6556406 100644 --- a/src/contributors/04-api.md +++ b/src/contributors/04-api.md @@ -1,4 +1,4 @@ -## API +# API Lemmy has an HTTP API for clients and frontends. See the [API documentation](/api) for more information. Instead of using the API directly you can use one of the existing [libraries](https://github.com/dbeley/awesome-lemmy#libraries). You can either interact with a local development instance via `http://localhost:8536`, or connect to a production instance. The following instances are available for testing purposes: diff --git a/src/contributors/05-federation.md b/src/contributors/05-federation.md index 3a33a17..d4c7282 100644 --- a/src/contributors/05-federation.md +++ b/src/contributors/05-federation.md @@ -1,4 +1,4 @@ -## Federation +# Federation Lemmy uses the ActivityPub protocol for communication between servers. If you are unfamiliar with the protocol, you can start by reading the [resource links](06-resources.md#activitypub-resources). This document explains how to interact with it from other projects. diff --git a/src/contributors/06-resources.md b/src/contributors/06-resources.md index 08ebaed..b9ba681 100644 --- a/src/contributors/06-resources.md +++ b/src/contributors/06-resources.md @@ -1,4 +1,4 @@ -# Resources / Libraries +# Resources ## Rust diff --git a/src/contributors/07-ranking-algo.md b/src/contributors/07-ranking-algo.md index cd9a396..d2c3db4 100644 --- a/src/contributors/07-ranking-algo.md +++ b/src/contributors/07-ranking-algo.md @@ -1,4 +1,4 @@ -# Trending / Hot / Best Sorting algorithm +# Ranking Algorithm ## Goals diff --git a/src/introduction.md b/src/introduction.md index a2ccb1e..5d1144e 100644 --- a/src/introduction.md +++ b/src/introduction.md @@ -1,4 +1,4 @@ -## Introduction +# Introduction Lemmy is a selfhosted, federated social link aggregation and discussion forum. It consists of many different communities which are focused on different topics. Users can post text, links or images and discuss it with others. Voting helps to bring the most interesting items to the top. There are strong moderation tools to keep out spam and trolls. All this is completely free and open, not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. diff --git a/src/users/01-getting-started.md b/src/users/01-getting-started.md index de532c3..f05866a 100644 --- a/src/users/01-getting-started.md +++ b/src/users/01-getting-started.md @@ -1,4 +1,6 @@ -# Choosing an Instance +# Getting Started + +## Choosing an Instance If you are used to sites like Reddit, then Lemmy works in a fundamentally different way. Instead of a single website like reddit.com, there are many different websites (called _instances_). These are operated by different people, have different topics and rules. Nevertheless, posts created in one instance can directly be seen by users who are registered on another. Its basically like email, but for social media. @@ -6,7 +8,7 @@ This means before using Lemmy and registering an account, you need to pick an in [instance list screenshot] -# Registration +## Registration Once you choose an instance, it's time to create your account. To do this, click _sign up_ in the top right of the page, or click the top right button on mobile to open a menu with _sign up_ link. @@ -29,7 +31,7 @@ When you are done, press the _sign up_ button. It depends on the instance configuration when you can login and start using the account. In case the email is mandatory, you need to wait for the confirmation email and click the link first. In case "Question/Answer" is present, you need to wait for an admin to manually review and approve your registration. If you have problems with the registration, try to get in contact with the admin for support. You can also choose a different instance to sign up if your primary choice does not work. -# Following Communities +## Following Communities After logging in to your new account, its time to follow communities that you are interested in. For this you can click on the _communities_ link at the top of the page (on mobile, you need to click the menu icon on the top right first). You will see a list of communities which can be filtered by subscribed, local or all. Local communities are those which are hosted on the same site where you are signed in, while _all_ also contains federated communities from other instances. In any case you can directly subscribe to communities with the right-hand subscribe link. Or click on the community name to browse the community first, see what its posted and what the rules are before subscribing. @@ -37,7 +39,7 @@ Another way to find communities to subscribe to is by going to the front page an These previous ways will only show communities that are already known to the instance. Especially if you joined a small or inactive Lemmy instance, there will be few communities to discover. You can find more communities by browsing different Lemmy instances, or using the [Lemmy Community Browser](https://browse.feddit.de/). When you found a community that you want to follow, enter its URL (e.g. `https://feddit.de/c/main`) or the identifier (e.g. `!main@feddit.de`) into the search field of your own Lemmy instance. Lemmy will then fetch the community from its original instance, and allow you to interact with it. The same method also works to fetch users, posts or comments from other instances. -# Setting up Your Profile +## Setting up Your Profile Before you start posting, its a good idea to provide some details about yourself. Open the top-right menu and go to "settings". Here the following settings are available for your public profile: @@ -64,7 +66,7 @@ On this page you can also change the email and password. Additionally there are - **Show Notifications for New Posts**: Enable this to receive a popup notification for each new post that is created. - **Send notifications to Email**: Enable to receive notifications about new comment replies and private messages to your email address. -# Start Posting +## Start Posting Finally its time to start posting! To do this it is always a good idea to read the community rules in the sidebar (below the _Subscribe_ button). When you are ready, go to a post and type your comment in the box directly below for a top-level reply. You can also write a nested reply to an existing comment, by clicking the left-pointing arrow. diff --git a/src/users/02-media.md b/src/users/02-media.md index 4fad6a5..8e81dac 100644 --- a/src/users/02-media.md +++ b/src/users/02-media.md @@ -1,4 +1,6 @@ -# Text +# Media + +## Text The main type of content in Lemmy is text which can be formatted with Markdown. Refer to the table below for supported formatting rules. The Lemmy user interface also provides buttons for formatting, so it's not necessary to remember all of it. You can also follow the interactive [CommonMark tutorial](https://commonmark.org/help/tutorial/) to get started. @@ -23,13 +25,13 @@ The main type of content in Lemmy is text which can be formatted with Markdown. [CommonMark Tutorial](https://commonmark.org/help/tutorial/) -# Images and Video +## Images and Video Lemmy also allows sharing of images and videos. To upload an image, go to the _Create post_ page and click the little image icon under the _URL_ field. This allows you to select a local image. If you made a mistake, a popup message allows you to delete the image. The same image button also allows uploading of videos in .gif format. Instead of uploading a local file, you can also simply paste the URL of an image or video from another website. Note that this functionality is not meant to share large images or videos, because that would require too many server resources. Instead, upload them on another platform like [PeerTube](https://joinpeertube.org/) or [Pixelfed](https://pixelfed.org/), and share the link on Lemmy. -# Torrents +## Torrents Since Lemmy doesn't host large videos or other media, users can share files using [BitTorrent](https://en.wikipedia.org/wiki/BitTorrent) links. In BitTorrent, files are shared not by a single user, but by _many users_ at the same time. This makes file sharing efficient, fast, and reliable, as long as several sources are sharing the files. @@ -37,9 +39,9 @@ Lemmy supports posting torrent magnet links (links that start with `magnet:`) in With this, Lemmy can serve as an alternative to centralized media-centric services like YouTube and Spotify. -## How to Watch Torrents +### How to Watch Torrents -### Beginner +#### Beginner To easily stream videos and audio on Lemmy, you can use any of the following apps. After clicking on a torrent link in Lemmy, a dialog will pop up asking you to open the link in the app. @@ -48,7 +50,7 @@ To easily stream videos and audio on Lemmy, you can use any of the following app - [Popcorn Time](https://github.com/popcorn-official/popcorn-desktop) (Desktop) - [xTorrent](https://play.google.com/store/apps/details?id=com.gamemalt.streamtorrentvideos) (Android) -### Expert +#### Expert For those who would like to help share files, you can use any of the following torrent clients. diff --git a/src/users/03-votes-and-ranking.md b/src/users/03-votes-and-ranking.md index 241dc19..fbf0a7b 100644 --- a/src/users/03-votes-and-ranking.md +++ b/src/users/03-votes-and-ranking.md @@ -1,8 +1,10 @@ -# Posts +# Votes and Ranking + +## Posts Lemmy uses a voting system to sort post listings. On the left side of each post there are _up_ and _down_ arrows, which let you _upvote_ or _downvote_ it. You can upvote posts that you like so that more users will see them, or downvote posts so that they are less likely to be seen. Each post receives a score which is the number of upvotes minus the number of downvotes. -## Sorting Posts +### Sorting Posts When browsing the front page or a community, you can choose between the following sort types for posts: @@ -19,11 +21,11 @@ When browsing the front page or a community, you can choose between the followin - **Top Year**: Highest scoring posts during the last 12 months - **Top All Time**: Highest scoring posts of all time -# Comments +## Comments Comments are by default arranged in a hierarchy which shows at a glance who it is replying to. Top-level comments which reply directly to a post are on the very left, not indented at all. Comments that are responding to top-level comments are indented one level and each further level of indentation means that the comment is deeper in the conversation. With this layout, it is always easy to see the context for a given comment, by simply scrolling up to the next comment which is indented one level less. -## Sorting Comments +### Sorting Comments Comments can be sorted in the following ways. These all keep the indentation intact, so only replies to the same parent are shuffled around. @@ -36,6 +38,6 @@ Additionally there is a sort option **Chat**. This eliminates the hierarchy, and The ranking algorithm is described in detail [here](../contributors/07-ranking-algo.md). -# Vote Privacy +## Vote Privacy Lemmy attempts to limit the visibility of votes to protect user privacy. But due to the way Lemmy works, votes cannot be completely private. Instance admins can see the names of everyone who voted on a given post or comment, and community moderators can see the names for the communities they moderate. This helps to fight against vote manipulation. Additionally, individual votes are federated over ActivityPub together with the corresponding username. This means that other federated platforms can freely choose how to display vote information, even going as far as publicly displaying individual votes. diff --git a/src/users/05-censorship-resistance.md b/src/users/05-censorship-resistance.md index 4bd05e4..8287ae3 100644 --- a/src/users/05-censorship-resistance.md +++ b/src/users/05-censorship-resistance.md @@ -1,4 +1,4 @@ -## Censorship resistance +# Censorship resistance Today's social media landscape is extremely centralized. The vast majority of users are concentrated on only a handful of platforms like Facebook, Reddit or Twitter. All of these are maintained by large corporations that are subject to profit motive and United States law. In recent years these platforms have increasingly censored users and entire communities, often with questionable justifications. It is only natural that those who are affected by this search for alternatives. This document is intended to help with the evaluation. diff --git a/src/users/06-other-features.md b/src/users/06-other-features.md index 3e2176e..9ca0dbd 100644 --- a/src/users/06-other-features.md +++ b/src/users/06-other-features.md @@ -1,17 +1,19 @@ -# Theming +# Other Features + +## Theming Users can choose between a number of built-in color themes. Admins can also provide additional themes and set them as default. -# Easy to Install, Low Hardware Requirements +## Easy to Install, Low Hardware Requirements Lemmy is written in Rust, which is an extremely fast language. This is why it has very low hardware requirements. It can easily run on a Raspberry Pi or similar low-powered hardware. This makes it easy to administrate and keeps costs low. -# Language Tags +## Language Tags Lemmy instances and communities can specify which languages can be used for posting. Consider an instance aimed at Spanish users, it would limit the posting language to Spanish so that other languages can't be used. Or an international instance which only allows languages that the admin team understands. Community languages work in the same way, and are restricted to a subset of the instance languages. By default, all languages are allowed (including _undefined_). Users can also specify which languages they speak, and will only see content in those languages. Lemmy tries to smartly select a default language for new posts if possible. Otherwise you have to specify the language manually. -# Lemmy as a Blog +## Lemmy as a Blog Lemmy can also function as a blogging platform. Doing this is as simple as creating a community and enabling the option "Only moderators can post to this community". Now only you and other people that you invite can create posts, while everyone else can comment. Like any Lemmy community, it is also possible to follow from other Fediverse platforms and over RSS. For advanced usage, it is even possible to use the API and create a different frontend which looks more blog-like. diff --git a/src/users/07-history-of-lemmy.md b/src/users/07-history-of-lemmy.md index f81486c..673f223 100644 --- a/src/users/07-history-of-lemmy.md +++ b/src/users/07-history-of-lemmy.md @@ -1,4 +1,4 @@ -## History of Lemmy +# History of Lemmy The idea to make Lemmy was a combination of factors.