FROM node:22-alpine AS builder

WORKDIR /app

COPY package*.json ./

RUN apk add --no-cache --virtual .build-deps \
        python3 \
        make \
        g++ \
        gcc \
        linux-headers \
        git \
        py3-setuptools \
    && npm install --omit=dev \
    && apk del .build-deps

# ============================================================
# Runtime image
# ============================================================
FROM node:22-alpine

RUN apk add --no-cache \
        bash \
        bind-tools \
        curl \
        iptables \
        iproute2 \
        openresolv \
        wireguard-tools

WORKDIR /app

COPY --from=builder /app/node_modules ./node_modules
COPY package*.json ./

COPY ./src ./src

COPY ./wg/start.sh /app/start.sh
RUN chmod +x /app/start.sh

RUN mkdir -p /app/db /app/uploads

EXPOSE 3001

CMD ["/bin/bash", "/app/start.sh"]
