---
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é)

```yaml
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

- Site officiel : https://yourls.org
- Code source : https://github.com/YOURLS/YOURLS
- Documentation : https://yourls.org/docs
- Plugins : https://github.com/YOURLS/awesome-yourls
- Communauté : https://github.com/YOURLS/YOURLS/discussions
- Démo publique : https://demo.yourls.org

## Pages Liées

- [[cat-url-shortener|URL Shortener]] — Catégorie complète
- [[app-shlink]] — Alternative PHP moderne
- [[app-polr]] — Autre shortener PHP historique
- [[recettes-docker-compose]] — Templates Docker
