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

116 lines
4.1 KiB
Markdown

---
title: Flink
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://gitlab.com/rtraceio/web/flink]
---
# 🔗 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é)
```yaml
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
- [[app-sink]] — autre Rust minimaliste, plus rapide.
- [[app-slash]] — autre Go, plus complet.
- [[app-chhoto-url]] — Rust ultra-léger.
- [[app-kutt]] — TypeScript moderne, plus riche.
### 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
- Site officiel : https://gitlab.com/rtraceio/web/flink
- Code source : https://gitlab.com/rtraceio/web/flink
- Documentation : https://gitlab.com/rtraceio/web/flink#readme
- Releases : https://gitlab.com/rtraceio/web/flink/-/releases
## Pages Liées
- [[cat-url-shortener|URL Shortener]] — Catégorie complète
- [[app-slash]] — Voisin Go plus complet
- [[app-sink]] — Voisin Rust
- [[recettes-docker-compose]] — Templates Docker