diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ca34b7a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM node:latest + +WORKDIR /app +ADD . . +RUN npm install + +ENTRYPOINT ["node"] +CMD [ "index.js" ] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e648410 --- /dev/null +++ b/Makefile @@ -0,0 +1,36 @@ +.PHONY: all build login push run + +NAME := rosscdh/keyserver +TAG := $$(git log -1 --pretty=%h) +VERSION := ${NAME}:${TAG} +LATEST := ${NAME}:latest + +BUILD_REPO_ORIGIN=$$(git config --get remote.origin.url) +BUILD_COMMIT_SHA1:=$$(git rev-parse --short HEAD) +BUILD_COMMIT_DATE:=$$(git log -1 --date=short --pretty=format:%ct) +BUILD_BRANCH:=$$(git symbolic-ref --short HEAD) +BUILD_DATE:=$$(date -u +"%Y-%m-%dT%H:%M:%SZ") + + +all: build login push + + +build: + docker build -t ${LATEST} -t ${LATEST} \ + --build-arg BUILD_COMMIT_SHA1=${BUILD_COMMIT_SHA1} \ + --build-arg BUILD_COMMIT_DATE=${BUILD_COMMIT_DATE} \ + --build-arg BUILD_BRANCH=${BUILD_BRANCH} \ + --build-arg BUILD_DATE=${BUILD_DATE} \ + --build-arg BUILD_REPO_ORIGIN=${BUILD_REPO_ORIGIN} \ + . + +login: + docker login ${REGISTRY} + +push: + docker push ${LATEST} + docker push ${TAG} + +run: + #docker run -v ${PWD}/src:/app/src -p8090:3000 ${LATEST} + docker run -p8090:3000 ${LATEST} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..616ef33 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,40 @@ +version: '3' + +services: + mongodb: + image: mongo + volumes: + - mongo-data:/data/db + networks: + - backend + env_file: + - env.sample + + mailhog: + image: mailhog/mailhog + ports: + - 8025:8025 + networks: + - backend + + keyserver: + build: + context: . + args: + USER_ID: ${USER_ID:-1000} + ports: + - "3000:3000" + depends_on: + - mongodb + - mailhog + networks: + - backend + env_file: + - env.sample + +volumes: + mongo-data: + driver: local + +networks: + backend: \ No newline at end of file diff --git a/env.sample b/env.sample new file mode 100644 index 0000000..2ddd00a --- /dev/null +++ b/env.sample @@ -0,0 +1,33 @@ +LOG_LEVEL=debug +PORT=3000 +PAPERTRAIL_HOST='' +PAPERTRAIL_PORT='' + +# docker-compose exec -it mongodb bash +# mongo -u keyserver_user -p keyserver_pass +# use keyserver_db +# db.createUser({ user:"keyserver_user", pwd:"keyserver_pass", roles:[{ role:"readWrite", db:"keyserver_db" }] }) + +MONGO_URI=mongodb:27017/keyserver_db +MONGO_USER=keyserver_user +MONGO_PASS=keyserver_pass +MONGO_INITDB_ROOT_USERNAME=keyserver_user +MONGO_INITDB_ROOT_PASSWORD=keyserver_pass + +SENDER_NAME=keyserver +SENDER_EMAIL=keyserver@example.com + +SMTP_HOST=mailhog +SMTP_PORT=1025 +SMTP_TLS=false + +SMTP_STARTTLS='' +SMTP_PGP='' +SMTP_USER='' +SMTP_PASS='' + +HTTPS_UPGRADE=false +HTTPS_KEY_PIN='' +HTTPS_KEY_PIN_BACKUP='' + +PUBLIC_KEY_PURGE_TIME=30