Files
wiki/Catalogue-Self-Hosted/apps/app-dub.md
T
2026-06-09 18:40:21 +02:00

5.4 KiB


title: Dub 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/dubinc/dub]

🔗 Dub

Dub est une plateforme open source de gestion de liens courts pensée pour les équipes marketing, avec UTM builder, QR codes dynamiques, analytique détaillé et API performante.

📋 Informations Générales

Métadonnée Valeur
Site web https://dub.co
GitHub https://github.com/dubinc/dub
License AGPL-3.0
Langage principal TypeScript
Étoiles GitHub 23 658
Dernière MAJ 2026-06-07
Catégorie cat-url-shortener

📝 Description

Dub est bien plus qu'un simple raccourcisseur d'URL : c'est une plateforme de link management orientée équipes marketing, conçue pour suivre, attribuer et optimiser les liens courts utilisés dans les campagnes. Le projet a démarré comme alternative open source à bit.ly et s'est étoffé pour devenir une suite complète d'attribution (UTM builder, deep links, QR codes dynamiques) avec une API publique.

L'interface est moderne (Next.js, Tailwind) et propose un dashboard temps réel avec géolocalisation, référents, devices, browsers. Le moteur de redirection est optimisé (cache en mémoire, edge-ready) et gère plusieurs domaines personnalisés, slugs personnalisés, expiration programmée, mots de passe, et link previews désactivables.

La version auto-hébergée (Dub OSS) garde 80% des fonctionnalités du SaaS et supporte l'authentification par email, OAuth GitHub/Google, l'API REST, les webhooks et l'export CSV. L'image Docker officielle embarque Postgres, Redis, Tinybird (optionnel) et le worker d'agrégation.

🚀 Installation

Docker Compose (recommandé)

services:
  dub:
    image: dubinc/dub:latest
    container_name: dub
    restart: unless-stopped
    networks:
      - web
      - internal
    environment:
      - NEXT_PUBLIC_APP_DOMAIN=go.example.com
      - DATABASE_URL=postgresql://dub:pass@db:5432/dub
      - REDIS_URL=redis://redis:6379
      - NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
      - NEXTAUTH_URL=https://go.example.com
      - GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
      - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dub.rule=Host(`go.example.com`)"
      - "traefik.http.routers.dub.tls.certresolver=letsencrypt"
      - "traefik.http.services.dub.loadbalancer.server.port=3000"
    depends_on:
      - db
      - redis

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    networks:
      - internal
    environment:
      - POSTGRES_USER=dub
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=dub
    volumes:
      - dub-db:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    networks:
      - internal
    volumes:
      - dub-redis:/data

networks:
  web:
    external: true
  internal:

volumes:
  dub-db:
  dub-redis:

Installation manuelle

Dub OSS fournit un guide pas à pas : cloner le repo, installer pnpm, configurer .env, exécuter Prisma migrate puis pnpm build && pnpm start. Réservé au développement ou à un environnement custom.

⚙️ Configuration

  • Définir NEXT_PUBLIC_APP_DOMAIN sur le domaine personnalisé servant les liens courts.
  • Configurer OAuth GitHub/Google dans .env (variables GITHUB_CLIENT_ID).
  • Exécuter les migrations Prisma au premier démarrage.
  • Brancher Tinybird (optionnel) pour l'analytique temps réel et la géolocalisation IP.
  • Activer la protection du /api par rate limit (middleware Next.js intégré).

🔄 Alternatives

Open Source

  • app-shlink — l'institution PHP, conteneur natif, REST API, géolocalisation via GeoLite2.
  • app-kutt — moderne TypeScript, custom domain, UI soignée, plus simple que Dub.
  • app-yourls — pionnier PHP/MySQL, écosystème de plugins riche.
  • app-sink — Rust, single binary, déploiement Cloudflare ou serveur léger.

Propriétaires (ce que cette app remplace)

  • bit.ly — leader historique, freemium agressif, analytics fermés.
  • short.io — custom domain et branded links, freemium.
  • rebrand.ly — link management orienté marque blanche.
  • BL.INK — plateforme analytics avancée, onéreuse.

🔐 Sécurité

  • OAuth obligatoire : activer au moins GitHub/Google, ne pas laisser l'inscription ouverte en production.
  • Rate limiting : la redirection d'URL est une cible classique de spam, activer CrowdSec ou le middleware intégré.
  • Backups Postgres : la base de liens est précieuse, sauvegarder quotidiennement.
  • HTTPS strict : service exposé publiquement, ne jamais servir en HTTP.
  • Secret rotation : NEXTAUTH_SECRET doit être long et renouvelé annuellement.

📚 Ressources

Pages Liées