A lightweight analytics dashboard for DreamCatcher, built with Node.js, Express, and Supabase.
-
Marketing & growth: website traffic, referrers, campaign tags, store clicks, and an AppsFlyer mobile-attribution pilot. Product and billing outcomes remain available as a traffic-quality check. See definitions and setup.
-
Secure Access: Simple password authentication.
-
Real-time Stats: Connects directly to Supabase to fetch latest data.
-
Visualizations: Charts for emotions, tags, recording methods, and activity trends.
-
Dockerized: Ready for easy deployment on Coolify.
-
Install Dependencies
npm install
-
Configure Environment Create a
.envfile (copy from.env.example) and fill in your Supabase credentials and choose a dashboard password.SUPABASE_URL=... SUPABASE_SERVICE_KEY=... DASHBOARD_PASSWORD=... -
Run Locally
npm run dev
-
Deploy with Docker (local / manual)
docker build -t dreamcatcher-dashboard . docker run -p 3000:3000 --env-file .env dreamcatcher-dashboard
- Host: Project Win Coolify, serving
https://dreamverse.projectwin.cloudafter the July 5, 2026 infrastructure cutover. The old Dissonance URL is retired. - Source: Coolify builds the Docker image from the
mainbranch of this GitHub repo (github.com/Deducer/dreamcatcher-dashboard). - Trigger: pushing to
mainauto-deploys via a Coolify webhook. A commit that is only committed locally is not live — it must be pushed. A manual redeploy can also be triggered from the Coolify dashboard. - Env vars (
SUPABASE_URL,SUPABASE_SERVICE_KEY,DASHBOARD_PASSWORD) are configured in Coolify, not committed. - Metrics latency: internal-account exclusion reads the Supabase
auth.usersemail map, cached in-process for 5 minutes. After a deploy, metric/exclusion changes can take up to that long to fully reflect.