À quoi ça sert ?
Shlink crée des liens courts sur votre domaine (mondomaine.fr/promo) avec statistiques de clics, QR codes et liens personnalisés. Pratique pour les réseaux sociaux, les affiches ou les liens affiliés.
Pour qui ?
Ceux qui partagent souvent des liens et veulent savoir combien de personnes cliquent.
Après l'installation
- Shlink n’a pas d’interface intégrée : utilisez l’application web officielle app.shlink.io, en y indiquant l’adresse de votre serveur et la clé INITIAL_API_KEY du fichier .env.
- Ou créez vos liens en ligne de commande : docker compose exec shlink shlink short-url:create
Le docker-compose
Exemple derrière Traefik, avec une explication sur chaque ligne. Pour l'adapter à votre cas (Nginx Proxy Manager, port local…), utilisez le générateur.
# docker-compose.yml : Shlink
# Ce fichier décrit les « conteneurs » à lancer : chaque conteneur est une petite
# boîte isolée qui contient un programme. Lancez-le avec : docker compose up -d
services:
shlink:
# Le programme à télécharger (l'« image »), avec sa version
image: shlinkio/shlink:stable
container_name: shlink
# Redémarre tout seul après une panne ou un redémarrage du serveur
restart: unless-stopped
# Réglages de l'application. Les valeurs ${...} viennent du fichier .env
environment:
DEFAULT_DOMAIN: lien.mondomaine.fr
IS_HTTPS_ENABLED: "true"
INITIAL_API_KEY: "${INITIAL_API_KEY}"
TZ: Europe/Paris
# Dossiers du serveur partagés avec le conteneur (dossier_serveur:dossier_conteneur).
# Vos données sont stockées ici : ce sont ces dossiers qu'il faut sauvegarder.
volumes:
- ./data:/etc/shlink/data
# Réseau partagé avec le reverse proxy pour qu'il puisse joindre l'application
networks:
- traefik
# Indique à Traefik de publier l'application sur https://lien.mondomaine.fr avec un certificat HTTPS
labels:
- traefik.enable=true
- traefik.http.routers.shlink.rule=Host(`lien.mondomaine.fr`)
- traefik.http.routers.shlink.entrypoints=websecure
- traefik.http.routers.shlink.tls.certresolver=letsencrypt
- traefik.http.services.shlink.loadbalancer.server.port=8080
# Le réseau du reverse proxy existe déjà : on s'y raccroche
networks:
traefik:
external: true