mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-28 08:32:54 +02:00
chore(analytics): Umami aus Config + Admin-UI (Welle B)
env.development/macmini.example (UMAMI_*-Blöcke), docker-compose PUBLIC_UMAMI_WEBSITE_ID, generate-env.mjs (10 Mappings), Admin Overview/SystemTab (Umami-Service-Einträge), funnel-tracking-Kommentar. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
dfcda85f35
commit
f81214043f
7 changed files with 11 additions and 68 deletions
|
|
@ -132,26 +132,6 @@ STRIPE_POTION_HUGE_PRICE=price_1TEu8VAZjQCYS0ZJ7AO86Jrt
|
|||
# Customer Portal Configuration
|
||||
STRIPE_PORTAL_CONFIG_ID=bpc_1T1PFdAZjQCYS0ZJEhF9ob7q
|
||||
|
||||
# ============================================
|
||||
# UMAMI ANALYTICS
|
||||
# ============================================
|
||||
# All app modules are tracked under the unified Mana website ID.
|
||||
# Module segmentation happens via the `module` event property (see analytics.ts).
|
||||
# Register new sites at https://stats.mana.how
|
||||
UMAMI_WEBSITE_ID_MANA=32777167-e026-4618-933a-3429120b479b
|
||||
|
||||
# Landing Page Website IDs (separate Astro sites, each needs its own ID)
|
||||
UMAMI_WEBSITE_ID_CHAT_LANDING=a264b165-80d2-47ab-91f4-2efc01de0b66
|
||||
UMAMI_WEBSITE_ID_MANA_LANDING=cef3798d-85ae-47df-a44a-e9bee09dbcf9
|
||||
UMAMI_WEBSITE_ID_CARDS_LANDING=2ac83d50-107f-4d4e-ac23-5540946e96e3
|
||||
UMAMI_WEBSITE_ID_CALENDAR_LANDING=84862d98-727e-4e25-8645-639241dd1544
|
||||
UMAMI_WEBSITE_ID_CLOCK_LANDING=0332b471-a022-46af-a726-0f45932bfd58
|
||||
UMAMI_WEBSITE_ID_PICTURE_LANDING=d3ac98e6-0d1a-47a3-a218-2a81fff596bd
|
||||
UMAMI_WEBSITE_ID_TODO_LANDING=538eb4b6-2241-45a3-994d-cdb9bdb0c250
|
||||
UMAMI_WEBSITE_ID_FOOD_LANDING=15610d03-b280-4b92-9c71-0ef89c23202b
|
||||
UMAMI_WEBSITE_ID_PRESI_LANDING=dd485016-0077-47b9-9f59-ab2c6c1730ee
|
||||
UMAMI_WEBSITE_ID_MUKKE_LANDING=b2c9ab34-3c53-4463-9dde-1ecf098886a5
|
||||
|
||||
# ============================================
|
||||
# CHAT PROJECT
|
||||
# ============================================
|
||||
|
|
|
|||
|
|
@ -88,11 +88,6 @@ OPENAI_API_KEY=
|
|||
# ============================================
|
||||
GRAFANA_PASSWORD=your-grafana-admin-password
|
||||
|
||||
# ============================================
|
||||
# Web Analytics (Umami)
|
||||
# ============================================
|
||||
UMAMI_APP_SECRET=your-umami-secret-here
|
||||
|
||||
# =============================================================================
|
||||
# REQUIRED — production cannot boot without these
|
||||
# =============================================================================
|
||||
|
|
|
|||
|
|
@ -21,12 +21,6 @@
|
|||
description: 'System & Backend Metrics',
|
||||
icon: 'grafana' as const,
|
||||
},
|
||||
{
|
||||
name: 'Umami Analytics',
|
||||
url: 'https://stats.mana.how',
|
||||
description: 'Web Analytics',
|
||||
icon: 'analytics' as const,
|
||||
},
|
||||
{
|
||||
name: 'Docker Dashboard',
|
||||
url: 'https://grafana.mana.how/d/backends-docker',
|
||||
|
|
|
|||
|
|
@ -36,12 +36,6 @@
|
|||
description: 'Raw metrics & queries',
|
||||
icon: 'api' as const,
|
||||
},
|
||||
{
|
||||
name: 'Umami Analytics',
|
||||
url: 'https://stats.mana.how',
|
||||
description: 'Web analytics dashboard',
|
||||
icon: 'analytics' as const,
|
||||
},
|
||||
];
|
||||
|
||||
const statusColors = {
|
||||
|
|
@ -71,7 +65,6 @@
|
|||
{ name: 'Redis', status: 'healthy', url: '-' },
|
||||
{ name: 'MinIO', status: 'healthy', url: 'https://s3.mana.how' },
|
||||
{ name: 'Grafana', status: 'healthy', url: 'https://grafana.mana.how' },
|
||||
{ name: 'Umami', status: 'healthy', url: 'https://stats.mana.how' },
|
||||
];
|
||||
loading = false;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
* Funnel Tracking — fires one-time activation & retention events.
|
||||
*
|
||||
* Each event uses a localStorage flag so it fires at most once per user/device.
|
||||
* These events power Umami funnels:
|
||||
* Analytics-Versand ist entfernt (2026-05-26) — die ManaEvents-Aufrufe
|
||||
* sind No-ops; Flags/Stufen bleiben für evtl. künftige lokale Auswertung:
|
||||
* signup → onboarding_completed → first_content_created → second_module_used → user_return_visit
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -141,7 +141,6 @@ services:
|
|||
# is provisioned (see docs/plans/ai-mission-key-grant.md).
|
||||
PUBLIC_AI_MISSION_GRANTS: ${PUBLIC_AI_MISSION_GRANTS:-false}
|
||||
# Analytics & Error Tracking
|
||||
PUBLIC_UMAMI_WEBSITE_ID: 32777167-e026-4618-933a-3429120b479b
|
||||
PUBLIC_GLITCHTIP_DSN: ${GLITCHTIP_DSN_MANA_WEB:-}
|
||||
# Speech-to-Text proxy: SvelteKit /api/v1/voice/transcribe forwards
|
||||
# to mana-stt via Cloudflare Tunnel. The browser never sees the API
|
||||
|
|
|
|||
|
|
@ -240,7 +240,6 @@ const APP_CONFIGS = [
|
|||
// routet /api/* dorthin).
|
||||
PUBLIC_MANA_AUTH_URL: (env) => env.MANA_AUTH_URL,
|
||||
PUBLIC_AUTH_WEB_URL: (env) => env.MANA_AUTH_WEB_URL || 'http://localhost:3002',
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_MANA || '',
|
||||
PUBLIC_GLITCHTIP_DSN: (env) => env.PUBLIC_GLITCHTIP_DSN || '',
|
||||
// Speech-to-Text proxy (server-side only, never exposed to the client)
|
||||
MANA_STT_URL: (env) => env.STT_URL || 'http://localhost:3020',
|
||||
|
|
@ -696,57 +695,43 @@ const APP_CONFIGS = [
|
|||
// Chat Landing
|
||||
{
|
||||
path: 'apps/chat/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_CHAT_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Mana Landing
|
||||
{
|
||||
path: 'apps/mana/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_MANA_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Cards Landing
|
||||
{
|
||||
path: 'apps/cards/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_CARDS_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Calendar Landing
|
||||
{
|
||||
path: 'apps/calendar/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_CALENDAR_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Clock Landing
|
||||
{
|
||||
path: 'apps/clock/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_CLOCK_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Picture Landing
|
||||
{
|
||||
path: 'apps/picture/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_PICTURE_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Todo Landing
|
||||
{
|
||||
path: 'apps/todo/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_TODO_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Food Landing
|
||||
|
|
@ -754,17 +739,13 @@ const APP_CONFIGS = [
|
|||
// Presi Landing
|
||||
{
|
||||
path: 'apps/presi/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_PRESI_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
|
||||
// Music Landing
|
||||
{
|
||||
path: 'apps/mukke/apps/landing/.env',
|
||||
vars: {
|
||||
PUBLIC_UMAMI_WEBSITE_ID: (env) => env.UMAMI_WEBSITE_ID_MUSIC_LANDING || '',
|
||||
},
|
||||
vars: {},
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue