Pour plusieurs raisons, il peut-être intéressant de raccourcir un lien. Je vous ai déjà proposé quelques solutions, celle-ci en est une autre. Plus il y a de choix, mieux c'est non?
Aujourd'hui nous allons parler de Kutt ! Un raccourcisseur d'URL moderne prenant en charge les domaines personnalisés et qui va vous permettre de créer, modifier des liens, afficher des statistiques, gérer les utilisateurs, et bien plus encore.
⚡ Caractéristiques
- Créé en pensant à l'auto-hébergement :
1. Aucune configuration nécessaire
2. Installation facile sans étape de construction
3. Prise en charge de diverses bases de données (SQLite, Postgres, MySQL)
4. Possibilité de désactiver l'enregistrement et les liens anonymes - Support des domaines personnalisés.
- Définition d'URLs, de mots de passe, de descriptions et de délais d'expiration personnalisés pour les liens.
- Visualiser, éditer, supprimer et gérer vos liens.
- Statistiques privées pour les URL raccourcis.
- Page d'administration pour gérer les utilisateurs et les liens.
- Personnalisation et thèmes.
- API RESTful.
💾 L'installation
- Créez votre compose.yml dans le dossier ou vous comptez installer Kutt:
sudo nano compose.yml
- Et collez ça dedans:
services:
server:
image: kutt/kutt:latest
restart: always
volumes:
- db_data_sqlite:/var/lib/kutt
- custom:/kutt/custom
environment:
DB_FILENAME: "/var/lib/kutt/data.sqlite"
REDIS_ENABLED: true
REDIS_HOST: redis
REDIS_PORT: 6379
DEFAULT_DOMAIN: kutt.mondomaine.com
DISALLOW_ANONYMOUS_LINKS: true
DISALLOW_REGISTRATION: true
JWT_SECRET: agreement-hyperlink-mountable-generous-caboose-predefine
ports:
- 3075:3000
depends_on:
redis:
condition: service_started
redis:
image: redis:alpine
restart: always
expose:
- 6379
volumes:
db_data_sqlite:
custom:
- DEFAULT_DOMAIN: kutt.mondomaine.com => Indiquez le domaine qui sera lié à votre instance Kutt.
- DISALLOW_ANONYMOUS_LINKS: true => Désactiver la création de liens anonymes. Sur false, il sera donc permis de créer des liens anonymes.
- DISALLOW_REGISTRATION: true => Désactivez l'enregistrement en laissant sur true, sur false vous autoriserez les inscriptions.
Si MAIL_ENABLED est défini sur false, l'inscription sera toujours désactivée car elle s'appuie sur les e-mails pour inscrire les utilisateurs. - JWT_SECRET: xxxxxx => Ceci est utilisé pour signer les jetons d’authentification. Utilisez une longue chaîne aléatoire : une longue phrase de passe, un long mot de passe ou tout simplement une longue chaîne aléatoire de lettres & chiffres.
- On va déployer l'application:
docker compose up -d
- Rendez-vous sur votre domaine :
https://kutt.mondomaine.com
👤 Création du compte administrateur
Lorsque vous lancez votre instance Kutt pour la première fois, vous serez invité à créer votre compte administrateur :

- Email address => Indiquez une adresse e-mail.
- Password => Indiquez un mot de passe fort. Attention de ne pas vous tromper, il n'y a pas de champ de confirmation du mot de passe.
Cliquez sur Create admin account pour terminer.
Vous serez redirigé vers la page de connexion, entrez vos identifiants et terminez en cliquant sur Log in :

Vous serez redirigé vers votre tableau de bord :

🔗 Créer un lien raccourci
Il est très simple de raccourcir une URL. Collez ou tapez l'URL dans le champ prévu à cet effet et cliquez sur le flèche :

Vous avez également la possibilité de cocher Show advanced options :

- Domain => choisissez le domaine.
- Choisissez éventuellement une adresse personnalisée, ici belginux.
- Password => vous pouvez mettre un mot de passe sur le lien.
- Expire in => Décidez de l'expiration du lien.
- Desciption => Ajoutez éventuellement une description.
Quand vous aurez cliqué sur la flèche, vous aurez directement le lien raccourci, il suffira de faire un simple clic gauche sur votre souris pour qu'il soit copié :

Si vous devez revenir ultérieurement sur votre instance Kutt pour récupérer un lien, il sera répertorié avec les autres, ici, en dessous du champ pour raccourcir un lien :

🔧 Les options de lien
Vous remarquerez qu'il existe en bout de ligne des liens, plusieurs options :

Dans l'ordre :
- Les statistiques :



- Le partage par QR Code.
- L'édition du lien.
- Suppression du lien.
⚙️ Les paramètres
En cliquant en haut à droite sur Settings :

Vous aurez plusieurs paramètres comme :
- L'ajout d'un domaine personnalisé.
- Générer une clé API.
- Modifier le mot de passe.
- Supprimer le compte.
📬 Activer le serveur mail
Si vous voulez autoriser les inscriptions, il vous faudra un serveur mail.
Si vous avez votre propre service mail, vous avez les informations nécessaires à entrer ci-dessous.
Mais vous pouvez également utiliser les serveurs mail de Google, Outlook, Infomaniak,.. Jetez un œil ici pour avoir les paramètres nécessaires:

Voici le compose avec le serveur mail :
services:
server:
image: kutt/kutt:latest
restart: always
volumes:
- db_data_sqlite:/var/lib/kutt
- custom:/kutt/custom
environment:
DB_FILENAME: "/var/lib/kutt/data.sqlite"
REDIS_ENABLED: true
REDIS_HOST: redis
REDIS_PORT: 6379
DEFAULT_DOMAIN: zzzlink.mm2.be/
DISALLOW_ANONYMOUS_LINKS: true
DISALLOW_REGISTRATION: false
JWT_SECRET: agreement-hyperlink-mountable-generous-caboose-predefine
MAIL_ENABLED: true
MAIL_HOST: smtp.domaine.com
MAIL_PORT: 587
MAIL_USER: monmail@gmail.com
MAIL_PASSWORD: MonMotDePasse
MAIL_FROM: monmail@gmail.com
MAIL_SECURE: true
REPORT_EMAIL: monmail@gmail.com
CONTACT_EMAIL: monmail@gmail.com
ports:
- 3075:3000
depends_on:
redis:
condition: service_started
redis:
image: redis:alpine
restart: always
expose:
- 6379
volumes:
db_data_sqlite:
custom:
- MAIL_ENABLED: true => Ne changez rien.
- MAIL_HOST: smtp.domaine.com => Hôte du serveur de messagerie.
- MAIL_PORT: 587 => Port du serveur de messagerie.
- MAIL_USER: monmail@gmail.com => Utilisateur du serveur de messagerie, votre adresse e-mail complète.
- MAIL_PASSWORD: MonMotDePasse => Mot de passe de votre adresse e-mail.
- MAIL_FROM: monmail@gmail.com => Adresse e-mail à partir de laquelle envoyer l'utilisateur
- MAIL_SECURE: true => Utiliser ou non le protocole SSL pour la connexion au serveur de messagerie. Réglez sur false ou true. Si vous utilisez le tls, mettez sur false.
- REPORT_EMAIL: monmail@gmail.com => L'adresse courriel qui recevra les rapports.
- CONTACT_EMAIL: monmail@gmail.com => L'adresse électronique de l'assistance à afficher sur l'application.
L'option pour s'inscrire est bien visible :

Et le serveur mail fonctionne bel et bien :
