8408fd6466
ci/woodpecker/push/woodpecker Pipeline was successful
SEO : - composable useSeoPage() : og:*, Twitter Cards, canonical sur toutes les pages (15 pages) - app.vue : JSON-LD Organization + Book, og:image global og-default.png - og-default.png 1200×630 : logo § calligraphique + texte (Pillow) - nuxt.config.ts : @nuxtjs/sitemap avec 26 URLs statiques Analytics Umami : - useTracking() : helpers typés audio/pdf/player/scroll/cta - useScrollTracking() : scroll depth 25/50/75/100% + liens externes auto - useAudioPlayer : trackAudioPlay/Progress/Complete - BookPdfReader : trackPdfOpen/Close avec durée - BookPlayer : trackPlayerOpen/Chapter/Mode - docker-compose : variables NUXT_PUBLIC_UMAMI_* passées au container Images : - Couv-Economie-du-don.jpg ajoutée dans public/images/ - bookplayer.config.yml + home.yml : références mises à jour Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
57 lines
1.8 KiB
YAML
57 lines
1.8 KiB
YAML
## Umami analytics — déployer avec le compose principal
|
|
## Usage : docker compose -f docker-compose.yml -f docker-compose.umami.yml up -d
|
|
##
|
|
## Variables à définir dans .env :
|
|
## UMAMI_DB_PASSWORD — mot de passe PostgreSQL Umami (générer avec openssl rand -hex 32)
|
|
## UMAMI_APP_SECRET — secret applicatif (générer avec openssl rand -hex 32)
|
|
## UMAMI_DOMAIN — ex: stats.librodrome.org
|
|
## NUXT_PUBLIC_UMAMI_URL — ex: https://stats.librodrome.org
|
|
## NUXT_PUBLIC_UMAMI_WEBSITE_ID — ID du site dans Umami (Settings → Websites)
|
|
## NUXT_UMAMI_API_KEY — clé API Umami (Settings → API Keys)
|
|
|
|
name: librodrome
|
|
|
|
services:
|
|
umami:
|
|
image: ghcr.io/umami-software/umami:postgresql-latest
|
|
environment:
|
|
DATABASE_URL: postgresql://umami:${UMAMI_DB_PASSWORD}@umami-db:5432/umami
|
|
DATABASE_TYPE: postgresql
|
|
APP_SECRET: ${UMAMI_APP_SECRET}
|
|
depends_on:
|
|
umami-db:
|
|
condition: service_healthy
|
|
restart: always
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.umami.rule=Host(`${UMAMI_DOMAIN:-stats.librodrome.org}`)"
|
|
- "traefik.http.routers.umami.entrypoints=websecure"
|
|
- "traefik.http.routers.umami.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.umami.loadbalancer.server.port=3000"
|
|
networks:
|
|
- default
|
|
- traefik
|
|
|
|
umami-db:
|
|
image: postgres:15-alpine
|
|
environment:
|
|
POSTGRES_DB: umami
|
|
POSTGRES_USER: umami
|
|
POSTGRES_PASSWORD: ${UMAMI_DB_PASSWORD}
|
|
volumes:
|
|
- umami-db-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U umami"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
restart: always
|
|
|
|
volumes:
|
|
umami-db-data:
|
|
|
|
networks:
|
|
default:
|
|
traefik:
|
|
external: true
|