Installer le raccourcisseur d'url Polr à la maison.

L'api est géniale

Sommaire

Prérequis: - Une debian 8 toute fresh sur un serveur - Un nom de domaine (si possible plutôt court).

Un peu de contexte

J’ai récemment eu besoin d’utiliser les services d’un réducteur d’url. En effet je devais partager des liens vers des dossiers OwnCloud afin de partager des documents (au passage un grand merci à l’association zaclys qui offre 10go à toutes les écoles primaires de France). Le souci c’est que la taille des liens est conséquente lorsque l’on ne souhaite partager qu’un seul répertoire… J’ai donc cherché des solutions; la première étant d’utiliser les services de framasoft, la seconde de récupérer toutes les adresses courriels de mes correspondants et de leur envoyer chacun leur lien personnel. Mais cela ne me convenait pas vraiment…

En effet dans le premier cas cela marche, mais ne satisfait pas mes velléités de geek; dans le second, cela marche aussi mais ce ne me semble pas être une manière pertinente de perdre mon temps…

Du coup, je me suis rendu sur cette page github qui recense tout un tas d’applis awesomes à self-hoster, et j’y ai trouvé Polr. Il s’agit d’une appli libre sous licence GPLv2+ qui non contente de réduire vos url, vous propose aussi un onglet statistique pour connaitre le nombre de clic: pratique. En tout cas moi je suis conquis. Pour voir à quoi cela ressemble, un serveur de démo est disponible à cette adresse.

Installation

Les dépendances: mise en place d’apache2, des php, et de la base de donnée

~$ apt install apache2 apache2-bin apache2-data apache2-utils
~$ a2enmod rewrite
~$ service apache2 restart
~$ apt install php5 php5-common php5-mysql php5-xmlrpc php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear php5-dev php5-imap php5-mcrypt libapache2-mod-php5 php-tokenizer php5-json
~$ apt install php5 php5-cli php5-common php5-gd php5-json php5-ldap php5-readline php5-mysql
~$ apt install mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5

Notez le mot de passe sql qui vous est demandé, on va en avoir besoin juste après.

La base de donnée

~$ mysql -u root -p
      create database polr;
      grant all privileges on polr.* to polr@localhost identified by 'polr';
      flush privileges;
      exit

Récupérer le dossier du projet

~$ adduser polr --disabled-password --gecos polr
~$ cd /home/polr
~$ git clone https://github.com/cydrobolt/polr.git
~$ chmod -R 755 polr
~$ chown -R www-data:www-data polr

Je préfère créer des dossiers dans /home plutôt que dans /var/www/html, parce que je trouve ça plus simple pour régler les autorisations d’apache, mais ce n’est que ma manière de faire.

Mise en place du virtualhost

~$ nano /etc/apache2/sites-available/polr.conf

      <VirtualHost *:80>
       ServerName example.com
       ServerAlias example.com

       DocumentRoot "/home/polr"
       <Directory "/home/polr">
            Require all granted
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
           Allow from all
      </Directory>
      </VirtualHost>

Post-installation et bilan

Pour terminer l’installation, rendez-vous à l’adresse example.com. Polr va vérifier les autorisations des dossiers, s’il parvient à se connecter à la base de donnée… À la dernière étape Polr va vous demander si vous souhaitez créer un compte avec un mot de passe ou bien laisser la possibilité à un utilisateur anonyme de réduire ses url sur votre instance.

Vous devriez à présent être en mesure de faire gagner du temps à vos amis avec des url raccourcis avec amour et à la maison. Félicitation!

Pour ma part je recommande cette application si vous souhaitez pouvoir raccourcir vos url vous même, et dans un même mouvement de disposer des moyens de connaître l’utilisations de vos liens. Surtout l’application est simple et tourne chez moi depuis une semaine sans le moindre souci.

Bonus

Toujours dans l’optique de gagner du temps il existe une application compatible debian/fedora permettant de convertir vos url (ou tout type de texte en flash-code).

~$ apt install qrencode OU dnf install grencode
~$ qrencode -o nomdefichier.png "texte à coder"

Sources

http://docs.polr.me/en/latest/user-guide/installation/
https://github.com/Kickball/awesome-selfhosted
https://grawok.wordpress.com/2012/05/19/creer-et-lire-des-qr-codes-sous-linux/