diff --git a/config/userapi.js b/config/userapi.js
index e6a6cf112b33c7b9e2df2577c79d7136e2c1d3b0..2fa9477ef25d0121cc6a88ce47dc7704d97eacb5 100644
--- a/config/userapi.js
+++ b/config/userapi.js
@@ -1,6 +1,6 @@
-module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyParser) {
+module.exports = function (app, config, passport, models, ensureLoggedIn, bodyParser) {
   function setJsonApiHeader() {
-    return function(req, res, next) {
+    return function (req, res, next) {
       res.type('application/vnd.api+json');
       next();
     }
@@ -11,7 +11,7 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
     var selfName;
     try {
       selfName = req.user.id;
-    } catch(e) {
+    } catch (e) {
       selfName = ''
     }
     return selfName
@@ -19,29 +19,29 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
 
 
   //Passport SAML request is not accepted until the body is parsed. And since bodyParser can not used in the express app, it is called here separately.
-  app.post(config.passport.saml.path,bodyParser.json(),bodyParser.urlencoded({extended: true}),
-           passport.authenticate(config.passport.strategy,
-                                 {
-                                   failureRedirect: '/',
-                                   failureFlash: true
-                                 }),
-           function (req, res) {
-             if (req.session && req.session.returnTo) {
-               res.redirect('/'); // req.session.returnTo can't be used as the partial path after # is not available to the backend
-             } else {
-               res.redirect('/')  ;
-             }
-           }
-          );
-
-
-  app.get('/userapi', function(req, res){
+  app.post(config.passport.saml.path, bodyParser.json(), bodyParser.urlencoded({ extended: true }),
+    passport.authenticate(config.passport.strategy,
+      {
+        failureRedirect: '/',
+        failureFlash: true
+      }),
+    function (req, res) {
+      if (req.session && req.session.returnTo) {
+        res.redirect('/'); // req.session.returnTo can't be used as the partial path after # is not available to the backend
+      } else {
+        res.redirect('/');
+      }
+    }
+  );
+
+
+  app.get('/userapi', function (req, res) {
     res.send('Working');
   });
 
-  app.get('/userapi/notebooks', setJsonApiHeader(), function(req, res){
-    models.Notebook.find({isPublic: true},function(err,notebooks) {
-      if(err) {
+  app.get('/userapi/notebooks', setJsonApiHeader(), function (req, res) {
+    models.Notebook.find({ isPublic: true }, function (err, notebooks) {
+      if (err) {
         res.send({ errors: [err] });
       }
       else {
@@ -50,17 +50,17 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
     });
   })
 
-  app.get('/userapi/notebooks/:id', setJsonApiHeader(), function(req, res){
-    models.Notebook.findOne({_id: req.params.id},function(err,notebook) {
-      if(err) {
-        res.send({ errors: [ err ] });
+  app.get('/userapi/notebooks/:id', setJsonApiHeader(), function (req, res) {
+    models.Notebook.findOne({ _id: req.params.id }, function (err, notebook) {
+      if (err) {
+        res.send({ errors: [err] });
       } else if (notebook.isPublic || notebook.username == selfUserName(req)) {
         res.send({
           data: models.notebookResObj(notebook)
         });
       } else { // hide completely and treat as non existing, or trigger an error? currently expose minimal info
         res.send({
-          data:{
+          data: {
             type: "notebooks",
             id: req.params.id,
             attributes: {
@@ -73,9 +73,9 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
     });
   })
 
-  app.get('/userapi/rusages', setJsonApiHeader(), function(req, res){
-    models.Rusage.find({},function(err,rusages) {
-      if(err) {
+  app.get('/userapi/rusages', setJsonApiHeader(), function (req, res) {
+    models.Rusage.find({}, function (err, rusages) {
+      if (err) {
         res.send({ errors: [err] });
       }
       else {
@@ -84,33 +84,33 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
     });
   })
 
-  app.get('/userapi/rusages/:username', setJsonApiHeader(), function(req, res){
-    models.getRusage(req.params.username, function(err,rusage) {
-      if(err) {
-        res.send({ errors: [ err ] });
+  app.get('/userapi/rusages/:username', setJsonApiHeader(), function (req, res) {
+    models.getRusage(req.params.username, function (err, rusage) {
+      if (err) {
+        res.send({ errors: [err] });
       } else {
- // hide if rusage.username != selfUserName(req)??
+        // hide if rusage.username != selfUserName(req)??
         res.send(rusage)
       }
     });
   })
 
-  app.get('/userapi/myselfs', setJsonApiHeader(), function(req,res) {
-    models.getMyself(selfUserName(req), function(err, myself) {
+  app.get('/userapi/myselfs', setJsonApiHeader(), function (req, res) {
+    models.getMyself(selfUserName(req), function (err, myself) {
       if (err) {
         res.send({ errors: [err] })
       } else {
         res.send({
-          data: [ myself.data ],
+          data: [myself.data],
           included: myself.included
         });
       }
     });
   });
 
-  app.get('/userapi/myselfs/:id', setJsonApiHeader(), function(req,res) {
+  app.get('/userapi/myselfs/:id', setJsonApiHeader(), function (req, res) {
     if (req.params.id == "1") {
-      models.getMyself(selfUserName(req), function(err, myself) {
+      models.getMyself(selfUserName(req), function (err, myself) {
         if (err) {
           res.send({ errors: [err] })
         } else {
@@ -124,14 +124,14 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
     }
   });
 
-  app.get('/userapi/myselfs/1/username', setJsonApiHeader(), function(req, res){
+  app.get('/userapi/myselfs/1/username', setJsonApiHeader(), function (req, res) {
     res.send(selfUserName(req))
   });
 
-  app.get('/userapi/users/:username', setJsonApiHeader(), function(req, res){
+  app.get('/userapi/users/:username', setJsonApiHeader(), function (req, res) {
     var selfName = selfUserName(req)
     let username = req.params.username;
-    models.getUserInfo(username, selfName, function(err, userInfo) {
+    models.getUserInfo(username, selfName, function (err, userInfo) {
       if (err) {
         res.send(err)
       } else {
@@ -140,10 +140,10 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
     });
   });
 
-  app.get('/userapi/users', setJsonApiHeader(), function(req, res){
+  app.get('/userapi/users', setJsonApiHeader(), function (req, res) {
     var selfName = selfUserName(req)
     let username = req.params.username;
-    models.getUserInfo(username, selfName, function(err, userInfo) {
+    models.getUserInfo(username, selfName, function (err, userInfo) {
       if (err) {
         res.send(err)
       } else {
@@ -152,8 +152,19 @@ module.exports = function (app, config, passport,  models, ensureLoggedIn, bodyP
     });
   });
 
-  app.get('/notebook-edit/*', function(req, res){
-    const target = 'https://labdev-nomad.esc.rzg.mpg.de/beaker/#/open?uri=' + req.url.slice(14, req.url.length).replace("/","%2F")
+  app.get('/containersForUser', function (req, res) {
+    const k8 = require('./kubernetes')(config);
+    const k8component = require('./components')(config);
+    const ProxyRouter = require('./ProxyRouter')(config, k8, k8component);
+    k8.ns(config.k8component.namespace).rc.get(config.k8component.imageType + '-rc-' + userID, function (err, result) {
+      if (!err) {
+        res.send(result);
+      } else res.send(err);
+    });
+  });
+
+  app.get('/notebook-edit/*', function (req, res) {
+    const target = 'https://labdev-nomad.esc.rzg.mpg.de/beaker/#/open?uri=' + req.url.slice(14, req.url.length).replace("/", "%2F")
     console.log(`notebook-edit redirecting to ${target}`)
     res.redirect(302, target);
   });