---
title: Litlyx
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, web-analytics, privacy, self-hosted, analytics, typescript, nextjs, postgresql, simple, modern]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=web-analytics]
---

# ⚡ Litlyx

> Solution d'analytics web **simple et moderne** écrite en TypeScript, avec un **script de 1 Ko** et une expérience développeur soignée.
> Source : [selfh.st](https://selfh.st/apps/?tag=web-analytics)

## 📋 Métadonnées

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [litlyx.com](https://litlyx.com/) |
| **GitHub** | [github.com/Litlyx/litlyx](https://github.com/Litlyx/litlyx) |
| **License** | AGPL-3.0 |
| **Langage** | TypeScript / Next.js / Node.js |
| **Étoiles** | 112 |
| **Dernière MAJ** | 2026-04 |
| **Catégorie** | [[cat-web-analytics]] |

## 📝 Description

**Litlyx** est une solution d'**analyse web moderne** qui mise sur la **simplicité radicale** et la **qualité de l'expérience développeur**. L'objectif affiché : fournir un outil aussi **rapide à installer** qu'un Google Tag Manager, mais avec la **souveraineté** du self-hosted et le **respect de la vie privée**.

Le **script de tracking** pèse moins d'1 Ko et se charge de manière asynchrone, sans impacter les **Core Web Vitals**. L'**API publique** est volontairement simple et bien documentée : une seule méthode `litlyx.event('nom_evenement', { props })` permet de tracker n'importe quelle interaction personnalisée. Litlyx s'inscrit dans la mouvance **"track what matters"** — pas une débauche de rapports, mais l'essentiel visible rapidement.

Fonctionnalités principales : **dashboard temps réel**, **événements personnalisés** illimités, **funnels** simples, **sessions** et **utilisateurs uniques**, **géolocalisation** par IP, **intégrations** natives (webhooks, Zapier, Make), **API REST**, **multi-sites** depuis une seule instance, **rôles** basiques (admin / user), **export CSV**.

Litlyx se distingue aussi par son **setup en 30 secondes** : une commande `npx litlyx` (en mode cloud) ou un `docker compose up` (en self-hosted) suffit pour démarrer. Le projet est plus **jeune** que [[app-umami]] ou [[app-plausible]], mais l'équipe livre **régulièrement** des mises à jour et la communauté grandit.

Idéal pour les **startups**, **petits SaaS**, **portfolios** et **projets personnels** qui veulent un analytics **fiable, simple et rapide** à mettre en place.

## 🚀 Installation

### Option 1 : Docker Compose (recommandé)

```yaml
# docker-compose.yml
version: '3.8'

services:
  litlyx:
    image: ghcr.io/litlyx/litlyx:latest
    container_name: litlyx
    restart: unless-stopped
    ports:
      - "3030:3000"
    environment:
      LITLYX_SECRET_KEY: changez-cette-cle-aleatoire
      LITLYX_API_KEY: votre-api-key-publique
      DATABASE_URL: mongodb://litlyx:***@mongo:27017/litlyx
      JWT_SECRET: changez-jwt-secret
      LITLYX_PUBLIC_URL: https://litlyx.example.com
    depends_on:
      mongo:
        condition: service_healthy
    networks:
      - litlyx-net
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000/"]
      interval: 30s
      timeout: 5s
      retries: 3

  mongo:
    image: mongo:6
    container_name: litlyx-mongo
    restart: unless-stopped
    environment:
      MONGO_INITDB_ROOT_USERNAME: litlyx
      MONGO_INITDB_ROOT_PASSWORD: litlyx
      MONGO_INITDB_DATABASE: litlyx
    volumes:
      - ./mongo-data:/data/db
    networks:
      - litlyx-net
    healthcheck:
      test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 5s
      retries: 5

networks:
  litlyx-net:
    driver: bridge
```

> Variante : support natif **PostgreSQL** via `DATABASE_URL=postgresql://...` selon la version de l'image.

Lancement :

```bash
docker compose up -d
# Accéder à http://localhost:3030
# Créer le compte initial et le premier projet depuis l'UI
```

### Option 2 : Installation manuelle (Node.js + MongoDB)

```bash
git clone https://github.com/Litlyx/litlyx.git
cd litlyx
pnpm install
# Configurer .env (DATABASE_URL, LITLYX_SECRET_KEY, JWT_SECRET)
pnpm build
pnpm start
```

Prérequis : **Node.js 20+**, **MongoDB 6+** (ou **PostgreSQL 14+** selon la version), **pnpm 9+**.

## ⚙️ Configuration

- **LITLYX_SECRET_KEY** : clé secrète pour signer les tokens JWT, 32+ caractères.
- **LITLYX_API_KEY** : clé publique distribuée aux clients.
- **DATABASE_URL** : MongoDB (`mongodb://...`) ou PostgreSQL (`postgresql://...`).
- **JWT_SECRET** : clé secrète pour la session utilisateur, distincte de LITLYX_SECRET_KEY.
- **LITLYX_PUBLIC_URL** : URL publique, utilisée pour CORS et les liens.
- **Snippet de tracking** :

```html
<script defer src="https://litlyx.example.com/cdn/litlyx.js"></script>
<script>
  window.lit = window.lit || [];
  lit.push(['init', 'votre-project-id']);
  lit.push(['event', 'pageview']);
  // événement custom :
  // lit.push(['event', 'signup', { plan: 'pro' }]);
</script>
```

- **API serveur** : endpoint POST `/api/v1/event` pour ingérer des événements depuis vos apps.
- **Multi-sites** : créer un projet par domaine, regroupé par workspace.
- **Thèmes** : clair/sombre selon préférences utilisateur.
- **Langues** : interface traduite en EN/FR/ES (parfois partiel, projet jeune).

## 🔄 Alternatives

**Open source** :
- [[app-umami]] — plus mature, base PostgreSQL
- [[app-plausible]] — privacy-first, Elixir
- [[app-ackee]] — minimaliste Node.js
- [[app-goatcounter]] — Go ultra-léger
- [[app-matomo]] — analytics PHP complet
- [[app-open-web-analytics]] — PHP traditionnel
- [[app-rybbit]] — TypeScript moderne
- [[app-swetrix]] — TypeScript Plausible-like
- [[app-vince]] — Go minimaliste

**Propriétaire (SaaS)** :
- **Google Analytics 4** — leader, RGPD complexe
- **Litlyx Cloud** — offre officielle (à venir / bêta)
- **Plausible Cloud** — payant
- **Fathom Analytics** — simple
- **Simple Analytics** — design
- **Umami Cloud** — service officiel
- **Pirsch** — allemand RGPD
- **PostHog** — product analytics managé

## 🔒 Sécurité

- **LITLYX_SECRET_KEY** et **JWT_SECRET** : générer via `openssl rand -base64 64`, **jamais committé**.
- Changer **LITLYX_API_KEY** régulièrement, ne pas la partager publiquement.
- **HTTPS obligatoire** : Traefik, Caddy ou Nginx avec Let's Encrypt.
- **MongoDB** : ne **jamais** exposer le port 27017 sur Internet, bind sur réseau Docker interne.
- Activer l'**authentification MongoDB** (root user + DB user, c'est le cas dans le compose).
- **Sauvegardes** : `mongodump` quotidien, ou snapshots volumes.
- Configurer **CORS strictement** via `LITLYX_PUBLIC_URL` (pas de wildcard).
- Mettre à jour régulièrement — projet jeune, **suivre les breaking changes**.
- **Rate limiting** sur `/api/v1/event` recommandé en amont (Nginx, Traefik).
- Restreindre l'accès admin via **2FA** et **IP allowlist** si possible.
- **fail2ban** sur l'API admin.

## 📚 Ressources

- [Site officiel](https://litlyx.com/)
- [Documentation](https://docs.litlyx.com/)
- [GitHub Litlyx/litlyx](https://github.com/Litlyx/litlyx)
- [Démo live](https://litlyx.com/dashboard-demo)
- [API reference](https://docs.litlyx.com/api)
- [Roadmap](https://github.com/Litlyx/litlyx/projects)

## 🔗 Pages Liées

- [[cat-web-analytics]]
- [[recettes-docker-compose]]
- [[app-umami]]
- [[app-plausible]]
- [[app-rybbit]]
