[{"data":1,"prerenderedAt":188},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-kutt-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-self-host-kutt-vps-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":128,"ctaBody":129,"ctaButton":130,"ctaUrl":131,"relatedPosts":132},561,"self-host-kutt-vps",{"fr":10,"en":12,"ar":13,"es":14},"self-host-kutt-vps-url-shortener","استضافة-kutt-على-vps-اختصار-الروابط","autoalojar-kutt-vps-acortador-de-url","Kutt sur VPS : un raccourcisseur d'URL à votre domaine","Installez Kutt sur un VPS : liens courts sur votre propre domaine, API REST, adresses personnalisées, expiration, mot de passe et statistiques privées.",7,0,false,"2026-11-02T00:00:00+00:00","2026-11-02T13:48:09+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-kutt-vps-poster.svg",{"categorySlug":33,"appSlug":34},"automatisation","kutt","Un lien bit.ly dans une campagne SMS, c'est un clic qui passe par un service que vous ne contrôlez pas, une statistique que vous ne possédez pas, et un domaine qui n'est pas le vôtre. Kutt, un raccourcisseur d'URL open source sous licence MIT, remet tout cela chez vous : chaque lien court porte votre domaine, chaque clic reste dans votre base, et une API REST permet à vos outils de raccourcir leurs liens tout seuls. Ce guide installe Kutt avec Docker Compose sur un VPS, le publie en HTTPS derrière nginx, ferme les inscriptions publiques, puis montre comment créer des liens par l'API.",[37,41,51,87,90,106,110,113,116,119,122,125],{"type":38,"title":39,"body":40},"h2","Pourquoi héberger votre propre raccourcisseur d'URL","Un raccourcisseur public décide à votre place : il peut changer ses conditions, limiter le nombre de liens, afficher une page intermédiaire ou disparaître, et vos liens déjà imprimés cessent alors de fonctionner. Ses statistiques lui appartiennent, et son domaine partagé est régulièrement bloqué par les filtres anti-hameçonnage parce que d'autres l'utilisent mal.\n\nAvec Kutt sur votre VPS, le lien go.votre-domaine.ma\u002Foffre est à vous pour toujours : vous pouvez changer sa destination sans réimprimer l'affiche, consulter qui a cliqué et d'où, et aucun tiers ne voit vos campagnes. Pour une agence, c'est aussi un service à proposer à chaque client, sur son propre domaine.",{"type":42,"title":43,"items":44},"ul","Ce que Kutt apporte",[45,46,47,48,49,50],"**Liens à votre domaine** — chaque lien court porte votre marque et reste valide même si vous changez d'outil plus tard.","**Adresses personnalisées** — `\u002Frentree`, `\u002Fwebinar`, ou un code de six caractères généré sans caractères ambigus.","**Mot de passe et expiration** — un lien protégé pour un document client, un lien qui cesse de rediriger à la fin d'une offre.","**Statistiques privées** — visites dans le temps, navigateurs, systèmes, pays et sites référents, visibles du seul propriétaire.","**API REST** — une clé par utilisateur pour créer, modifier et supprimer des liens depuis vos scripts et vos outils.","**Administration** — création des comptes de l'équipe, revue de tous les liens, bannissement d'un lien ou d'un domaine abusif.",{"type":52,"title":53,"headers":54,"rows":58},"comparison","Kutt, Shlink et un service public",[5,55,56,57],"Kutt","Shlink","Service public (bit.ly…)",[59,64,69,73,77,82],[60,61,62,63],"Interface web","Intégrée","Client web séparé","Oui",[65,66,67,68],"API REST","Oui, clé par utilisateur","Oui, clés gérées en ligne de commande","Oui, souvent payante",[70,71,71,72],"Votre propre domaine","Oui, inclus","Option payante",[74,75,75,76],"Statistiques","Dans votre base","Chez le fournisseur",[78,79,80,81],"Comptes d'équipe","Oui, créés par l'administrateur","Non, accès par clé d'API","Selon l'offre",[83,84,85,86],"Stockage","SQLite, PostgreSQL ou MySQL","SQLite, PostgreSQL, MySQL ou SQL Server","Géré par le fournisseur",{"type":38,"title":88,"body":89},"Prérequis","Un VPS Ubuntu 24.04 avec 512 Mo de RAM et 5 Go de disque suffit : Kutt tourne dans un seul conteneur Node.js et utilise environ 200 Mo de mémoire. Il vous faut Docker avec le plugin Compose, nginx et certbot pour le HTTPS, et un nom DNS qui pointe vers le VPS.\n\nChoisissez ce nom avec soin, car il forme chaque lien : plus il est court, plus vos liens le sont. Un sous-domaine comme `go.votre-domaine.ma` ou un petit domaine dédié fonctionne très bien. Kutt l'inscrit dans chaque lien créé, si bien que le changer plus tard ne réécrit pas les liens déjà partagés.",{"type":91,"title":92,"steps":93},"steps","Installer Kutt avec Docker Compose",[94,97,100,103],{"title":95,"body":96},"Préparer le répertoire et les secrets","Créez le répertoire de l'application et un fichier `.env` qui porte la clé secrète (elle signe les sessions) et le domaine des liens courts. Remplacez `go.example.com` par votre propre nom.\n```bash\nmkdir -p \u002Fopt\u002Fkutt && cd \u002Fopt\u002Fkutt\nprintf 'SECRET_KEY=%s\\nDOMAIN=go.example.com\\n' \"$(openssl rand -hex 32)\" > .env\nchmod 600 .env\n```",{"title":98,"body":99},"Écrire le fichier compose","Créez `compose.yaml`. Le port n'est publié que sur la boucle locale : seul nginx y accède. Les inscriptions publiques et les liens anonymes restent fermés, et la base SQLite vit dans un volume nommé.\n```yaml\nservices:\n  kutt:\n    image: kutt\u002Fkutt:v3.2.6\n    restart: unless-stopped\n    ports:\n      - \"127.0.0.1:8107:3000\"\n    environment:\n      JWT_SECRET: ${SECRET_KEY:?SECRET_KEY requis}\n      DEFAULT_DOMAIN: ${DOMAIN:?DOMAIN requis}\n      DB_CLIENT: better-sqlite3\n      DB_FILENAME: \u002Fvar\u002Flib\u002Fkutt\u002Fdata.sqlite\n      TRUST_PROXY: \"true\"\n      DISALLOW_REGISTRATION: \"true\"\n      DISALLOW_ANONYMOUS_LINKS: \"true\"\n    volumes:\n      - kutt-data:\u002Fvar\u002Flib\u002Fkutt\n      - kutt-custom:\u002Fkutt\u002Fcustom\nvolumes:\n  kutt-data: {}\n  kutt-custom: {}\n```",{"title":101,"body":102},"Démarrer et vérifier","Lancez la pile. Kutt applique ses migrations au démarrage, puis la sonde de santé doit répondre 200.\n```bash\ndocker compose up -d\ndocker compose ps\ncurl -s -o \u002Fdev\u002Fnull -w '%{http_code}\\n' http:\u002F\u002F127.0.0.1:8107\u002Fapi\u002Fv2\u002Fhealth\n```",{"title":104,"body":105},"Publier Kutt en HTTPS","Déclarez un hôte virtuel nginx qui transmet les requêtes au port local, puis demandez le certificat avec certbot. L'en-tête `X-Forwarded-For` permet à Kutt de compter la vraie adresse des visiteurs (`TRUST_PROXY`).\n```nginx\nserver {\n    server_name go.example.com;\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8107;\n        proxy_set_header Host $host;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n```bash\ncertbot --nginx -d go.example.com\n```",{"type":107,"title":108,"body":109},"tip","Créez le compte administrateur sans attendre","Kutt ne crée aucun compte à l'avance : tant qu'aucun utilisateur n'existe, la page d'accueil redirige vers le formulaire **create admin**, et le premier visiteur devient administrateur. Ouvrez votre domaine dès que le HTTPS fonctionne et créez votre compte avec un mot de passe solide. Ensuite le formulaire refuse toute nouvelle création.",{"type":38,"title":111,"body":112},"Créer des liens par l'API","Dans les paramètres de votre compte, générez une clé d'API, puis envoyez-la dans l'en-tête `X-API-KEY`. Le corps JSON accepte `target` (l'adresse longue) et, en option, `customurl`, `password`, `description` et `expire_in` (une durée comme `7 days`).\n```bash\ncurl -s -X POST https:\u002F\u002Fgo.example.com\u002Fapi\u002Fv2\u002Flinks \\\n  -H \"X-API-KEY: $KUTT_API_KEY\" \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\"target\": \"https:\u002F\u002Fexample.com\u002Fune\u002Fadresse\u002Ftres\u002Flongue\", \"customurl\": \"promo\", \"expire_in\": \"7 days\"}'\n```\n\nLa réponse contient le champ `link`, le lien court complet. Le même point d'accès en `GET` liste vos liens avec leur nombre de visites, et `\u002Fapi\u002Fv2\u002Flinks\u002F\u003Cid>\u002Fstats` rend les statistiques détaillées d'un lien. C'est ce qui permet de brancher Kutt sur un CRM, un script de facturation ou une campagne d'e-mailing : chaque lien sortant est raccourci et mesuré sans intervention.",{"type":38,"title":114,"body":115},"Travailler en équipe","Les inscriptions sont fermées : c'est l'administrateur qui crée les comptes depuis la page d'administration. Chaque membre a ses propres liens, ses statistiques privées et sa clé d'API, révocable en la régénérant. L'administrateur voit tous les liens de l'instance et peut bannir un lien abusif ; c'est important, car un raccourcisseur au nom de votre domaine engage sa réputation.\n\nKutt accepte aussi des domaines supplémentaires, ajoutés dans les paramètres. Chacun doit pointer vers le VPS et disposer de son propre certificat : commencez avec un seul domaine, puis ajoutez les autres un par un.",{"type":38,"title":117,"body":118},"Activer les e-mails","Kutt s'installe avec les e-mails désactivés : pas de réinitialisation de mot de passe par e-mail ni de vérification d'adresse. Pour les activer, ajoutez dans l'environnement du conteneur `MAIL_ENABLED: \"true\"` et les variables `MAIL_HOST`, `MAIL_PORT`, `MAIL_USER`, `MAIL_PASSWORD` et `MAIL_FROM` de votre serveur SMTP, puis relancez avec `docker compose up -d`. Gardez une note du mot de passe administrateur en attendant : sans e-mail, sa perte se règle en base.",{"type":38,"title":120,"body":121},"Dimensionner le VPS","Pour une équipe et quelques milliers de liens, 512 Mo de RAM et un vCPU suffisent largement : la redirection est une simple lecture en base. La base SQLite grossit avec les visites enregistrées, de l'ordre de quelques centaines d'octets par clic. Au-delà de centaines de milliers de clics par jour, passez à PostgreSQL (`DB_CLIENT: pg`) et activez Redis (`REDIS_ENABLED`) pour le cache.",{"type":38,"title":123,"body":124},"Sauvegarde et mise à jour","Toute la donnée tient dans le volume `kutt-data` : la base SQLite contient les comptes, les liens et les statistiques. Arrêtez le conteneur un instant pour obtenir une copie cohérente, puis archivez le volume.\n```bash\ndocker compose stop kutt\ndocker run --rm -v kutt_kutt-data:\u002Fdata -v \"$PWD\":\u002Fbackup alpine \\\n  tar czf \u002Fbackup\u002Fkutt-$(date +%F).tar.gz -C \u002Fdata .\ndocker compose start kutt\n```\n\nPour mettre à jour, lisez les notes de version du projet, changez l'étiquette de l'image, puis tirez la nouvelle image : les migrations s'appliquent au démarrage. Faites toujours une sauvegarde juste avant.\n```bash\n# changer l'étiquette de l'image dans compose.yaml, puis :\ndocker compose pull && docker compose up -d\n```",{"type":38,"title":126,"body":127},"Installation en un clic depuis le Marketplace ServOrbit","Sur un VPS ServOrbit, Kutt s'installe depuis le Marketplace de votre espace client : choisissez l'adresse — un sous-domaine court de l'un de vos domaines ou le sous-domaine gratuit du VPS, HTTPS compris — et cliquez sur Installer. Le script déploie le conteneur, génère la clé secrète, règle le domaine des liens et configure nginx. Il ne vous reste qu'à ouvrir votre domaine pour créer le compte administrateur, puis votre première clé d'API.","Vos liens courts, sur votre domaine","Un VPS ServOrbit Ubuntu 24.04 avec 512 Mo de RAM suffit pour Kutt. Installation en un clic depuis le Marketplace, clé secrète générée pour vous, HTTPS sur votre domaine ou sur le sous-domaine gratuit du VPS.","Découvrir Kutt","\u002Fmarketplace\u002Fautomatisation\u002Fkutt",[133,150,169],{"id":134,"slug":135,"slugs":136,"title":140,"excerpt":141,"readTime":17,"views":18,"isPinned":19,"publishedAt":142,"updatedAt":143,"category":144,"categories":145,"featuredImage":29,"bgImage":30,"posterImage":147,"relatedSolution":148},87,"heberger-listmonk",{"fr":135,"en":137,"ar":138,"es":139},"host-listmonk-on-your-own-vps","استضافة-listmonk-على-خادمك-الافتراضي-الخاص-vps","alojar-listmonk-en-un-vps","Héberger Listmonk sur votre propre VPS","Déployez Listmonk sur votre VPS : installation Docker, configuration SMTP avancée, gestion des bounces, mise à jour, dépannage courant et sauvegarde PostgreSQL.","2026-03-25T00:00:00+00:00","2026-09-20T21:13:53+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[146],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-listmonk-poster.svg",{"categorySlug":24,"appSlug":149},"listmonk",{"id":151,"slug":152,"slugs":153,"title":157,"excerpt":158,"readTime":159,"views":160,"isPinned":19,"publishedAt":161,"updatedAt":162,"category":163,"categories":164,"featuredImage":29,"bgImage":30,"posterImage":166,"relatedSolution":167},249,"self-host-mautic-vps",{"fr":152,"en":154,"ar":155,"es":156},"self-host-mautic-on-a-vps-open-source-marketing-automation","استضافة-mautic-على-vps-أتمتة-التسويق-مفتوحة-المصدر","alojar-mautic-en-un-vps-automatizacion-marketing","Héberger Mautic sur un VPS : automation marketing open-source","Hébergez Mautic sur votre VPS et remplacez Mailchimp ou HubSpot par une plateforme GPL : campagnes email, lead scoring, segmentation — sans frais par contact.",11,1,"2026-01-17T00:00:00+00:00","2026-10-13T14:10:29+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[165],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fself-host-mautic-vps-poster.svg",{"categorySlug":33,"appSlug":168},"mautic",{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":18,"isPinned":19,"publishedAt":179,"updatedAt":180,"category":181,"categories":182,"featuredImage":29,"bgImage":30,"posterImage":184,"relatedSolution":185},251,"heberger-linkwarden-vps",{"fr":171,"en":173,"ar":174,"es":175},"self-host-linkwarden-on-a-vps-team-bookmark-management","استضافة-linkwarden-على-vps-إدارة-الإشارات-المرجعية-للفريق","alojar-linkwarden-en-un-vps","Héberger Linkwarden sur VPS : gestion de favoris d'équipe","Déployez Linkwarden sur votre VPS : centralisez la veille de l'agence avec des collections partagées, des droits par équipe et une extension multi-utilisateurs.",8,"2026-08-13T00:00:00+00:00","2026-09-21T15:22:04+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[183],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-linkwarden-vps-poster.svg",{"categorySlug":186,"appSlug":187},"collaboration","linkwarden",1793627773668]