From de2b69230e9d3b7a87808bf6c3cb6042ce6b2ce0 Mon Sep 17 00:00:00 2001 From: Marc Sowen Date: Thu, 17 Aug 2017 21:24:39 +0200 Subject: [PATCH] Added quick hack to allow easy deployments of BasicAuth-secured environments. --- src/modules/meteor/assets/meteor-setup.sh | 2 +- src/modules/meteor/assets/templates/start.sh | 1 + src/modules/meteor/index.js | 7 +++++++ src/validate/meteor.js | 3 ++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/modules/meteor/assets/meteor-setup.sh b/src/modules/meteor/assets/meteor-setup.sh index 15a38b1d..35cd6456 100644 --- a/src/modules/meteor/assets/meteor-setup.sh +++ b/src/modules/meteor/assets/meteor-setup.sh @@ -1,6 +1,6 @@ #!/bin/bash sudo mkdir -p /opt/<%= name %>/ -sudo mkdir -p /opt/<%= name %>/config +sudo mkdir -p /opt/<%= name %>/config/htpasswd sudo mkdir -p /opt/<%= name %>/tmp sudo chown ${USER} /opt/<%= name %> -R diff --git a/src/modules/meteor/assets/templates/start.sh b/src/modules/meteor/assets/templates/start.sh index 29904717..421a547a 100644 --- a/src/modules/meteor/assets/templates/start.sh +++ b/src/modules/meteor/assets/templates/start.sh @@ -101,6 +101,7 @@ EOT -e "DEFAULT_HOST=<%= sslConfig.autogenerate.domains.split(',')[0] %>" \ -v /opt/$APPNAME/config/nginx-default.conf:/etc/nginx/conf.d/my_proxy.conf:ro \ -v /opt/$APPNAME/certs:/etc/nginx/certs:ro \ + <% if(sslConfig.htpasswd) { %> -v /opt/$APPNAME/config/htpasswd:/etc/nginx/htpasswd <% } %> \ -v /opt/$APPNAME/config/vhost.d:/etc/nginx/vhost.d \ -v /opt/$APPNAME/config/html:/usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ diff --git a/src/modules/meteor/index.js b/src/modules/meteor/index.js index 0049ff16..b538f8d6 100644 --- a/src/modules/meteor/index.js +++ b/src/modules/meteor/index.js @@ -213,6 +213,13 @@ export function envconfig(api) { } }); + if (config.ssl.htpasswd) { + list.copy('Puhsing htpasswd file', { + src: resolvePath(api.getBasePath(), config.ssl.htpasswd), + dest: '/opt/' + config.name + '/config/htpasswd/' + config.ssl.autogenerate.domains + }); + } + var env = _.clone(config.env); env.METEOR_SETTINGS = JSON.stringify(api.getSettings()); // sending PORT to the docker container is useless. diff --git a/src/validate/meteor.js b/src/validate/meteor.js index c83577ee..92789258 100644 --- a/src/validate/meteor.js +++ b/src/validate/meteor.js @@ -70,7 +70,8 @@ const schema = joi.object().keys({ crt: joi.string().trim(), key: joi.string().trim(), port: joi.number(), - upload: joi.boolean() + upload: joi.boolean(), + htpasswd: joi.string().trim() }) .and('crt', 'key') .without('autogenerate', ['crt', 'key'])