diff --git a/src/plugins/meteor/assets/meteor-setup.sh b/src/plugins/meteor/assets/meteor-setup.sh index 15a38b1d..35cd6456 100644 --- a/src/plugins/meteor/assets/meteor-setup.sh +++ b/src/plugins/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/plugins/meteor/assets/templates/start.sh b/src/plugins/meteor/assets/templates/start.sh index 2395a118..30986292 100644 --- a/src/plugins/meteor/assets/templates/start.sh +++ b/src/plugins/meteor/assets/templates/start.sh @@ -108,6 +108,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/plugins/meteor/command-handlers.js b/src/plugins/meteor/command-handlers.js index dd0d073b..8b4123bd 100644 --- a/src/plugins/meteor/command-handlers.js +++ b/src/plugins/meteor/command-handlers.js @@ -263,6 +263,13 @@ export function envconfig(api) { } }); + if (config.ssl.htpasswd) { + list.copy('Pushing htpasswd file', { + src: api.resolvePath(api.getBasePath(), config.ssl.htpasswd), + dest: `/opt/${config.name}/config/htpasswd/${config.ssl.autogenerate.domains}` + }); + } + const env = cloneDeep(config.env); env.METEOR_SETTINGS = JSON.stringify(api.getSettings()); // sending PORT to the docker container is useless. diff --git a/src/plugins/meteor/validate.js b/src/plugins/meteor/validate.js index e4a86487..ccdef8a5 100644 --- a/src/plugins/meteor/validate.js +++ b/src/plugins/meteor/validate.js @@ -72,7 +72,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'])