How to Install Isso on Elementary OS

Isso is a commenting system for static websites that is open-source, written in Python and allows the user to host their comments and data on their own server. In this tutorial, we will show you how to install Isso on Elementary OS.

Prerequisites

Before we get started with the installation of Isso, we need to make sure that the following prerequisites are fulfilled:

Step 1: Install Required Packages

First, we need to install some packages that are required for Isso to run. Open up the terminal and enter the following command:

sudo apt-get update
sudo apt-get install git python3-pip python3-dev build-essential libssl-dev libffi-dev

After installing these packages, we need to install some Python modules using pip3. Enter the following command:

sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install flask gevent requests tzlocal

Step 2: Clone the Isso repository

We can now clone the Isso repository from GitHub to our server. Enter the following command to clone the repository:

sudo git clone https://github.com/posativ/isso.git /opt/isso

Step 3: Configure Isso

We need to create a new Isso configuration file in the isso directory. Enter the following command to create the default configuration file:

sudo cp /opt/isso/conf.dist.cfg /opt/isso/isso.cfg

Next, we need to edit the configuration file to match our settings. We can do this using any text editor. For this tutorial, we will be using nano. Enter the following command to open the configuration file in nano:

sudo nano /opt/isso/isso.cfg

Update the file with the following settings:

[general]
dbpath = /var/lib/isso/comments.db
host = https://your-domain-name.com/

Make sure to replace your-domain-name.com with your actual domain name. Save and close the file.

Step 4: Create a Systemd Service

We can now create a Systemd service to start Isso automatically at boot time. Enter the following command:

sudo nano /etc/systemd/system/isso.service

Copy and paste the following code into the file:

[Unit]
Description=Isso Server

[Service]
User=root
WorkingDirectory=/opt/isso
ExecStart=/usr/bin/python3 /opt/isso/bin/isso run
Restart=always

[Install]
WantedBy=multi-user.target

Save and close the file. Then, reload the Systemd daemon using the following command:

sudo systemctl daemon-reload

Finally, enable and start the Isso service using the following command:

sudo systemctl enable isso.service
sudo systemctl start isso.service

Step 5: Configure Nginx

We need to configure Nginx to act as a reverse proxy to our Isso server. Enter the following command to create a new Nginx configuration file:

sudo nano /etc/nginx/sites-available/isso

Copy and paste the following code into the file:

server {
    listen 80;
    server_name your-domain-name.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name your-domain-name.com;

    ssl_certificate /etc/letsencrypt/live/your-domain-name.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain-name.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host $server_name;
    }
}

Make sure to replace your-domain-name.com with your actual domain name. Save and close the file.

Then, activate the configuration by creating a symbolic link:

sudo ln -s /etc/nginx/sites-available/isso /etc/nginx/sites-enabled/

Finally, reload the Nginx configuration using the following command:

sudo systemctl reload nginx

Step 6: Test Isso

Isso should now be installed and running on your server. To test it, visit https://your-domain-name.com/ in your web browser. You should see the default Isso page with a message that says "Comments are closed."

To enable commenting, create a new HTML page, add the following code to the page where you want to enable commenting:

<div id="isso-thread"></div>
<script data-isso="//your-domain-name.com" src="//your-domain-name.com/js/embed.min.js"></script>

Make sure to replace your-domain-name.com with your actual domain name.

Conclusion

In this tutorial, we have shown you how to install and set up Isso on your Elementary OS server. Now you can host your own commenting system and keep your user data private.

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!

Alternatively, for the best virtual desktop, try Shells!