FROM node:19-bullseye as development

ENV NODE_ENV development

ENV DEBIAN_FRONTEND=noninteractive
RUN echo "deb http://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt update && apt install -y borgbackup postgresql-client-15 && rm -rf /var/lib/apt/lists/*
ENV DEBIAN_FRONTEND=

RUN npm i -g cli-ux knex nodemon

RUN mkdir /data && chown 1000:1000 /data
VOLUME ["/data"]

USER 1000
WORKDIR /app

ENTRYPOINT [ "/bin/bash", "-c"]

CMD ["npm i && knex migrate:latest && nodemon --signal SIGTERM --exec node --verbose --inspect=0.0.0.0 ./bin/www"]

FROM development as production

ENV TZ Europe/Berlin
ENV NODE_ENV production

ADD pass /app

ENTRYPOINT [ "/usr/local/bin/node" ]

CMD ["./bin/www"]