Loading Dockerfile +17 −25 Original line number Diff line number Diff line FROM node:23-alpine AS base FROM node:24-alpine AS base RUN apk add --no-cache openssl FROM base AS dev_dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ COPY --chown=node:node backend/package*.json ./backend/ COPY --chown=node:node frontend/package*.json ./frontend/ COPY --chown=node:node .yarn ./.yarn COPY --chown=node:node package.json yarn.lock .yarnrc.yml ./ COPY --chown=node:node backend/package.json ./backend/ COPY --chown=node:node frontend/package.json ./frontend/ RUN corepack enable && corepack prepare USER node RUN npm install --include=dev FROM base AS dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ COPY --chown=node:node backend/package*.json ./backend/ COPY --chown=node:node frontend/package*.json ./frontend/ FROM base AS dev_dep RUN yarn workspaces focus --all USER node RUN npm install --omit=dev FROM base AS dep RUN yarn workspaces focus --production --all # # === BUILDER === # FROM base AS build RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app FROM dev_dep AS build COPY --from=dev_dep /home/node/app/ ./ Loading @@ -39,21 +31,20 @@ COPY --chown=node:node . . # --- build frontend --- RUN npm -w frontend run build RUN yarn workspace @fediverse-auth/frontend run build # --- build backend --- RUN npx -w backend prisma generate RUN npm -w backend run build RUN yarn workspace @fediverse-auth/backend prisma generate RUN yarn workspace @fediverse-auth/backend run build # # === RUNNER === # FROM base AS run WORKDIR /home/node/app COPY --from=dep /home/node/app/ ./ COPY package*.json docker-start.sh ./ COPY docker-start.sh ./ # --- prepare frontend --- Loading @@ -69,7 +60,8 @@ COPY --from=build /home/node/app/backend/dist ./backend/dist # --- finalize --- RUN npx -w backend prisma generate COPY --from=build /home/node/app/node_modules/.prisma ./node_modules/.prisma COPY --from=build /home/node/app/node_modules/@prisma ./node_modules/@prisma # set runtime env variables Loading backend/package.json +4 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ "cookie-parser": "^1.4.6", "cors": "^2.8.5", "cron": "^4.3.0", "express": "^4.19.2", "express": "^4.22.1", "express-session": "^1.18.0", "ioredis": "^5.6.1", "oidc-provider": "^8.8.1", Loading @@ -29,8 +29,8 @@ "@hongminhee/localtunnel": "^0.3.0", "@types/cookie-parser": "^1.4.7", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/express-session": "^1.18.0", "@types/express": "^4.17.25", "@types/express-session": "^1.18.2", "@types/node": "^20.12.10", "@types/oidc-provider": "^8.4.4", "dotenv": "^16.4.5", Loading @@ -43,6 +43,7 @@ "dev": "tsx watch -r dotenv/config src/index.ts", "dev:client": "tsx -r dotenv/config src/tools/create-dev-client.ts", "build": "tsc", "test:types": "tsc --noEmit", "start": "node dist/index.js", "test": "vitest", "ci:test": "vitest --reporter=junit --outputFile=./vitest.xml" Loading backend/src/lib/express.ts +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ app.get("/.well-known/openid-configuration", oidc.callback()); app.use(bodyParser.json()); app.use( // @ts-ignore this type is correct *shrug* session({ secret: process.env.SESSION_SECRET!, resave: false, Loading backend/tsconfig.json +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ "moduleResolution": "Node16", "target": "ES2022", "lib": ["ES2023"], "module": "node16", "module": "nodenext", "resolveJsonModule": true, "isolatedModules": true }, Loading yarn.lock +6 −6 Original line number Diff line number Diff line Loading @@ -594,8 +594,8 @@ __metadata: "@tsconfig/recommended": "npm:^1.0.6" "@types/cookie-parser": "npm:^1.4.7" "@types/cors": "npm:^2.8.17" "@types/express": "npm:^4.17.21" "@types/express-session": "npm:^1.18.0" "@types/express": "npm:^4.17.25" "@types/express-session": "npm:^1.18.2" "@types/node": "npm:^20.12.10" "@types/oidc-provider": "npm:^8.4.4" body-parser: "npm:^1.20.2" Loading @@ -603,7 +603,7 @@ __metadata: cors: "npm:^2.8.5" cron: "npm:^4.3.0" dotenv: "npm:^16.4.5" express: "npm:^4.19.2" express: "npm:^4.22.1" express-session: "npm:^1.18.0" ioredis: "npm:^5.6.1" oidc-provider: "npm:^8.8.1" Loading Loading @@ -1711,7 +1711,7 @@ __metadata: languageName: node linkType: hard "@types/express-session@npm:^1.18.0": "@types/express-session@npm:^1.18.2": version: 1.18.2 resolution: "@types/express-session@npm:1.18.2" dependencies: Loading @@ -1731,7 +1731,7 @@ __metadata: languageName: node linkType: hard "@types/express@npm:^4.17.21": "@types/express@npm:^4.17.25": version: 4.17.25 resolution: "@types/express@npm:4.17.25" dependencies: Loading Loading @@ -3393,7 +3393,7 @@ __metadata: languageName: node linkType: hard "express@npm:^4.19.2": "express@npm:^4.22.1": version: 4.22.1 resolution: "express@npm:4.22.1" dependencies: Loading Loading
Dockerfile +17 −25 Original line number Diff line number Diff line FROM node:23-alpine AS base FROM node:24-alpine AS base RUN apk add --no-cache openssl FROM base AS dev_dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ COPY --chown=node:node backend/package*.json ./backend/ COPY --chown=node:node frontend/package*.json ./frontend/ COPY --chown=node:node .yarn ./.yarn COPY --chown=node:node package.json yarn.lock .yarnrc.yml ./ COPY --chown=node:node backend/package.json ./backend/ COPY --chown=node:node frontend/package.json ./frontend/ RUN corepack enable && corepack prepare USER node RUN npm install --include=dev FROM base AS dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ COPY --chown=node:node backend/package*.json ./backend/ COPY --chown=node:node frontend/package*.json ./frontend/ FROM base AS dev_dep RUN yarn workspaces focus --all USER node RUN npm install --omit=dev FROM base AS dep RUN yarn workspaces focus --production --all # # === BUILDER === # FROM base AS build RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app FROM dev_dep AS build COPY --from=dev_dep /home/node/app/ ./ Loading @@ -39,21 +31,20 @@ COPY --chown=node:node . . # --- build frontend --- RUN npm -w frontend run build RUN yarn workspace @fediverse-auth/frontend run build # --- build backend --- RUN npx -w backend prisma generate RUN npm -w backend run build RUN yarn workspace @fediverse-auth/backend prisma generate RUN yarn workspace @fediverse-auth/backend run build # # === RUNNER === # FROM base AS run WORKDIR /home/node/app COPY --from=dep /home/node/app/ ./ COPY package*.json docker-start.sh ./ COPY docker-start.sh ./ # --- prepare frontend --- Loading @@ -69,7 +60,8 @@ COPY --from=build /home/node/app/backend/dist ./backend/dist # --- finalize --- RUN npx -w backend prisma generate COPY --from=build /home/node/app/node_modules/.prisma ./node_modules/.prisma COPY --from=build /home/node/app/node_modules/@prisma ./node_modules/@prisma # set runtime env variables Loading
backend/package.json +4 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ "cookie-parser": "^1.4.6", "cors": "^2.8.5", "cron": "^4.3.0", "express": "^4.19.2", "express": "^4.22.1", "express-session": "^1.18.0", "ioredis": "^5.6.1", "oidc-provider": "^8.8.1", Loading @@ -29,8 +29,8 @@ "@hongminhee/localtunnel": "^0.3.0", "@types/cookie-parser": "^1.4.7", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/express-session": "^1.18.0", "@types/express": "^4.17.25", "@types/express-session": "^1.18.2", "@types/node": "^20.12.10", "@types/oidc-provider": "^8.4.4", "dotenv": "^16.4.5", Loading @@ -43,6 +43,7 @@ "dev": "tsx watch -r dotenv/config src/index.ts", "dev:client": "tsx -r dotenv/config src/tools/create-dev-client.ts", "build": "tsc", "test:types": "tsc --noEmit", "start": "node dist/index.js", "test": "vitest", "ci:test": "vitest --reporter=junit --outputFile=./vitest.xml" Loading
backend/src/lib/express.ts +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ app.get("/.well-known/openid-configuration", oidc.callback()); app.use(bodyParser.json()); app.use( // @ts-ignore this type is correct *shrug* session({ secret: process.env.SESSION_SECRET!, resave: false, Loading
backend/tsconfig.json +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ "moduleResolution": "Node16", "target": "ES2022", "lib": ["ES2023"], "module": "node16", "module": "nodenext", "resolveJsonModule": true, "isolatedModules": true }, Loading
yarn.lock +6 −6 Original line number Diff line number Diff line Loading @@ -594,8 +594,8 @@ __metadata: "@tsconfig/recommended": "npm:^1.0.6" "@types/cookie-parser": "npm:^1.4.7" "@types/cors": "npm:^2.8.17" "@types/express": "npm:^4.17.21" "@types/express-session": "npm:^1.18.0" "@types/express": "npm:^4.17.25" "@types/express-session": "npm:^1.18.2" "@types/node": "npm:^20.12.10" "@types/oidc-provider": "npm:^8.4.4" body-parser: "npm:^1.20.2" Loading @@ -603,7 +603,7 @@ __metadata: cors: "npm:^2.8.5" cron: "npm:^4.3.0" dotenv: "npm:^16.4.5" express: "npm:^4.19.2" express: "npm:^4.22.1" express-session: "npm:^1.18.0" ioredis: "npm:^5.6.1" oidc-provider: "npm:^8.8.1" Loading Loading @@ -1711,7 +1711,7 @@ __metadata: languageName: node linkType: hard "@types/express-session@npm:^1.18.0": "@types/express-session@npm:^1.18.2": version: 1.18.2 resolution: "@types/express-session@npm:1.18.2" dependencies: Loading @@ -1731,7 +1731,7 @@ __metadata: languageName: node linkType: hard "@types/express@npm:^4.17.21": "@types/express@npm:^4.17.25": version: 4.17.25 resolution: "@types/express@npm:4.17.25" dependencies: Loading Loading @@ -3393,7 +3393,7 @@ __metadata: languageName: node linkType: hard "express@npm:^4.19.2": "express@npm:^4.22.1": version: 4.22.1 resolution: "express@npm:4.22.1" dependencies: Loading