diff --git a/Dockerfile b/Dockerfile index 8cc31a5e3..35f90e20d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,8 @@ COPY prisma/schema.prisma prisma/schema.prisma COPY ./scripts/run.sh ./scripts/run.sh +RUN npm i -g prisma + EXPOSE 7575 ENV PORT 7575 diff --git a/package.json b/package.json index a19ad5f66..a26e251e6 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@mantine/notifications": "^6.0.0", "@mantine/prism": "^6.0.19", "@mantine/tiptap": "^6.0.17", - "@next-auth/prisma-adapter": "^1.0.5", + "@next-auth/prisma-adapter": "^1.0.7", "@nivo/core": "^0.83.0", "@nivo/line": "^0.83.0", "@prisma/client": "^5.0.0", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 1e4f04d3a..ea90fad5c 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -3,7 +3,7 @@ generator client { provider = "prisma-client-js" - binaryTargets = ["native", "linux-musl-openssl-3.0.x"] + binaryTargets = ["native", "linux-musl-openssl-3.0.x", "linux-musl-arm64-openssl-3.0.x"] } datasource db { diff --git a/scripts/run.sh b/scripts/run.sh index a95948c1f..b9bfb854a 100644 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -5,7 +5,7 @@ export NEXTAUTH_URL_INTERNAL="http://$HOSTNAME:7575" echo "Pushing database changes..." npm config set update-notifier false -npx prisma db push --skip-generate +prisma db push --skip-generate echo "Starting production server..." node /app/server.js \ No newline at end of file diff --git a/src/server/auth.ts b/src/server/auth.ts index 44d25ffbb..56d5474b6 100644 --- a/src/server/auth.ts +++ b/src/server/auth.ts @@ -4,6 +4,7 @@ import Consola from 'consola'; import Cookies from 'cookies'; import { type GetServerSidePropsContext, type NextApiRequest, type NextApiResponse } from 'next'; import { type DefaultSession, type NextAuthOptions, getServerSession } from 'next-auth'; +import { Adapter } from 'next-auth/adapters'; import { decode, encode } from 'next-auth/jwt'; import Credentials from 'next-auth/providers/credentials'; import { prisma } from '~/server/db'; @@ -97,6 +98,10 @@ export const constructAuthOptions = ( const sessionToken = generateSessionToken(); const sessionExpiry = fromDate(sessionMaxAgeInSeconds); + if (!adapter?.createSession) { + return false; + } + await adapter.createSession({ sessionToken: sessionToken, userId: user.id, diff --git a/yarn.lock b/yarn.lock index 803e767f7..75ec347f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1155,7 +1155,7 @@ __metadata: languageName: node linkType: hard -"@next-auth/prisma-adapter@npm:^1.0.5": +"@next-auth/prisma-adapter@npm:^1.0.7": version: 1.0.7 resolution: "@next-auth/prisma-adapter@npm:1.0.7" peerDependencies: @@ -6216,7 +6216,7 @@ __metadata: "@mantine/notifications": ^6.0.0 "@mantine/prism": ^6.0.19 "@mantine/tiptap": ^6.0.17 - "@next-auth/prisma-adapter": ^1.0.5 + "@next-auth/prisma-adapter": ^1.0.7 "@next/bundle-analyzer": ^13.0.0 "@next/eslint-plugin-next": ^13.4.5 "@nivo/core": ^0.83.0