diff --git a/README.md b/README.md
index 4717ca7..7d3d457 100644
--- a/README.md
+++ b/README.md
@@ -150,7 +150,8 @@ Environment variables (will overwrite other server configs)
 | HMD_LDAP_TLS_CA | no example | Root CA for LDAP TLS in PEM format |
 | HMD_LDAP_PROVIDERNAME | My institution | Optional name to be displayed at login form indicating the LDAP provider | 
 | HMD_IMGUR_CLIENTID | no example | Imgur API client id |
-| HMD_EMAIL | `true` or `false` | set to allow email register and signin |
+| HMD_EMAIL | `true` or `false` | set to allow email signin |
+| HMD_ALLOW_EMAIL_REGISTER | `true` or `false` | set to allow email register |
 | HMD_IMAGE_UPLOAD_TYPE | `imgur`, `s3` or `filesystem` | Where to upload image. For S3, see our [S3 Image Upload Guide](docs/guides/s3-image-upload.md) |
 | HMD_S3_ACCESS_KEY_ID | no example | AWS access key id |
 | HMD_S3_SECRET_ACCESS_KEY | no example | AWS secret key |
@@ -194,7 +195,8 @@ Server settings `config.json`
 | heartbeatinterval | `5000` | socket.io heartbeat interval |
 | heartbeattimeout | `10000` | socket.io heartbeat timeout |
 | documentmaxlength | `100000` | note max length |
-| email | `true` or `false` | set to allow email register and signin |
+| email | `true` or `false` | set to allow email signin |
+| allowemailregister  | `true` or `false` | set to allow email register |
 | imageUploadType | `imgur`(default), `s3` or `filesystem` | Where to upload image
 | s3 | `{ "accessKeyId": "YOUR_S3_ACCESS_KEY_ID", "secretAccessKey": "YOUR_S3_ACCESS_KEY", "region": "YOUR_S3_REGION", "bucket": "YOUR_S3_BUCKET_NAME" }` | When `imageUploadType` be setted to `s3`, you would also need to setup this key, check our [S3 Image Upload Guide](docs/guides/s3-image-upload.md) |
 
diff --git a/app.js b/app.js
index 47448fe..7b5e619 100644
--- a/app.js
+++ b/app.js
@@ -395,34 +395,36 @@ if (config.ldap) {
 }
 // email auth
 if (config.email) {
-    app.post('/register', urlencodedParser, function (req, res, next) {
-        if (!req.body.email || !req.body.password) return response.errorBadRequest(res);
-        if (!validator.isEmail(req.body.email)) return response.errorBadRequest(res);
-        models.User.findOrCreate({
-            where: {
-                email: req.body.email
-            },
-            defaults: {
-                password: req.body.password
-            }
-        }).spread(function (user, created) {
-            if (user) {
-                if (created) {
-                    if (config.debug) logger.info('user registered: ' + user.id);
-                    req.flash('info', "You've successfully registered, please signin.");
-                } else {
-                    if (config.debug) logger.info('user found: ' + user.id);
-                    req.flash('error', "This email has been used, please try another one.");
+    if (config.allowemailregister)
+        app.post('/register', urlencodedParser, function (req, res, next) {
+            if (!req.body.email || !req.body.password) return response.errorBadRequest(res);
+            if (!validator.isEmail(req.body.email)) return response.errorBadRequest(res);
+            models.User.findOrCreate({
+                where: {
+                    email: req.body.email
+                },
+                defaults: {
+                    password: req.body.password
                 }
+            }).spread(function (user, created) {
+                if (user) {
+                    if (created) {
+                        if (config.debug) logger.info('user registered: ' + user.id);
+                        req.flash('info', "You've successfully registered, please signin.");
+                    } else {
+                        if (config.debug) logger.info('user found: ' + user.id);
+                        req.flash('error', "This email has been used, please try another one.");
+                    }
+                    return res.redirect(config.serverurl + '/');
+                }
+                req.flash('error', "Failed to register your account, please try again.");
                 return res.redirect(config.serverurl + '/');
-            }
-            req.flash('error', "Failed to register your account, please try again.");
-            return res.redirect(config.serverurl + '/');
-        }).catch(function (err) {
-            logger.error('auth callback failed: ' + err);
-            return response.errorInternalError(res);
+            }).catch(function (err) {
+                logger.error('auth callback failed: ' + err);
+                return response.errorInternalError(res);
+            });
         });
-    });
+
     app.post('/login', urlencodedParser, function (req, res, next) {
         if (!req.body.email || !req.body.password) return response.errorBadRequest(res);
         if (!validator.isEmail(req.body.email)) return response.errorBadRequest(res);
diff --git a/lib/config.js b/lib/config.js
index 6b2ba0b..031c674 100644
--- a/lib/config.js
+++ b/lib/config.js
@@ -132,6 +132,7 @@ if (process.env.HMD_LDAP_PROVIDERNAME) {
 }
 var imgur = process.env.HMD_IMGUR_CLIENTID || config.imgur || false;
 var email = process.env.HMD_EMAIL ? (process.env.HMD_EMAIL === 'true') : !!config.email;
+var allowemailregister = process.env.HMD_ALLOW_EMAIL_REGISTER ? (process.env.HMD_HMD_ALLOW_EMAIL_REGISTER === 'true') : !!config.allowemailregister;
 
 function getserverurl() {
     var url = '';
@@ -194,6 +195,7 @@ module.exports = {
     ldap: ldap,
     imgur: imgur,
     email: email,
+    allowemailregister: allowemailregister,
     imageUploadType: imageUploadType,
     s3: s3,
     s3bucket: s3bucket
diff --git a/lib/response.js b/lib/response.js
index 6c1db96..9014a0a 100755
--- a/lib/response.js
+++ b/lib/response.js
@@ -68,6 +68,7 @@ function showIndex(req, res, next) {
         google: config.google,
         ldap: config.ldap,
         email: config.email,
+        allowemailregister: config.allowemailregister,
         signin: req.isAuthenticated(),
         infoMessage: req.flash('info'),
         errorMessage: req.flash('error')
diff --git a/public/views/signin-modal.ejs b/public/views/signin-modal.ejs
index e9c54b3..a8af62e 100644
--- a/public/views/signin-modal.ejs
+++ b/public/views/signin-modal.ejs
@@ -84,7 +84,7 @@
                     <div class="form-group">
                         <div class="col-sm-12">
                             <button type="submit" class="btn btn-primary" formaction="<%- url %>/login">Sign in</button>
-                            <button type="submit" class="btn btn-default" formaction="<%- url %>/register">Register</button>
+                            <% if(allowemailregister) { %><button type="submit" class="btn btn-default" formaction="<%- url %>/register">Register</button><% }%>
                         </div>
                     </div>
                 </form>