FROM node:alpine AS build
WORKDIR /build/alpine

RUN apk update --no-cache  && apk upgrade --no-cache
RUN apk add --no-cache cmake ninja clang alpine-sdk lua-aports sudo openssh-keygen fakeroot openssh-client yaml-dev brotli-dev json-c-dev util-linux-dev

RUN git clone https://tuxist.de/git/jan.koester/libcmdplus.git
RUN mkdir libcmdplus/build
RUN cd libcmdplus/build && cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/uuidplus.git
RUN mkdir uuidplus/build
RUN cd uuidplus/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libnetplus.git
RUN mkdir libnetplus/build
RUN cd libnetplus/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhtmlpp.git
RUN mkdir libhtmlpp/build
RUN cd libhtmlpp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libhttppp.git
RUN mkdir libhttppp/build
RUN cd libhttppp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/libconfplus.git
RUN mkdir libconfplus/build
RUN cd libconfplus/build && cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fPIC" && ninja install

RUN git clone https://tuxist.de/git/tuxist/libparitypp.git && \
    mkdir libparitypp/build && \
    cd libparitypp/build && cmake ../ -G Ninja && ninja install

RUN git clone https://tuxist.de/git/jan.koester/authdb.git
RUN mkdir authdb/build
RUN cd authdb/build && cmake ../ -G Ninja -DDATAPATH:PATH=/usr/local/share/authdb && ninja install

USER root
FROM node:alpine
RUN addgroup authdb
RUN adduser authdb -h /var/lib/authdb -S -G authdb
RUN apk update && apk upgrade
RUN apk add --no-cache yaml brotli openssl json-c libuuid libstdc++
RUN mkdir /etc/authdb
RUN mkdir /usr/local/share/authdb

COPY data/*.html /usr/local/share/authdb
COPY data/*.js /usr/local/share/authdb
COPY data/*.css /usr/local/share/authdb

COPY --from=build /usr/local/bin/authdb /usr/local/bin
COPY --from=build /usr/local/lib /usr/local/lib

COPY data/docker-config.yaml /etc/authdb/config.yaml

RUN chown -R authdb:authdb /var/lib/authdb

CMD ["authdb","-f","true","-c","yaml://etc/authdb/config.yaml"]

