FROM node:22-bookworm-slim AS build
WORKDIR /app
COPY package.json package-lock.json ./
COPY bridge/package.json bridge/package.json
COPY web/package.json web/package.json
RUN npm ci
COPY bridge/pcm-wire.mjs bridge/pcm-wire.mjs
COPY bridge/opus-wire.mjs bridge/opus-wire.mjs
COPY web web
RUN npm run build

FROM node:22-bookworm-slim
WORKDIR /app
COPY cloud/package.json cloud/package-lock.json cloud/
RUN cd cloud && npm ci --omit=dev --workspaces=false
COPY cloud/gateway.mjs cloud/
COPY bridge/relay-wire.mjs bridge/
COPY --from=build /app/web/out web/out
RUN mkdir -p /data/sessions && chown -R node:node /data /app
USER node
ENV HOST=0.0.0.0 PORT=8080 ATSTREAM_DATA_DIR=/data/sessions TRUST_PROXY=1
EXPOSE 8080
CMD ["node", "cloud/gateway.mjs"]
