about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.env.production.sample2
-rw-r--r--streaming/index.js34
2 files changed, 25 insertions, 11 deletions
diff --git a/.env.production.sample b/.env.production.sample
index 058e794b4..58b983056 100644
--- a/.env.production.sample
+++ b/.env.production.sample
@@ -2,7 +2,7 @@
 # You may set REDIS_URL instead for more advanced options
 REDIS_HOST=redis
 REDIS_PORT=6379
-# You may set DB_URL instead for more advanced options
+# You may set DATABASE_URL instead for more advanced options
 DB_HOST=db
 DB_USER=postgres
 DB_NAME=postgres
diff --git a/streaming/index.js b/streaming/index.js
index 18da58e49..883bf33f5 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -22,16 +22,30 @@ const dbUrlToConfig = (dbUrl) => {
   }
 
   const params = url.parse(dbUrl)
-  const auth   = params.auth ? params.auth.split(':') : []
-
-  return {
-    user: auth[0],
-    password: auth[1],
-    host: params.hostname,
-    port: params.port,
-    database: params.pathname ? params.pathname.split('/')[1] : null,
-    ssl: true
+  const config = {}
+
+  if (params.auth) {
+    [config.user, config.password] = params.auth.split(':')
+  }
+
+  if (params.hostname) {
+    config.host = params.hostname
+  }
+
+  if (params.port) {
+    config.port = params.port
   }
+
+  if (params.pathname) {
+    config.database = params.params.pathname.split('/')[1]
+  }
+
+  const ssl = params.query && params.query.ssl
+  if (ssl) {
+    config.ssl = ssl === 'true' || ssl === '1'
+  }
+
+  return config
 }
 
 if (cluster.isMaster) {
@@ -70,7 +84,7 @@ if (cluster.isMaster) {
   }
 
   const app    = express()
-  const pgPool = new pg.Pool(Object.assign(dbUrlToConfig(process.env.DB_URL), pgConfigs[env]))
+  const pgPool = new pg.Pool(Object.assign(pgConfigs[env], dbUrlToConfig(process.env.DATABASE_URL)))
   const server = http.createServer(app)
   const wss    = new WebSocket.Server({ server })