How to Install Lemmy on POP! OS

Lemmy is a modern, federated, and self-hosted alternative to Reddit. It's built on Rust and designed to be privacy-focused and open-source. In this tutorial, we will show you how to install Lemmy on POP! OS.

Prerequisites

Before proceeding with the installation, ensure that you have the following:

Step 1: Install Dependencies

To install Lemmy, we need to install Rust, PostgreSQL, and nginx. Run the following commands in the terminal to install them:

$ sudo apt update
$ sudo apt install -y rustc postgresql postgresql-contrib libpq-dev nginx

Step 2: Create a User and Database

We need to create a new user and database for Lemmy to use. Run the following commands to create a user lemmyuser and a database lemmydb:

$ sudo -u postgres createuser -s lemmyns
$ sudo -u postgres createdb lemmydb

Step 3: Clone Lemmy Repository

Next, we need to clone the Lemmy repository and switch to the latest release version. Run the following commands in the terminal:

$ git clone https://github.com/LemmyNet/lemmy.git
$ cd lemmy
$ git checkout $(git branch -r | grep -v HEAD | sort -r | head -n 1 | sed 's/origin\///')

Step 4: Build and Install Lemmy

To build and install Lemmy, run the following command in the terminal:

$ cargo install --path ./server lemmy-web

Step 5: Configure Lemmy

After installing Lemmy, we need to configure it. Copy the sample configuration file config/settings.toml.sample to config/settings.toml using the following command:

$ cp config/settings.toml.sample config/settings.toml

Open the config/settings.toml file in your favorite text editor and modify it as needed. For example, you can change the database connection details, port, listen address, etc.

Step 6: Start Lemmy

Once Lemmy is configured, we can start it using the following command:

$ lemmy-web

Lemmy should be running on http://localhost:8537. You can access it using your web browser and start exploring the features.

Step 7: Set Up nginx Reverse Proxy

To make Lemmy accessible from the internet, we need to set up an nginx reverse proxy. Create a new nginx configuration file for Lemmy using the following command:

$ sudo nano /etc/nginx/sites-available/lemmy

Paste the following configuration into the file:

server {
    listen 80;
    server_name your.domainname.com;

    location / {
        proxy_pass http://127.0.0.1:8537;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Replace your.domainname.com with your domain name or public IP address. Save and close the file.

Enable the site and reload nginx:

$ sudo ln -s /etc/nginx/sites-available/lemmy /etc/nginx/sites-enabled/
$ sudo systemctl reload nginx

That's it! You should now be able to access Lemmy using your domain name or public IP address.

Conclusion

In this tutorial, we have shown you how to install Lemmy on POP! OS and make it accessible from the internet using an nginx reverse proxy. Lemmy is a feature-rich and privacy-focused alternative to Reddit, and we hope you enjoy using it.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!