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

4.1 KiB


🔗 Flink

Flink est un raccourcisseur d'URL "zero-config" écrit en Go, générant automatiquement des QR codes et offrant des analytics de base, sans base de données externe.

📋 Informations Générales

Métadonnée Valeur
Site web https://gitlab.com/rtraceio/web/flink
GitLab https://gitlab.com/rtraceio/web/flink
License MIT
Langage principal Go
Étoiles GitHub 19
Dernière MAJ 2026-06-05
Catégorie cat-url-shortener

📝 Description

Flink est un petit raccourcisseur d'URL écrit en Go et hébergé sur GitLab par rtraceio. Sa philosophie est le "zero-config" : on télécharge le binaire, on le lance, et il tourne. Pas de base de données externe (SQLite embarqué), pas de fichier de configuration complexe, pas de dépendance tierce.

L'application couvre l'essentiel : raccourcissement, génération automatique de QR codes pour chaque lien, suivi des visites (analytics basiques par compteur), slugs personnalisés, et exposition d'une page de statistiques par lien. L'UI est volontairement simple, sans fioritures.

C'est un projet de niche, avec une communauté restreinte, mais c'est un choix solide pour les amateurs de Go qui veulent un shortener qu'ils peuvent lire et comprendre en une heure. Idéal pour un home-lab, un serveur perso, ou un test d'auto-hébergement. Pour un usage en production à grande échelle, mieux vaut se tourner vers Shlink ou Dub.

🚀 Installation

Docker Compose (recommandé)

services:
  flink:
    image: registry.gitlab.com/rtraceio/web/flink:latest
    container_name: flink
    restart: unless-stopped
    networks:
      - web
    environment:
      - LISTEN_ADDR=0.0.0.0:8080
      - BASE_URL=https://go.example.com
      - SHORT_CODE_LENGTH=6
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.flink.rule=Host(`go.example.com`)"
      - "traefik.http.routers.flink.tls.certresolver=letsencrypt"
      - "traefik.http.services.flink.loadbalancer.server.port=8080"
    volumes:
      - flink-data:/data

networks:
  web:
    external: true

volumes:
  flink-data:

Installation manuelle (single binary)

  1. Télécharger le binaire depuis la page Releases GitLab.
  2. chmod +x flink && ./flink
  3. L'application écoute par défaut sur :8080 et stocke tout dans un fichier SQLite local.

⚙️ Configuration

  • BASE_URL : URL publique servant les liens.
  • SHORT_CODE_LENGTH : longueur des slugs générés (5-8).
  • LISTEN_ADDR : interface d'écoute.
  • Le projet étant minimaliste, la configuration se limite à ces variables d'environnement.

🔄 Alternatives

Open Source

Propriétaires (ce que cette app remplace)

  • bit.ly — leader freemium.
  • tinyurl.com — historique, sans analytics.
  • is.gd — minimaliste.
  • t.co (Twitter) — intégré mais opaque.

🔐 Sécurité

  • HTTPS strict : service exposé, ne jamais servir en HTTP.
  • Reverse proxy : Traefik/Caddy en frontal, Flink reste en interne.
  • Backups SQLite : copier le fichier DB régulièrement (il est petit).
  • Rate limit : à mettre en place côté reverse proxy.
  • Updates Go : peu de failles en Go, mais suivre les releases upstream.

📚 Ressources

Pages Liées