--- 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Ă©) ```yaml 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 1. Cloner le repo : `git clone https://github.com/thedevs-network/kutt.git` 2. PrĂ©requis : Node.js 20+, PostgreSQL 13+. 3. Copier `.env.example` vers `.env` et configurer. 4. Lancer les migrations : `npm run migrate`. 5. DĂ©marrer : `npm run dev` (dĂ©veloppement) ou `npm 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` : Ă  `true` pour un usage single-admin. - Ajouter un `MAX_VISITS_PER_LINK` pour 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|URL Shortener]] — CatĂ©gorie complĂšte - [[app-shlink]] — Alternative PHP - [[app-dub]] — Alternative plus complĂšte cĂŽtĂ© marketing - [[recettes-docker-compose]] — Templates Docker