How to Install Lstu on Ubuntu Server Latest?

Lstu is an open-source URL shortener built with Perl, PostgreSQL, Nginx and Memcached. It allows you to create your own self-hosted URL shortening service. In this tutorial, you will learn how to install Lstu on Ubuntu Server Latest.

Prerequisites

Before you proceed with the installation process, you will need:

  • A server running Ubuntu Server Latest
  • A root or sudo user
  • Basic knowledge of the Linux command line

Step 1: Install Required Packages

Before you start building Lstu from source, you need to install some necessary packages on your Ubuntu server. Run the following command to install required packages:

sudo apt update
sudo apt install build-essential git openssl libssl-dev libcrypt-openssl-rsa-perl nginx postgresql postgresql-contrib libfcgi-dev spawn-fcgi libipc-system-simple-perl libfile-slurp-perl memcached libcache-memcached-perl

Step 2: Install Perl Modules

The next step is to install the required Perl modules. You can install them using the CPAN command:

sudo cpan Crypt::URandom List::MoreUtils CGI

Step 3: Clone Lstu Repository

Now that you have all the required packages and libraries installed on your system. You can proceed to clone Lstu's repository:

git clone https://github.com/ldidry/lstu.git

Step 4: Configure PostgreSQL

By default, Lstu uses a PostgreSQL database to store URLs. You need to create a new database, user and grant permission:

sudo su - postgres
psql
CREATE DATABASE lstu;
CREATE USER lstu WITH ENCRYPTED PASSWORD 'password_here';
GRANT ALL PRIVILEGES ON DATABASE lstu TO lstu;
\q
exit 

Make sure to replace password_here with your own password.

Step 5: Generate Lstu Configuration File

Now, you need to create a configuration file for Lstu. You can generate one by copying the sample configuration file to a new file:

cd lstu
cp lstu.conf.ini.sample lstu.conf.ini

Open the configuration file using a text editor:

nano lstu.conf.ini

Then, find the PostgreSQL database settings section and modify the values according to your PostgreSQL database and user credentials:

[PostgreSQL]
dsn=dbi:Pg:dbname=lstu;host=localhost;port=5432
user=lstu
password=password_here

Step 6: Install Lstu

Before installing Lstu, you need to create a new user and group for it:

sudo useradd -r -d /var/lib/lstu -s /bin/nologin lstu
sudo mkdir /var/lib/lstu
sudo chown lstu:lstu /var/lib/lstu

Now you can install Lstu by running the following commands:

make
sudo make install

Step 7: Configure Nginx and Spawn-fcgi

Now that you have Lstu installed on your Ubuntu server, it's time to configure Nginx and Spawn-fcgi. You need to create an Nginx server block for Lstu:

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

Then, paste the following configuration into the file:

server {
    listen 80;
    server_name your_domain.com;

    location / {
        fastcgi_pass unix:/var/run/lstu.sock;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME /usr/local/bin/lstu.fcgi;
    }
}

Replace your_domain.com with your own domain name.

Now create a symbolic link from the created server block file to the /etc/nginx/sites-enabled/ directory:

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

Next, create a Spawn-fcgi configuration file:

sudo nano /etc/systemd/system/spawn-fcgi.service

Then, paste the following configuration into the file:

[Unit]
Description=Spawn-fcgi service for Lstu
After=network.target

[Service]
Type=forking
User=lstu
ExecStart=/usr/bin/spawn-fcgi -s /var/run/lstu.sock -U lstu -u lstu -g lstu /usr/local/bin/lstu.fcgi
ExecStop=/usr/bin/killall -9 spawn-fcgi

[Install]
WantedBy=multi-user.target

Step 8: Start Nginx and Spawn-fcgi

Now, start Nginx and Spawn-fcgi services:

sudo systemctl start nginx
sudo systemctl start spawn-fcgi
sudo systemctl enable spawn-fcgi

Step 9: Verify Lstu Installation

To verify that Lstu is installed and working correctly, you can access the Lstu homepage by visiting your domain name in a web browser:

http://your_domain.com/

You should be able to see a simple webpage that allows you to create short URLs.

Congratulations! You have successfully installed Lstu on your Ubuntu server. You can now customize your Lstu installation according to your needs.