From d79f1af1af6826484aa09be271c9f3f51fb7924b Mon Sep 17 00:00:00 2001
From: Markus Grigull <web@grigull.me>
Date: Thu, 27 Apr 2017 17:16:34 +0200
Subject: [PATCH] Add support for development and production environment

---
 Dockerfile         |  2 +-
 config.js          | 28 ++++++++++++++++++++--------
 docker-compose.yml | 25 +++++++++++++------------
 server.js          |  7 +++++--
 4 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 77c9b09..02775cb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,5 +7,5 @@ COPY . .
 RUN npm install
 
 # Run the app
-EXPOSE 3000
+EXPOSE 4000
 CMD [ "npm", "start" ]
diff --git a/config.js b/config.js
index 26129c1..658bda8 100644
--- a/config.js
+++ b/config.js
@@ -20,12 +20,24 @@
  ******************************************************************************/
 
 module.exports = {
-  databaseName: 'VILLAS',
-  databaseURL: 'mongodb://localhost:27017/',
-  port: 4000,
-  secret: 'longsecretislong',
-  admin: {
-    username: 'admin',
-    password: 'admin'
+  development: {
+    databaseName: 'VILLAS',
+    databaseURL: 'mongodb://localhost:27017/',
+    port: 4000,
+    secret: 'longsecretislong',
+    admin: {
+      username: 'admin',
+      password: 'admin'
+    }
+  },
+  production: {
+    databaseName: 'VILLAS',
+    databaseURL: 'mongodb://database:27017/',
+    port: 4000,
+    secret: 'longsecretislong',
+    admin: {
+      username: 'admin',
+      password: 'admin'
+    }
   }
-}
+};
diff --git a/docker-compose.yml b/docker-compose.yml
index c7d32b8..6665600 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,13 +1,14 @@
-node:
-  image: villasweb-backend
-  ports:
-    - "3000:3000"
-  links:
-    - mongo
-  environment:
-    - NODE_ENV=development
+version: "2"
 
-mongo:
-  image: mongo
-  ports:
-    - "27017:27017"
+services:
+  backend:
+    image: villasweb-backend
+    ports:
+      - "4000:4000"
+    links:
+      - database
+    environment:
+      - NODE_ENV=production
+
+  database:
+    image: mongo:latest
diff --git a/server.js b/server.js
index 6a7f837..9a94c9e 100644
--- a/server.js
+++ b/server.js
@@ -27,8 +27,6 @@ var morgan = require('morgan');
 var cors = require('cors');
 
 // local include
-var config = require('./config');
-
 var users = require('./routes/users');
 var projects = require('./routes/projects');
 var visualizations = require('./routes/visualizations');
@@ -44,6 +42,9 @@ var User = require('./models/user');
 // create application
 var app = express();
 
+// load configuration
+var config = require('./config')[app.get('env')];
+
 // configure app
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: true }));
@@ -74,6 +75,8 @@ app.use(function(req, res, next) {
 });
 
 // development error handler
+console.log("Environment: " + app.get('env'));
+
 if (app.get('env') === 'development') {
   app.use(function(err, req, res, next) {
     res.status(err.status || 500);
-- 
GitLab