From f80c142b6fc66f3b6d36baff85802cfb6ed00326 Mon Sep 17 00:00:00 2001 From: Ross Crawford-d'Heureuse Date: Fri, 9 Oct 2020 14:42:12 +0200 Subject: [PATCH 1/2] Updates --- Dockerfile | 8 ++++++++ Makefile | 36 ++++++++++++++++++++++++++++++++++++ docker-compose.yml | 40 ++++++++++++++++++++++++++++++++++++++++ env.sample | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 docker-compose.yml create mode 100644 env.sample 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 From 2295ae64a1c5339c65ee8556c959f6b185167eea Mon Sep 17 00:00:00 2001 From: Ross Crawford-d'Heureuse Date: Fri, 9 Oct 2020 14:43:39 +0200 Subject: [PATCH 2/2] docs --- Makefile | 36 ------------------------------------ README.md | 8 ++++++++ 2 files changed, 8 insertions(+), 36 deletions(-) delete mode 100644 Makefile diff --git a/Makefile b/Makefile deleted file mode 100644 index e648410..0000000 --- a/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -.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/README.md b/README.md index e9cd6cd..4d43d6e 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,15 @@ The idea is that an identity provider such as an email provider can host their o Try out the server here: [https://keys.mailvelope.com](https://keys.mailvelope.com) +### Get started +``` +docker-compose up +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" }] }) +``` # API