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.
Before you proceed with the installation process, you will need:
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
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
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
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.
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
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
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
Now, start Nginx and Spawn-fcgi services:
sudo systemctl start nginx
sudo systemctl start spawn-fcgi
sudo systemctl enable spawn-fcgi
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.
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!