diff --git a/software/theia/buildout.hash.cfg b/software/theia/buildout.hash.cfg
index b918e13ab6473f19cfbd7f782edd2c1a79446376..08d16831f6bb6ee33d353ebbec8dcb585d47b3f4 100644
--- a/software/theia/buildout.hash.cfg
+++ b/software/theia/buildout.hash.cfg
@@ -15,7 +15,7 @@
 
 [instance]
 filename = instance.cfg.in
-md5sum = c35e6baca37c690bce39ef43825ec42b
+md5sum = 6a0a65ff9f81f907d53c42c65b54442a
 
 [yarn.lock]
 filename = yarn.lock
diff --git a/software/theia/instance.cfg.in b/software/theia/instance.cfg.in
index e94ff6fa758884f072d39bd924b13228918d610a..7fb0915c93560a6eee206ba71a8a2b6391d1e0cd 100644
--- a/software/theia/instance.cfg.in
+++ b/software/theia/instance.cfg.in
@@ -1,10 +1,13 @@
 [buildout]
 parts =
+  monitor-base
   promises
   .bashrc
   frontend-reload
   publish-connection-parameter
 
+extends = ${monitor-template:rendered}
+
 eggs-directory = ${buildout:eggs-directory}
 develop-eggs-directory = ${buildout:develop-eggs-directory} 
 offline = true
@@ -111,23 +114,22 @@ template = inline:
 [promises]
 recipe =
 instance-promises =
-  $${theia-listen-promise:path}
-  $${frontend-listen-promise:path}
-
-[check-port-listening-promise]
-recipe = slapos.cookbook:check_port_listening
-path = $${directory:promises}/$${:_buildout_section_name_}
+  $${theia-listen-promise:name}
+  $${frontend-listen-promise:name}
 
 [theia-listen-promise]
-<= check-port-listening-promise
-hostname= $${theia-instance:ip}
-port = $${theia-instance:port}
+<= monitor-promise-base
+module = check_port_listening
+name = $${:_buildout_section_name_}.py
+config-hostname=  $${theia-instance:ip}
+config-port = $${theia-instance:port}
 
 [frontend-listen-promise]
-<= check-port-listening-promise
-hostname= $${frontend-instance:ip}
-port = $${frontend-instance:port}
-
+<= monitor-promise-base
+module = check_port_listening
+name = $${:_buildout_section_name_}.py
+config-hostname = $${frontend-instance:ip}
+config-port = $${frontend-instance:port}
 
 [publish-connection-parameter]
 recipe = slapos.cookbook:publish
@@ -152,7 +154,6 @@ tmp = $${buildout:directory}/tmp
 pidfiles = $${:var}/run
 
 services = $${:etc}/service
-promises = $${:etc}/promise
 framebuffer = $${:srv}/framebuffer
 fonts = $${:srv}/fonts
 home = $${:srv}/home
\ No newline at end of file
diff --git a/software/theia/software.cfg b/software/theia/software.cfg
index 77bf5ad4b2a97e5b9bb29a02078817994ae816d3..056830abc62e188336910b4293a8a01862768a90 100644
--- a/software/theia/software.cfg
+++ b/software/theia/software.cfg
@@ -8,6 +8,7 @@ extends =
    ../../component/bash/buildout.cfg
    ../../component/coreutils/buildout.cfg
    ../../stack/slapos.cfg
+   ../../stack/monitor/buildout.cfg
    ./gowork.cfg
    ./buildout.hash.cfg
 # this gowork.cfg includes the one from caddy, because they share the only gowork