diff --git a/config/puma.rb b/config/puma.rb
index 7586536f44910dd88e8da63297d60d173b186449..eb8fc6a8e9b636c6dd972d603feb8c9f2d18dbce 100644
--- a/config/puma.rb
+++ b/config/puma.rb
@@ -1,6 +1,10 @@
 threads_count = ENV.fetch('MAX_THREADS') { 5 }.to_i
 threads threads_count, threads_count
 
+if ENV['SOCKET'] then
+  bind 'unix://' + ENV['SOCKET']
+end
+
 port        ENV.fetch('PORT') { 3000 }
 environment ENV.fetch('RAILS_ENV') { 'development' }
 workers     ENV.fetch('WEB_CONCURRENCY') { 2 }
diff --git a/streaming/index.js b/streaming/index.js
index 8395c9cf8e77710b1031944df9d74969b336aacb..c7959b3069e02f7b4f5b5fada1d7b8d0fe494f8e 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -328,6 +328,14 @@ if (cluster.isMaster) {
 
   server.listen(process.env.PORT || 4000, () => {
     log.level = process.env.LOG_LEVEL || 'verbose'
-    log.info(`Starting streaming API server worker on port ${server.address().port}`)
+    log.info(`Starting streaming API server worker on ${server.address()}`)
   })
+
+  process.on('SIGINT', exit)
+  process.on('SIGTERM', exit)
+  process.on('exit', exit)
+
+  function exit() {
+    server.close()
+  }
 }