Caddy routes /api/* and /webhooks/* to 172.20.1.238:3002 but the
docker-compose had PORT=3001 and bound port 3001. Changed:
- PORT env var: 3001 -> 3002
- Port binding: 0.0.0.0:3002:3002
- Health check: localhost:3002/health
- Next.js rewrites: localhost:3001 -> localhost:3002
- Frontend port: 127.0.0.1 -> 0.0.0.0 (Caddy remote access)
The previous rewrite used NEXT_PUBLIC_API_URL (https://coop.hobokenchicken.com)
as the destination. This created a loop through Caddy: /api/* → Next.js →
rewrite to public URL → Caddy → Next.js → 502.
Now routes /api/* and /webhooks/* directly to the Express backend on
localhost:3001, bypassing Caddy entirely for API calls.
- 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
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.