Skip to content

Instantly share code, notes, and snippets.

@jimpick
Created June 24, 2017 02:54
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jimpick/6f6f8539fcc1965bb30a906890d7bd2b to your computer and use it in GitHub Desktop.
Save jimpick/6f6f8539fcc1965bb30a906890d7bd2b to your computer and use it in GitHub Desktop.
Hosting dathttpd on now.sh - https://dat.jimpick.com/
sites:
dat.jimpick.com:
url: dat://b61c1b001bb2bc37ceda060895b5023b631dff09ce3486400fbcc2e8f4621951/
datOnly: false
dat-localhost.jimpick.com:
url: dat://b61c1b001bb2bc37ceda060895b5023b631dff09ce3486400fbcc2e8f4621951/
datOnly: false
FROM ubuntu:16.04
RUN apt-get update --yes && apt-get upgrade --yes
RUN apt-get update --yes && apt-get upgrade --yes
RUN apt-get -y install curl
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
RUN apt-get -y install ffmpeg zlib1g-dev automake autoconf git \
libtool subversion libatlas3-base python-pip \
python-dev wget unzip cowsay git-lfs \
libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev \
libpng-dev build-essential g++ vim
RUN apt-get clean
RUN curl https://nodejs.org/dist/v8.1.2/node-v8.1.2-linux-x64.tar.xz | tar xJf - -C /opt
ENV PATH="/opt/node-v8.1.2-linux-x64/bin:${PATH}"
RUN curl -O https://bootstrap.pypa.io/get-pip.py
RUN python get-pip.py
RUN pip install awscli --ignore-installed six
RUN npm install -g json
ENV PATH="/usr/games:${PATH}"
RUN ln -s `which nodejs` /usr/bin/node
# Non-privileged user
RUN useradd -m dathttpd
# Copy files
WORKDIR /home/dathttpd
RUN chown -R dathttpd. .
# Change npm permissions
RUN chown -R dathttpd /opt/node-v8.1.2-linux-x64/lib/node_modules
RUN chown -R dathttpd /opt/node-v8.1.2-linux-x64/bin
RUN chown -R dathttpd /opt/node-v8.1.2-linux-x64/share
# Allow binding to ports 80 and 443 as a regular user
# https://github.com/beakerbrowser/dathttpd
RUN setcap cap_net_bind_service=+ep /opt/node-v8.1.2-linux-x64/bin/node
# Unprivileged
USER dathttpd
RUN npm install -g dathttpd
COPY dathttpd.yml .dathttpd.yml
EXPOSE 80
ENTRYPOINT dathttpd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment