Configuration

Parameters

Configure parameters in environment variables, for details look into config section of package.json.

When you will start your server, you can always override your configuration using environment variables like this

npm config set liverecord:server.name 'www.example.com'

List of available parameters

Name Default Value Description
mongodb.uri mongodb://127.0.0.1:27017/liveRecord Standard MongoDb Driver connection string
server.name 0.0.0.0:8914 Server hostname or domain name
server.host 0.0.0.0 Default server host
server.port 8914 Default server port
security.restored_password_length 12 Length of future restored password
jwt.restored_password_length yourKey Secret key for JWT
email.sender Sender Name name@example.com  
email.transport smtps://user%40gmail.com:pass@smtp.gmail.com SMTP Transport configuration string for Nodemailer
sentry.dsn   DSN for Sentry
webpush.gcm_api_key   GCM API Key from the Google Developer Console or the Cloud Messaging tab under a Firebase Project.
analytics.ga_id none Google Analytics property ID
files.dir files Folder for files
files.extensions.blacklist   Comma-separated list of blacklisted extensions
files.extensions.whitelist jpg,jpeg,png,gif,pdf,svg,zip,mp4,dmg Comma-separated list of whitelisted extensions (we recommend to use it)
oauth.facebook.client_id   Facebook App Id More
oauth.facebook.client_secret   Facebook App Secret
oauth.twitter.client_id   Twitter App Consumer Key More
oauth.twitter.client_secret   Twitter App Secret
oauth.windowslive.client_id   Windows Live App Id More
oauth.windowslive.client_secret   Windows Live App Secret
oauth.vkontakte.client_id   Vkontakte App Id More
oauth.vkontakte.client_secret   Vkontakte App Secret
oauth.github.client_id   GitHub App Id More
oauth.github.client_secret   GitHub App Secret
oauth.google.client_id   Google Client ID More
oauth.google.client_secret   Google App Secret

Please, take a look at package.json if you want to configure all available options.

Start

You can run the server through this script overriding parameters from package.json like this:

#!/usr/bin/env bash

# load NVM
export NVM_DIR="~/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

# install node from .nvmrc
nvm install

# install node packages
npm install

# compile assets
gulp build 

# configure your options
npm config set liverecord:server.name 'www.your.domain'
npm config set liverecord:email.sender 'Your Sender Name <yourEmail@your.domain>'

# start application
npm start

Configuring Nginx

If you are using Nginx, it would be better to use it for serving static content. Serving static files using nginx as reverse proxy for Node app is an preferred option.

Configure to serve static from the server/public directory.


#
# Our application gets deployed via capistrano
# to the /var/www/liverecord
#

# configure connection to our application
upstream app_liverecord {
  ip_hash;
  server 127.0.0.1:8914;
}

# let's configure web-server
server {

  # setup your domain name here
  server_name live.record.example.com;

  # access logs are not mandatory 
  access_log /var/log/nginx/lr.a.log;
  error_log /var/log/nginx/lr.e.log;
  
  root /var/www/liverecord/current/server/public;
  index index.html;
  
  
  location /dist {
    alias /var/www/liverecord/current/server/public/dist;
  }
  
  location /files {
    alias /var/www/liverecord/current/server/public/files;
  }
  
  location /index\.html {
    alias /var/www/liverecord/current/server/public/index.html;
  }
  
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://app_liverecord/;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}