Rayon Sites et blogs

Umami

Les statistiques de vos sites, sans cookies.

Ajouter à mon serveurGénérer le docker-composeDocumentation officielle

À quoi ça sert ?

Umami mesure les visites de vos sites (pages vues, provenance, appareils) avec un tableau de bord clair. Il respecte la vie privée et ne nécessite pas de bannière cookies.

Pour qui ?

Ceux qui ont un site et veulent savoir qui le visite, sans Google Analytics.

Après l'installation

  1. Connectez-vous avec admin / umami, puis changez immédiatement le mot de passe.
  2. Ajoutez votre site et collez le petit script de suivi dans ses pages.

Le docker-compose

Exemple derrière Traefik, avec une explication sur chaque ligne. Pour l'adapter à votre cas (Nginx Proxy Manager, port local…), utilisez le générateur.

# docker-compose.yml : Umami
# Ce fichier décrit les « conteneurs » à lancer : chaque conteneur est une petite
# boîte isolée qui contient un programme. Lancez-le avec : docker compose up -d
services:
  # Conteneur principal : l'application Umami
  umami:
    # Le programme à télécharger (l'« image »), avec sa version
    image: ghcr.io/umami-software/umami:latest
    container_name: umami
    # Redémarre tout seul après une panne ou un redémarrage du serveur
    restart: unless-stopped
    init: true
    # Empêche un programme piraté de devenir administrateur
    security_opt:
      - no-new-privileges:true
    # Démarre ces conteneurs avant celui-ci
    depends_on:
      - db
    # Réglages de l'application. Les valeurs ${...} viennent du fichier .env
    environment:
      DATABASE_URL: "postgresql://umami:${DB_PASSWORD}@db:5432/umami"
      APP_SECRET: "${APP_SECRET}"
      TWO_FACTOR_ENCRYPTION_KEY: "${TWO_FACTOR_ENCRYPTION_KEY}"
      TZ: Europe/Paris
    # Réseau partagé avec le reverse proxy pour qu'il puisse joindre l'application
    networks:
      - traefik
      - default
    # Indique à Traefik de publier l'application sur https://stats.mondomaine.fr avec un certificat HTTPS
    labels:
      - traefik.enable=true
      - traefik.http.routers.umami.rule=Host(`stats.mondomaine.fr`)
      - traefik.http.routers.umami.entrypoints=websecure
      - traefik.http.routers.umami.tls.certresolver=letsencrypt
      - traefik.http.services.umami.loadbalancer.server.port=3000
      - traefik.docker.network=traefik

  # Conteneur annexe « db » (utilisé par l'application, pas accessible de l'extérieur)
  db:
    # Le programme à télécharger (l'« image »), avec sa version
    image: postgres:15-alpine
    container_name: umami-db
    # Redémarre tout seul après une panne ou un redémarrage du serveur
    restart: unless-stopped
    # Réglages de l'application. Les valeurs ${...} viennent du fichier .env
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: "${DB_PASSWORD}"
    # Dossiers du serveur partagés avec le conteneur (dossier_serveur:dossier_conteneur).
    # Vos données sont stockées ici : ce sont ces dossiers qu'il faut sauvegarder.
    volumes:
      - ./db:/var/lib/postgresql/data
# Le réseau du reverse proxy existe déjà : on s'y raccroche

networks:
  traefik:
    external: true