# server/Dockerfile — backend (Express + ws + better-sqlite3)
FROM node:18-alpine AS build
WORKDIR /app

# workspaces root needed: shared/ is a dependency (@ttrpg/shared)
COPY package*.json ./
COPY shared/package.json ./shared/
COPY server/package.json ./server/
RUN npm install --workspaces --include-workspace-root

COPY shared/ ./shared/
COPY server/ ./server/

# better-sqlite3 builds native; rebuild for alpine musl
RUN cd server && npm rebuild better-sqlite3

ENV NODE_ENV=production
ENV PORT=4001
ENV DB_PATH=/data/tracker.sqlite

EXPOSE 4001
WORKDIR /app/server
CMD ["node", "index.js"]
