1. Auth callback now deletes old sessions before creating new one,
and adds Date.now() nonce to JWT to prevent unique constraint
violations on duplicate login attempts.
2. Solana mint authority now accepts both JSON array and base58
formats for SOLANA_MINT_AUTHORITY_KEYPAIR env var.
- New color palette: barn red primary, cream backgrounds, hay gold
- Added Abril Fatface display font for headlines
- Wood grain texture backgrounds via CSS gradients
- Barnyard personality in copy: 'Join the Flock', 'Enter the Coop'
- Replaced hardcoded slate colors with theme variables
- Updated landing, login, dashboard, onboarding, leaderboard
Caddy routes /api/* to port 3002 but docker-compose exposed
backend on 3001. Changed backend port, healthcheck, and
frontend fallback to 3002 for consistency.
Plex auth uses PIN-based flow, not standard OAuth2 authorization_code.
- backend/auth: POST /api/v2/pins to create PIN, GET /api/v2/pins/{id} to get authToken
- frontend/login: store pinId in sessionStorage before redirect
- frontend/callback: send pinId to backend instead of query code
- backend/index: fix dotenv path resolution for tsx (__dirname returns '.')
- Change port 3000 from 127.0.0.1 to 0.0.0.0 (frontend)
- Change port 3001 from 127.0.0.1 to 0.0.0.0 (backend)
- Allows access from 172.20.1.0/24 network
- Nginx now listens on HTTP only (port 80)
- Remove SSL cert volume mounts from docker-compose
- Remove SSL troubleshooting sections
- Update docs to indicate SSL handled by Caddy/reverse proxy
- Simplify nginx.conf to remove HTTPS server block
- Add Docker build troubleshooting section
- Update Quick Start with SSL cert and public dir steps
- Add prisma db push instruction for database setup
- Document common build errors and solutions
- Fix duplicate 'signature' variable in webhooks.ts
- Add Prisma binary target for Alpine Linux
- Fix tsconfig path alias (@/* -> ./src/*)
- Add missing next-themes dependency
- Add build args for NEXT_PUBLIC_* env vars
- Fix SSR issues with zustand and providers
- Add providers-wrapper with dynamic ssr:false import
- Add SSL certs and public dir for nginx
- Update Dockerfiles for proper Prisma engine handling
- Install python3, make, g++ in builder for native module compilation
- Copy node_modules from builder stage to avoid rebuild in production
- Fixes usb package compilation error in node:20-alpine
- Change build context from ./frontend|backend to root (.)
- Update Dockerfiles to copy from correct paths
- Use npm install instead of npm ci (workspaces share root lockfile)
- Remove obsolete version attribute from docker-compose.yml
Fixes npm ci errors when package-lock.json is at workspace root.
Fix security vulnerability in Next.js 14.0.4.
See: https://nextjs.org/blog/security-update-2025-12-11
Other npm deprecation warnings are from transitive dependencies
(@solana/wallet-adapter packages) and don't affect functionality.
Add environment variable templates for:
- Root .env.example (all services)
- backend/.env.example (API configuration)
- frontend/.env.local.example (client config)
Copy to .env and fill in your secrets before running.
Add complete token system with Plex/Tautulli/Overseer integration:
- Anchor program for SPL token mint/burn/transfer
- Express backend with OAuth, webhooks, Solana integration
- Next.js frontend with dashboard, admin panel, wallet management
- Docker deployment for 172.20.1.0/24 infrastructure
- Production configs with SSL, Nginx, health monitoring
Tautulli webhooks auto-mint on watch events.
Overseer integration burns for content requests.