diff --git a/server-config.json b/server-config.json
new file mode 100644
index 0000000000000000000000000000000000000000..b5041d8ab4ca5fd11142861fb6a1133a4249119a
--- /dev/null
+++ b/server-config.json
@@ -0,0 +1 @@
+{ "address": 'localhost', "port": 3000 }
diff --git a/server.js b/server.js
index 9f54bd4c9279d91643e27430a0e1cceeadd12eb7..79f6121e9bdfd7fba00e75f0037eb569933946ce 100755
--- a/server.js
+++ b/server.js
@@ -6,18 +6,19 @@ var morgan = require('morgan');
 var await = require('asyncawait/await');
 var async = require('asyncawait/async');
 var config = require(process.env.AUGUSTCTL_CONFIG || './config.json');
+var serverConfig = require(process.env.AUGUSTCTL_SERVER_CONFIG || './server-config.json');
 
 var DEBUG = process.env.NODE_ENV !== 'production';
-var address = config.address || 'localhost';
-var port = config.port || 3000;
+var address = serverConfig.address || 'localhost';
+var port = serverConfig.port || 3000;
 
 var app = express();
 app.use(morgan(DEBUG ? 'dev' : 'combined'));
 
 var ret = {'status': -1, 'ret': '', 'msg': ''};
 
-app.get('/api/unlock', function(req, res) {
-  var lock = app.get('lock');
+app.get('/api/unlock/:lock_name', function(req, res) {
+  var lock = app.get('lock' + req.params.lock_name);
   if (!lock) {
     res.sendStatus(503);
     return;
@@ -39,7 +40,7 @@ var execStatus = async(function() {
 
      }
      else
-     {   
+     {
          ret['status'] = 1;
          ret['msg'] = 'Lock is already unlocked';
          res.json(ret);
@@ -56,13 +57,13 @@ var execStatus = async(function() {
 
    }).catch(function(e) {
       console.error(e.toString());
-   });  
+   });
 
 });
 
 
-app.get('/api/lock', function(req, res) {
-  var lock = app.get('lock');
+app.get('/api/lock/:lock_name', function(req, res) {
+  var lock = app.get('lock' + req.params.lock_name);
   if (!lock) {
     res.sendStatus(503);
     return;
@@ -83,7 +84,7 @@ app.get('/api/lock', function(req, res) {
 
      }
      else
-     {   
+     {
          ret['status'] = 1;
          ret['msg'] = 'Lock is already locked';
 
@@ -99,14 +100,13 @@ app.get('/api/lock', function(req, res) {
 
    }).finally(function(){
       console.log('Finally');
-   });  
+   });
 
 });
 
 
-app.get('/api/status', function(req, res){
-
-   var lock = app.get('lock');
+app.get('/api/status/:lock_name', function(req, res){
+   var lock = app.get('lock' + req.params.lock_name);
    if(!lock) {
       res.sendStatus(503);
       return;
@@ -128,7 +128,7 @@ app.get('/api/status', function(req, res){
 
    lock.connect().then(function() {
       var status = execStatus();
-  
+
    }).finally(function() {
       console.log('Finally');
    });
@@ -136,16 +136,16 @@ app.get('/api/status', function(req, res){
 
 });
 
-
-augustctl.scan(config.lockUuid).then(function(peripheral) {
-  var lock = new augustctl.Lock(
-    peripheral,
-    config.offlineKey,
-    config.offlineKeyOffset
-  );
-  app.set('lock', lock);
+config.forEach( function( lockConfig, lockName ) {
+    augustctl.scan(lockConfig.lockUuid).then(function (peripheral) {
+        var lock = new augustctl.Lock(
+            peripheral,
+            lockConfig.offlineKey,
+            lockConfig.offlineKeyOffset
+        );
+        app.set('lock' + lockName, lock);
+    });
 });
-
 var server = app.listen(port, address, function() {
   console.log('Listening at %j', server.address());
 });