Install a Self-hosted URL Shortener with Shlink.io

Channel:
Subscribers:
14,500
Published on ● Video Link: https://www.youtube.com/watch?v=576thuTBepQ



Duration: 4:21
726 views
19


#Shlink #URLShortener #Linux

Full steps can be found at https://i12bretro.github.io/tutorials/0225.html

What is Shlink?
A PHP-based self-hosted URL shortener that can be used to serve shortened URLs under your own custom domain. - https://github.com/shlinkio/shlink
 
Installing Shlink
   01. Log into the Linux device
   02. Run the following commands in a terminal:
         # update software repositories
         sudo apt update
         # install software updates
         sudo apt upgrade -y
         # install pre-requisites
         sudo apt install lsb-release apt-transport-https ca-certificates unzip -y
         # add php gpg key
         sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
         # add php apt repository
         echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
         # update software repositories
         sudo apt update
         # install Apache HTTPD and MySQL
         sudo apt-get install apache2 mariadb-server mariadb-client -y
         # install PHP components
         sudo apt install php8.0 libapache2-mod-php8.0 php8.0-curl php8.0-intl php8.0-gd php8.0-pdo php8.0-fpm php8.0-common php8.0-mysql php8.0-xml php8.0-apcu -y
         # enable/disable apache2 modules
         sudo a2dismod mpm_prefork php8.0
         sudo a2enmod mpm_event rewrite proxy_fcgi setenvif php8.0
         sudo a2enconf php8.0-fpm
         # configure the MySQL database
         sudo su
         mysql_secure_installation
   03. Press Enter to login as root
   04. Type Y and press Enter to set a root password, type the password twice to confirm
   05. Type Y and press Enter to remove anonymous users
   06. Type Y and press Enter to disallow root login remotely
   07. Type Y and press Enter to remove the test database
   08. Type Y and press Enter to reload privilege tables
   09. Run the following command to login into MySQL:
         mysql -u root -p
   10. Authenticate with the root password set earlier
   11. Run the following commands to create the ShlinkIO database and database user
         # NOTE: update the password with a secure password
         CREATE DATABASE shlinkio;
         GRANT ALL ON shlinkio.* to 'shlinkio_rw'@'localhost' IDENTIFIED BY '$hlink10!';
         FLUSH PRIVILEGES;
         EXIT;
         exit
   12. Continue with the following commands to download and extract shlinkio
         # download latest shlink.io version
         sudo wget https://github.com/shlinkio/shlink/releases/download/v2.6.2/shlink2.6.2_php8.0_dist.zip
         # extract the zip archive
         sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www
         # rename the extracted folder
         sudo mv /var/www/shlink* /var/www/shlinkio
         # set the owner of the new shlinkio directory to www-data
         sudo chown -R www-data:www-data /var/www/shlinkio
         # run the shlinkio installer
         sudo -u www-data php /var/www/shlinkio/bin/install
   13. Type 1 for MariaDB ≫ Press Enter
   14. Type shlinkio for the database name ≫ Press Enter
   15. Press enter to use localhost for the database host
   16. Press enter to accept the default MySQL port
   17. Type shlinkio_rw for the database username ≫ Press Enter
   18. Type the shlinkio_rw password created earlier ($hlink10!) ≫ Press Enter
   19. Press Enter at the Unix socket prompt
   20. Enter the default domain name to use for shortened URLs,
   21. Type 0 for http ≫ Press Enter
   22. Press Enter to validate long URLs
   23. Press Enter to accept the default shortened URL length
   24. Press Enter to say no to having shlink resolve page titles
   25. Press Enter to track orphan visits
   26. Press Enter at the GeoLite2 license key prompt
   27. Press Enter to anonymize report IP addresses
   28. Enter 301 for the kind of redirect ≫ Press Enter
   29. Press Enter to accept the default redirect cache value
   30. Press Enter to accept displaying a 404 for all 3 redirects options
   31. Press Enter to leave parameter name blank
   32. Type No to enable safety check ≫ Press Enter
   33. Type /shlinkio for the path ≫ Press Enter
   34. Press Enter at the integrations prompt
   35. With the installation completed, run the following command to create a shlinkio.conf apache configuration
         # download shlinkio web client
         sudo wget https://github.com/shlinkio/shlink-web-client/releases/download/v3.1.0/shlink-web-client_3.1.0_dist.zip
         # extract the zip archive
         sudo unzip shlink-web-client_3.1.0_dist.zip
         # move the extracted files to the web root
         sudo mv ./shlink-web-client*/* /var/www/html
         sudo nano /etc/apache2/sites-available/shlinkio.conf


....Full steps can be found on GitHub [link at the top]


### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro







Tags:
Browser Based
Debian
FOSS
Free Software
Home Lab
Home Lab Ideas
How To
How To Install Shlink.io
Install Guide
Linux
Open Source
Self-Hosted
Self-Hosted URL Shortener
Shlink
Shlink.io
Shlink.io Installation Guide
Tutorial
URL Shortener
Web Based
Web Based Tools
i12bretro