Shlink is a self-hosted URL shortener and link management platform. This tutorial will guide you through the process of installing Shlink on Void Linux.
Before proceeding with the installation, make sure you have the following prerequisites:
First, update the package list and install the required dependencies.
sudo xbps-install -S nginx mariadb mariadb-client php8-fpm php8-mysqli php8-gd php8-intl php8-xml php8-json php8-zip php8-tidy php8-curl
Next, download the latest stable version of Shlink from the official GitHub repository.
wget https://github.com/shlinkio/shlink/releases/latest/download/shlink_2.x.x.zip
Unzip the downloaded archive to the /var/www
directory.
sudo unzip shlink_2.x.x.zip -d /var/www/
Rename the extracted directory to shlink
.
sudo mv /var/www/shlink_2.x.x /var/www/shlink
Create a new virtual host configuration for Nginx.
sudo nano /etc/nginx/conf.d/shlink.conf
Add the following configuration to the file.
server {
listen 80;
server_name shlink.example.com;
root /var/www/shlink/public;
index index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass unix:/run/php-fpm.sock;
}
}
In this configuration, replace shlink.example.com
with your own domain name.
Save and close the file.
Create a new database and user for Shlink in MariaDB.
mysql -u root -p
Enter your root password when prompted.
CREATE DATABASE shlink;
GRANT ALL PRIVILEGES ON shlink.* TO 'shlink_user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;
In this example, replace password
with a secure password for the shlink_user
account.
Copy the example configuration template to the configuration directory.
sudo cp /var/www/shlink/config/autoload/local.php.dist /var/www/shlink/config/autoload/local.php
Edit the configuration file.
sudo nano /var/www/shlink/config/autoload/local.php
Change the database settings to your own settings.
<?php
declare(strict_types=1);
use Shlinkio\Shlink\Common\EnvHelper;
return [
'dependencies' => [
'params' => [
'entity_manager' => [
'connection' => [
'driver' => 'pdo_mysql',
'host' => 'localhost',
'port' => 3306,
'dbname' => 'shlink',
'user' => 'shlink_user',
'password' => 'password',
'charset' => 'utf8mb4',
],
],
],
],
// Other settings...
];
Save and close the file.
Now, initialize Shlink's database schema and create the first user account.
cd /var/www/shlink
sudo php bin/cli db migrate
sudo php bin/cli user:create
Follow the prompts to create a new user account.
Finally, restart the Nginx and PHP-FPM services.
sudo systemctl restart nginx
sudo systemctl restart php-fpm
You have successfully installed Shlink on Void Linux. You can now access the Shlink web interface using your domain name in a web browser.
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!