Rayon Sites et blogs

Shlink

Votre propre raccourcisseur de liens.

Ajouter à mon serveurGénérer le docker-composeDocumentation officielle

À 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

  1. 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.
  2. 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