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.