Files
2026-06-09 18:40:21 +02:00

5.1 KiB


title: YOURLS 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/YOURLS/YOURLS]

🔗 YOURLS

YOURLS (Your Own URL Shortener) est le pionnier des raccourcisseurs d'URL auto-hébergés : PHP + MySQL, plus de 15 ans d'active development et un écosystème de plugins considérable.

📋 Informations Générales

Métadonnée Valeur
Site web https://yourls.org
GitHub https://github.com/YOURLS/YOURLS
License MIT
Langage principal PHP
Étoiles GitHub 12 058
Dernière MAJ 2026-06-06
Catégorie cat-url-shortener

📝 Description

YOURLS est né en 2009 et reste l'une des références en matière de raccourcissement d'URL auto-hébergé. Le principe est volontairement simple : une application PHP légère, une base MySQL/MariaDB, et un fichier de configuration config.php à éditer. Cette simplicité fait sa force : on peut l'installer en cinq minutes sur n'importe quel hébergement PHP mutualisé.

Côté fonctionnalités, YOURLS gère les slugs personnalisés, les URL privées, l'authentification par login/mot de passe ou par clé API, le suivi des clics (pays, référent, navigateur) et expose une API publique pour créer des liens courts programmatiquement. Le système de plugins est son grand atout : plus de 200 extensions communautaires ajoutent l'UI Material, l'export CSV, l'intégration Matomo, les QR codes, le support Redis, le multilingue, etc.

L'interface d'administration reste simple mais fonctionnelle, et le projet est activement maintenu. C'est le choix idéal pour qui veut un shortener basique, stable et personnalisable, sans la complexité d'une stack TypeScript moderne.

🚀 Installation

Docker Compose (recommandé)

services:
  yourls:
    image: yourls/yourls:latest
    container_name: yourls
    restart: unless-stopped
    networks:
      - web
      - internal
    environment:
      - YOURLS_SITE=Go
      - YOURLS_USER=admin
      - YOURLS_PASS=${YOURLS_PASS}
      - YOURLS_DB_HOST=db
      - YOURLS_DB_NAME=yourls
      - YOURLS_DB_USER=yourls
      - YOURLS_DB_PASS=yourlspass
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.yourls.rule=Host(`go.example.com`)"
      - "traefik.http.routers.yourls.tls.certresolver=letsencrypt"
      - "traefik.http.services.yourls.loadbalancer.server.port=80"
    volumes:
      - yourls-data:/var/www/html
    depends_on:
      - db

  db:
    image: mariadb:11
    restart: unless-stopped
    networks:
      - internal
    environment:
      - MARIADB_DATABASE=yourls
      - MARIADB_USER=yourls
      - MARIADB_PASSWORD=yourlspass
      - MARIADB_RANDOM_ROOT_PASSWORD=yes
    volumes:
      - yourls-db:/var/lib/mysql

networks:
  web:
    external: true
  internal:

volumes:
  yourls-data:
  yourls-db:

Installation manuelle (LAMP)

  1. git clone https://github.com/YOURLS/YOURLS.git
  2. Copier config/config-sample.php vers config/config.php et éditer.
  3. Importer le schéma SQL via yourls.sql sur la base MySQL.
  4. Pointer Apache/Nginx sur /user (et /admin pour l'UI).

⚙️ Configuration

  • Éditer config.php : URL du site, identifiants admin, paramètres DB.
  • Activer les plugins via yourls_plugins[] dans la config.
  • Configurer le YOURLS_COOKIEKEY (chaîne aléatoire de 64+ caractères).
  • Ajouter un virtual host Nginx/Apache avec réécriture propre pour les liens courts.
  • Sauvegarder régulièrement la base MySQL (table yourls_url + yourls_log).

🔄 Alternatives

Open Source

  • app-shlink — équivalent moderne en PHP avec REST API, géoloc GeoLite2.
  • app-kutt — réécrit en TypeScript, UI plus moderne, multilingue.
  • app-sink — Rust, single binary, edge-ready.
  • app-polr — autre historique PHP, peu maintenu.

Propriétaires (ce que cette app remplace)

  • bit.ly — leader freemium.
  • tinyurl.com — historique, UI vieillissante.
  • ow.ly (Hootsuite) — orienté social media.
  • is.gd — minimaliste, sans analytics.
  • t.co (Twitter) — intégré mais opaque.

🔐 Sécurité

  • Cookie key : YOURLS_COOKIEKEY doit être long et secret, jamais committé.
  • HTTPS obligatoire : exposer en HTTP révèle les slugs et permet l'injection.
  • Backups MySQL : exporter régulièrement yourls_url et yourls_log.
  • Rate limit : ajouter un middleware (fail2ban, CrowdSec) pour bloquer les abus.
  • Updates PHP : YOURLS suit les versions PHP, rester sur 8.2+ pour les correctifs de sécurité.

📚 Ressources

Pages Liées