ARG VERSION=dev
ARG BUILD_DATE=unknown

FROM node:20-alpine AS builder

WORKDIR /app

# Install frontend dependencies and build
COPY frontend/package*.json ./frontend/
RUN cd frontend && npm install

COPY frontend/ ./frontend/
RUN cd frontend && npm run build

# Backend
FROM node:20-alpine

ARG VERSION=dev
ARG BUILD_DATE=unknown

LABEL org.opencontainers.image.title="jama" \
      org.opencontainers.image.description="Self-hosted team chat PWA" \
      org.opencontainers.image.version="${VERSION}" \
      org.opencontainers.image.created="${BUILD_DATE}" \
      org.opencontainers.image.source="https://github.com/yourorg/jama"

ENV JAMA_VERSION=${VERSION}

RUN apk add --no-cache sqlite python3 make g++ openssl-dev

WORKDIR /app

COPY backend/package*.json ./
RUN npm install --omit=dev

# Remove build tools after compile to keep image lean
RUN apk del python3 make g++

COPY backend/ ./
COPY --from=builder /app/frontend/dist ./public

# Create data and uploads directories
RUN mkdir -p /app/data /app/uploads/avatars /app/uploads/logos /app/uploads/images


EXPOSE 3000

CMD ["node", "src/index.js"]
