fix: Docker build and runtime fixes

- 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
This commit is contained in:
2026-04-15 14:16:27 -04:00
parent a1572d327f
commit 2388873e7a
17 changed files with 3414 additions and 150 deletions
+4 -1
View File
@@ -36,9 +36,12 @@ RUN npm install --legacy-peer-deps --omit=dev
# Copy built files from builder
COPY --from=builder /app/backend/dist ./backend/dist
COPY --from=builder /app/backend/node_modules/.prisma ./backend/node_modules/.prisma
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/backend/prisma ./backend/prisma
# Ensure correct Prisma engine is available
RUN ls -la /app/node_modules/.prisma/client/ | grep engine
WORKDIR /app/backend
# Expose port
+2 -1
View File
@@ -1,5 +1,6 @@
generator client {
provider = "prisma-client-js"
provider = "prisma-client-js"
binaryTargets = ["linux-musl-openssl-3.0.x"]
}
datasource db {
+2 -2
View File
@@ -26,11 +26,11 @@ function verifyWebhookSignature(payload: string, signature: string): boolean {
// Tautulli webhook endpoint
router.post('/tautulli',
asyncHandler(async (req, res) => {
const signature = req.headers['x-tautulli-signature'] as string;
const webhookSignature = req.headers['x-tautulli-signature'] as string;
const payload = JSON.stringify(req.body);
// Verify signature if configured
if (WEBHOOK_SECRET && signature && !verifyWebhookSignature(payload, signature)) {
if (WEBHOOK_SECRET && webhookSignature && !verifyWebhookSignature(payload, webhookSignature)) {
return res.status(401).json({ error: 'Invalid signature' });
}