A lightweight analytics dashboard for DreamCatcher, built with Node.js, Express, and Supabase.
- 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: Coolify, serving
https://dreamverse.dissonance.cloud. - 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.