Comment héberger votre propre serveur bit.ly avec Shlink sous Linux

Comment héberger votre propre serveur bit.ly avec Shlink sous Linux
Une photographie d’un ordinateur portable posé sur une table.

Shlink est un puissant service de raccourcissement de liens auto-hébergé pour Linux. Il fournit un cadre simple mais efficace dans lequel vous pouvez utiliser votre propre nom de domaine comme racine de vos liens raccourcis. Cet article vous montrera comment installer votre propre instance Shlink sur Ubuntu Linux à l’aide de Docker et Nginx.

L’un des principaux arguments de vente de Shlink est que vous pouvez utiliser votre propre domaine personnalisé pour les liens courts tout en restant auto-hébergé. Ceci, à son tour, vous offre la flexibilité d’un service de raccourcissement de liens SaaS ainsi que la confidentialité de l’exécution de logiciels sur votre propre machine.

Une capture d'écran montrant Shlink exécuté sur un serveur de démonstration.

En plus de cela, Shlink dispose également d’un ensemble diversifié de fonctionnalités telles que la possibilité de créer des codes QR, de transférer automatiquement des requêtes de lien et de créer des slugs personnalisés multi-segments. Cela fait de Shlink un outil pratique si vous recherchez un service de raccourcissement de liens sous Linux où vous pouvez modifier l’apparence et le comportement de vos liens.

Obtention de Docker pour Shlink

Hypothèse : cet article suppose que vous installez Shlink sur un VPS Ubuntu 22.04 et que vous possédez actuellement un nom de domaine.

La première étape du déploiement de Shlink sur Linux consiste à obtenir une copie de Docker. Pour ce faire, récupérez la clé de signature du projet Docker sur leur site Web :

Créez le fichier de référentiel pour vos binaires Docker :

Collez la ligne de code suivante dans votre nouveau fichier de référentiel :

Rechargez la liste des référentiels de votre système en effectuantapt update :

Installation des dépendances pour Shlink

Une fois les référentiels Docker opérationnels, vous pouvez désormais utiliser apt pour obtenir les dépendances pour Shlink :

Assurez-vous que le package snap « principal » est disponible sur votre système :

Récupérez et installez le package snap « certbot » depuis l’Electronic Frontier Foundation :

Obtention d’une clé de licence Geolite2

Une autre caractéristique déterminante de Shlink est qu’il peut suivre l’emplacement général de l’utilisateur qui a cliqué sur vos liens. Pour l’utiliser, ouvrez la page d’inscription à la licence Geolite2 .

Une capture d'écran montrant la page d'inscription pour la licence GeoLite.

Remplissez le formulaire avec vos coordonnées, puis appuyez sur Continuer .

Ouvrez votre boîte de réception e-mail, puis recherchez l’e-mail de confirmation de MaxMind.

Cliquez sur le lien de l’e-mail, puis fournissez un mot de passe pour votre nouveau compte MaxMind.

Une capture d'écran montrant le lien de création de mot de passe pour MaxMind.

Connectez-vous à votre compte MaxMind, puis cliquez sur Gérer les clés de licence sur votre tableau de bord.

Une capture d'écran mettant en évidence le

Cliquez sur Générer une nouvelle clé de licence , puis cliquez sur Confirmer pour créer votre clé Geolite2.

Une capture d'écran mettant en évidence le

Copiez la clé de licence Geolite2 dans un fichier texte sur votre machine puis enregistrez-la.

Pour installer Shlink, vous devez d’abord créer un réseau Docker virtuel. Celui-ci servira de réseau privé à l’application où elle pourra communiquer avec les autres conteneurs que vous déploierez :

Déployez une base de données PostgreSQL et liez-la à votre nouveau réseau Docker virtuel :

Modifiez la valeur de la variable d’environnement « POSTGRES_PASSWORD » avec une chaîne de texte aléatoire.

Un terminal affichant un mot de passe aléatoire de base de données PostgreSQL.

Collez la commande suivante dans une nouvelle session de terminal :

Remplacez la valeur de la variable DEFAULT_DOMAIN par votre nom de domaine.

Un terminal affichant la valeur de domaine par défaut pour le serveur de démonstration.

Modifiez la valeur de la variable « GEOLITE_LICENSE_KEY » avec votre clé de licence personnelle.

Un terminal affichant la licence Geolite pour le serveur de démonstration Shlink.

Remplacez la variable « DB_PASSWORD » par votre mot de passe de base de données PostgreSQL.

Un terminal affichant le mot de passe PostegreSQL DB pour le serveur de démonstration.

Appuyez Enterpour démarrer votre instance Shlink.

Installation et liaison de votre interface Shlink

Récupérez une clé API depuis votre conteneur Shlink, puis copiez-la dans votre presse-papiers :

Collez la commande suivante dans une nouvelle session de terminal :

Remplacez « SHLINK_SERVER_URL » par la valeur de votre variable « DEFAULT_DOMAIN » sur le conteneur backend.

Un terminal affichant l'URL complète de l'instance backend Shlink.

Collez votre clé API comme valeur pour « SHLINK_SERVER_API_KEY ».

Un terminal affichant la clé API backend Shlink.

Appuyez Enterpour démarrer votre interface frontale Shlink.

Confirmez que votre base de données, le backend Shlink et l’interface Shlink fonctionnent correctement en répertoriant tous les conteneurs actuellement actifs dans le système :

Un terminal affichant les trois conteneurs qui construisent l'application Web Shlink complète.

Création d’un proxy inverse SSL à l’aide de Nginx

À ce stade, vous disposez désormais d’une suite logicielle Shlink fonctionnelle exécutée sur votre serveur. Cependant, pour y accéder, vous devez toujours créer un proxy Web SSL qui délègue vos deux conteneurs sur des domaines différents.

Pour commencer, créez un nouvel enregistrement A pour l’interface frontend de votre Shlink. Dans mon cas, je définirai l’enregistrement A de mon frontend comme « admin ».

Une capture d'écran montrant les deux enregistrements DNS du serveur de démonstration Shlink.

Créez le fichier de configuration du site pour votre instance Shlink à l’aide de votre éditeur de texte préféré :

Collez le bloc de code suivant dans votre fichier de configuration :

Remplacez la variable « VOTRE-ROOT.DOMAIN » par votre domaine racine et la variable « SUBDOMAIN.YOUR-ROOT.DOMAIN » par le sous-domaine de votre interface frontend.

Enregistrez votre fichier de configuration, puis activez votre application Web dans Nginx :

Rechargez votre démon Nginx pour appliquer vos nouveaux paramètres :

Enregistrez votre serveur auprès de l’Electronic Frontier Foundation :

Demandez un nouveau certificat SSL multi-domaine pour votre instance Shlink :

Confirmez que votre serveur Shlink fonctionne correctement en accédant à la console d’administration de votre instance. Dans mon cas, c’est « https://admin.helloserver.top ».

Une capture d'écran montrant la page de destination par défaut pour une instance Shlink.

Pour utiliser votre nouvelle instance, cliquez sur l’ élément de menu Shlink sur la page de destination.

Une capture d'écran montrant l'élément de menu Shlink sur la page de destination de l'instance.

Collez votre URL longue dans la zone de texte URL à raccourcir sous la catégorie Créer une URL courte .

Fournissez des métadonnées pour votre lien court, puis cliquez sur Enregistrer pour créer votre lien.

Une capture d'écran montrant le formulaire de création d'un lien court dans Shlink.

Ouvrez votre nouvelle URL courte dans un nouvel onglet de navigateur, puis cliquez sur le bouton Visites de votre tableau de bord Shlink pour tester si cela fonctionne correctement.

Une capture d'écran montrant une analyse de base de l'exemple de lien sur Shlink.

L’installation et le déploiement de votre propre service de raccourcissement de liens ne sont que la première étape pour rétablir votre confidentialité en ligne. Découvrez comment Linux peut vous aider à récupérer davantage votre vie privée en hébergeant votre propre site Web anonyme dans Ubuntu à l’aide de Tor .

Crédit image : Carlos Muza via les développeurs Unsplash et Shlink.io . Toutes les modifications et captures d’écran par Ramces Red.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *