#!/bin/sh set -e # Block NODE_TLS_REJECT_UNAUTHORIZED=0 in production if [ "$NODE_ENV" = "production" ] && [ "$NODE_TLS_REJECT_UNAUTHORIZED" = "0" ]; then echo "FATAL: NODE_TLS_REJECT_UNAUTHORIZED=0 is not allowed in production" exit 1 fi echo "Running Prisma migrations..." npx prisma migrate deploy 2>&1 || { echo "Migration failed, falling back to schema push..." npx prisma db push --skip-generate 2>&1 } echo "Database sync complete." echo "Running database seed..." npx prisma db seed 2>&1 echo "Seed complete." # If running production mode (node dist/server.js) and dist is stale, recompile if [ -f "src/server.ts" ] && echo "$@" | grep -q "npm.*start\|node.*dist"; then if [ ! -f "dist/server.js" ] || [ "src/server.ts" -nt "dist/server.js" ]; then echo "Compiling TypeScript (dist/ is missing or stale)..." npx tsc 2>&1 || echo "WARNING: TypeScript compilation had errors" echo "Compilation complete." fi fi echo "Starting server..." exec "$@"