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

4.6 KiB


title: Fli.so 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/thisuxhq/fli.so]

🔗 Fli.so

Fli.so est un raccourcisseur d'URL moderne écrit par l'équipe thisuxhq, avec une interface épurée, des QR codes intégrés et un déploiement cloud-first.

📋 Informations Générales

Métadonnée Valeur
Site web https://fli.so
GitHub https://github.com/thisuxhq/fli.so
License AGPL-3.0
Langage principal TypeScript
Étoiles GitHub 505
Dernière MAJ 2025-05-06
Catégorie cat-url-shortener

📝 Description

Fli.so est un raccourcisseur d'URL moderne construit par thisuxhq, équipe qui a popularisé plusieurs outils SvelteKit. Le projet mise sur la vitesse d'exécution (chargement quasi-instantané) et une interface utilisateur épurée, sans la lourdeur des plateformes marketing comme Dub.

L'application supporte les slugs personnalisés, les domaines personnalisés, les liens protégés par mot de passe, l'expiration programmée, et génère automatiquement un QR code stylisé pour chaque lien. L'UI web est en SvelteKit, ce qui en fait un client léger côté navigateur, et le backend Node.js peut être déployé sur Vercel, Fly.io, ou un VPS classique via Docker.

L'écosystème est plus jeune que Shlink ou Kutt, et la documentation est succincte. Le projet est cependant un bon choix pour ceux qui veulent une UI moderne et réactive sans dépendre d'un service commercial, et qui maîtrisent SvelteKit / Node.js pour la customisation.

🚀 Installation

Docker Compose (recommandé)

services:
  fliso:
    image: ghcr.io/thisuxhq/fliso:latest
    container_name: fliso
    restart: unless-stopped
    networks:
      - web
      - internal
    environment:
      - DATABASE_URL=postgresql://fliso:***@db:5432/fliso
      - NEXTAUTH_URL=https://go.example.com
      - NEXTAUTH_SECRET=${NEXT...T}
      - DEFAULT_DOMAIN=go.example.com
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.fliso.rule=Host(`go.example.com`)"
      - "traefik.http.routers.fliso.tls.certresolver=letsencrypt"
      - "traefik.http.services.fliso.loadbalancer.server.port=3000"
    depends_on:
      - db

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

networks:
  web:
    external: true
  internal:

volumes:
  fliso-db:

Installation manuelle (Vercel/Fly)

  1. git clone https://github.com/thisuxhq/fli.so.git
  2. Prérequis : Node.js 20+, PostgreSQL 13+ (Supabase, Neon, RDS acceptés).
  3. Copier .env.example vers .env et configurer.
  4. Lancer les migrations Prisma puis npm run dev (ou vercel deploy).

⚙️ Configuration

  • NEXTAUTH_SECRET : chaîne aléatoire pour signer les sessions.
  • DEFAULT_DOMAIN : le domaine servant les liens courts.
  • Configurer OAuth (Google, GitHub) pour l'inscription.
  • Brancher un SMTP pour la récupération de mot de passe.
  • Activer le rate-limiting (middleware SvelteKit ou reverse proxy).

🔄 Alternatives

Open Source

  • app-kutt — autre TypeScript plus mature, UI équivalente.
  • app-shlink — PHP mature, REST API complète.
  • app-sink — Rust, edge-ready, no-tracking.
  • app-dub — plateforme marketing complète, plus riche.

Propriétaires (ce que cette app remplace)

  • bit.ly — leader freemium.
  • cutt.ly — custom domain, freemium.
  • short.io — orienté marque blanche.
  • ow.ly (Hootsuite) — orienté social media.

🔐 Sécurité

  • NEXTAUTH_SECRET : chaîne aléatoire longue, jamais commitée.
  • HTTPS strict : service exposé, ne jamais servir en HTTP.
  • OAuth providers : limiter les providers autorisés en production.
  • Rate limit : activer sur l'API de création pour bloquer les abus.
  • Backups DB : la base de liens doit être sauvegardée quotidiennement.

📚 Ressources

Pages Liées