32 lines
982 B
Bash
Executable File
32 lines
982 B
Bash
Executable File
#!/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 "$@"
|