#
# nQuakeSV - The nQuake Server
#
# docker run --name nquakesv \
#  -p 28501:28501/udp -p 28501:28501 -p 28000:28000 -p 30000:30000/udp \
#  -v /local/path/to/pak1.pak:/nquakesv/id1/pak1.pak \
#  -e HOSTNAME=nQuakeSV -e HOSTDNS=qw.example.com \
#  -e ADMINNAME="John Doe" -e ADMINEMAIL="john.doe@example.com" \
#  -e RCON=changeme -e QTVPW=changeme -e FFA=1 \
#   registry.faked.org/nquakesv
#

FROM ubuntu:latest
MAINTAINER Jan Grewe <jan@faked.org>

# msdsv
EXPOSE 28501/udp
# qtv
EXPOSE 28501/tcp
# qtv web
EXPOSE 28000/tcp
# qwfwd
EXPOSE 30000/udp

ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -qq update && \
    apt-get install -qqy --no-install-recommends \
      ca-certificates \
      curl \
      supervisor \
      unzip \
      wget \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

ARG HOSTNAME
ENV HOSTNAME ${HOSTNAME:-nQuakeSV}
ARG HOSTDNS
ENV HOSTDNS ${HOSTDNS:-qw.example.com}
ARG QTV
ENV QTV ${QTV:-y}
ARG QWFWD
ENV QWFWD ${QWFWD:-y}
ARG ADMINNAME
ENV ADMINNAME ${ADMINNAME:-John Doe}
ARG ADMINEMAIL
ENV ADMINEMAIL ${ADMINEMAIL:-john.doe@example.com}
ARG RCON
ENV RCON ${RCON:-changeme}
ARG QTVPW
ENV QTVPW ${QTVPW:-changeme}
ARG SEARCHPAK
ENV SEARCHPAK ${SEARCHPAK:-n}

ARG FFA
ENV FFA ${FFA:-0}

ENV PORTS 1

RUN curl -kL https://github.com/nQuake/server-linux/blob/master/releases/nquakesv_installer-linux-latest.tar.gz?raw=true | tar xvz \
  && printf "/nquakesv\n$HOSTNAME\n$HOSTDNS\n$PORTS\n$QTV\n$QWFWD\n$ADMINNAME\n$ADMINEMAIL\n$RCON\n$QTVPW\n$SEARCHPAK\n\n" | /bin/bash /install_nquakesv.sh

COPY start.sh /nquakesv/start.sh
COPY supervisord.conf /etc/supervisor/supervisord.conf

WORKDIR /nquakesv
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]