# A container for PyBitmessage daemon

FROM ubuntu:xenial

RUN apt-get update

# Install dependencies
RUN apt-get install -yq --no-install-suggests --no-install-recommends \
    python-msgpack dh-python python-all-dev build-essential libssl-dev \
    python-stdeb fakeroot python-pip libcap-dev

RUN pip install --upgrade pip

EXPOSE 8444 8442

ENV HOME /home/bitmessage
ENV BITMESSAGE_HOME ${HOME}

ENV VER 0.6.3.2

WORKDIR ${HOME}
ADD . ${HOME}

# Install tests dependencies
RUN pip install -r requirements.txt

# Build and install deb
RUN python2 setup.py sdist \
  && py2dsc-deb dist/pybitmessage-${VER}.tar.gz \
  && dpkg -i deb_dist/python-pybitmessage_${VER}-1_amd64.deb

# Create a user
RUN useradd bitmessage && chown -R bitmessage ${HOME}

USER bitmessage

# Generate default config
RUN src/bitmessagemain.py -t && mv keys.dat /tmp

# Clean HOME
RUN rm -rf ${HOME}/*

# Setup environment
RUN mv /tmp/keys.dat . \
  && APIPASS=$(tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo) \
  && echo "\napiusername: api\napipassword: $APIPASS" \
  && echo "apienabled = true\napiinterface = 0.0.0.0\napiusername = api\napipassword = $APIPASS" >> keys.dat

CMD ["pybitmessage", "-d"]