5.4 KiB
title: Kutt created: 2026-06-08 updated: 2026-06-08 type: app tags: [catalogue, url-shortener, self-hosted] confidence: high contested: false sources: [https://selfh.st/apps/?tag=42, https://github.com/thedevs-network/kutt]
🔗 Kutt
Kutt est un raccourcisseur d'URL moderne en TypeScript, avec support natif des domaines personnalisés, API REST complète, extension navigateur et interface soignée.
📋 Informations Générales
| Métadonnée | Valeur |
|---|---|
| Site web | https://github.com/thedevs-network/kutt |
| GitHub | https://github.com/thedevs-network/kutt |
| License | MIT |
| Langage principal | TypeScript |
| Étoiles GitHub | 10 893 |
| Dernière MAJ | 2026-05-17 |
| Catégorie | cat-url-shortener |
📝 Description
Kutt est un raccourcisseur d'URL moderne développé par l'équipe thedevs-network. Il combine une interface web élégante avec un backend Node.js/Express solide, ce qui le place à mi-chemin entre la simplicité de YOURLS et la richesse fonctionnelle de Dub. Il supporte nativement les domaines personnalisés (plusieurs possibles sur une même instance) et expose une API REST complète.
L'application gère les slugs personnalisés, les liens protégés par mot de passe, l'expiration programmée, les codes QR, le suivi analytique (clics, référents, géolocalisation via base de villes), et permet de gérer plusieurs utilisateurs avec authentification email/password ou OAuth (Google, GitHub). Une extension navigateur officielle (Chrome/Firefox) permet de raccourcir l'URL courante en un clic.
L'UI est multilingue (i18n) et propose un dashboard clair avec statistiques temps quasi-réel. Le projet est activement maintenu et constitue un excellent choix pour un usage personnel ou en petite équipe qui veut une UI moderne sans la lourdeur d'une plateforme marketing.
🚀 Installation
Docker Compose (recommandé)
services:
kutt:
image: ghcr.io/thedevs-network/kutt:latest
container_name: kutt
restart: unless-stopped
networks:
- web
- internal
environment:
- PORT=3000
- SITE_NAME=Kutt
- SITE_URL=https://go.example.com
- DEFAULT_DOMAIN=go.example.com
- LINK_LENGTH=6
- DISALLOW_REGISTRATION=false
- TRUST_PROXY=true
- DATABASE_URL=postgres://kutt:kuttpass@db:5432/kutt
- JWT_SECRET=${JWT_SECRET}
- ADMIN_EMAILS=admin@example.com
labels:
- "traefik.enable=true"
- "traefik.http.routers.kutt.rule=Host(`go.example.com`)"
- "traefik.http.routers.kutt.tls.certresolver=letsencrypt"
- "traefik.http.services.kutt.loadbalancer.server.port=3000"
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
networks:
- internal
environment:
- POSTGRES_USER=kutt
- POSTGRES_PASSWORD=kuttpass
- POSTGRES_DB=kutt
volumes:
- kutt-db:/var/lib/postgresql/data
networks:
web:
external: true
internal:
volumes:
kutt-db:
Installation manuelle
- Cloner le repo :
git clone https://github.com/thedevs-network/kutt.git - Prérequis : Node.js 20+, PostgreSQL 13+.
- Copier
.env.examplevers.envet configurer. - Lancer les migrations :
npm run migrate. - Démarrer :
npm run dev(développement) ounpm run build && npm start(prod).
⚙️ Configuration
DEFAULT_DOMAIN: le domaine par défaut servant les liens courts.JWT_SECRET: chaîne aléatoire pour signer les tokens d'authentification.DISALLOW_REGISTRATION: àtruepour un usage single-admin.- Ajouter un
MAX_VISITS_PER_LINKpour limiter l'abus. - Brancher un service de mail (SMTP) pour la récupération de mot de passe.
RECAPTCHA_*: à activer pour bloquer les inscriptions automatisées.
🔄 Alternatives
Open Source
- app-shlink — équivalent mature PHP avec REST API et géoloc GeoLite2.
- app-dub — plateforme marketing complète, plus riche mais plus lourde.
- app-yourls — pionnier PHP, écosystème de plugins étendu.
- app-sink — Rust, single binary, analytics no-tracking.
Propriétaires (ce que cette app remplace)
- bit.ly — leader freemium.
- cutt.ly — custom domain et analytics, freemium.
- short.io — orienté marque blanche.
- rebrand.ly — link management avec retargeting.
🔐 Sécurité
- JWT secret : long, aléatoire, jamais exposé publiquement.
- HTTPS strict : service exposé, ne jamais servir en HTTP.
- reCAPTCHA : activer sur l'inscription et la création de liens pour bloquer les bots.
- Rate limit : Kutt expose un middleware Express à configurer.
- Backups Postgres : la base de liens doit être sauvegardée quotidiennement.
- Disable registration : en environnement fermé, passer
DISALLOW_REGISTRATION=true.
📚 Ressources
- Site officiel : https://kutt.it
- Code source : https://github.com/thedevs-network/kutt
- Documentation : https://github.com/thedevs-network/kutt#readme
- API reference : https://github.com/thedevs-network/kutt#api
- Extension Chrome : https://chrome.google.com/webstore/detail/kutt
- Communauté : https://github.com/thedevs-network/kutt/discussions
Pages Liées
- cat-url-shortener — Catégorie complète
- app-shlink — Alternative PHP
- app-dub — Alternative plus complète côté marketing
- recettes-docker-compose — Templates Docker