Eliminates the need to generate and commit migration files locally
before first deploy. Schema is synced directly from schema.prisma
on container start.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Prisma's schema engine requires libssl on Alpine.
Without it, migrate deploy fails with a JSON parse error
wrapping an ELF load failure.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Stack uses Tailscale + Nginx Proxy Manager, not Traefik.
Client exposes PORT (default 3080) for NPM to proxy to.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Internal ticketing app with CTI routing, severity levels, and n8n integration.
Stack: Express + TypeScript + Prisma + PostgreSQL / React + Vite + Tailwind
- JWT auth for users, API key auth for service accounts (Goddard/n8n)
- CTI hierarchy (Category > Type > Item) for ticket routing
- Severity 1-5, auto-close resolved tickets after 14 days
- Gitea Actions CI/CD building separate server/client images
- Production docker-compose.yml with Traefik integration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>