For a conceptual overview of configuration in Sails, see http://sailsjs.org/documentation/concepts/Configuration.
This page is a quick reference of assorted configuration topics that don't fit elsewhere, namely top-level properties on the sails.config object. Many of these properties are best set on a per-environment basis, or in your config/local.js. To set them globally for your app, create a new file in the
config folder (e.g.
config/misc.js) and add them there.
port setting determines which TCP port your app will be deployed on.
Ports are a transport-layer concept designed to allow many different networking applications to run at the same time on a single computer.
By default, if it’s set, Sails uses the
PORT environment variable. Otherwise it falls back to port 1337. In production, you’ll probably want to change this setting to 80 (http://) or 443 (https://) if you have an SSL certificate.
More about ports: http://en.wikipedia.org/wiki/Port_(computer_networking)
By default, Sails will assume
localhost as the host that will be listening for incoming requests. This will work in the majority of hosting environments you encounter, but in some cases (OpenShift being one example) you'll need to explicitly declare the host name of your Sails app. Setting
explicitHost tells Sails to listen for requests on that host instead of
If your site will ultimately be served by a proxy, you may want to set
proxyHost to ensure that calls to
sails.getBaseurl() return the expected host. For example, if you deploy a Sails app on Modulus.io, the ultimate URL for your site will be something like
http://mysite-12345.onmodulus.net. If you were to use
sails.getBaseurl() to construct a URL in your app code, however, it would return something like
proxyPort allow you to specify the host name and port of the proxy server that will be serving your app. This ensure that any links created using
sails.getBaseurl() are correct.
The NODE_ENV environment variable is usually a better idea than setting
sails.config.environmentmanually, since it's a generic Node convention. The
sails.config.environmentsetting may be deprecated in Sails v1.0.
The runtime “environment” of your Sails app is either ‘development’ or ‘production’.
In development, your Sails app will go out of its way to help you (for instance you will receive more descriptive error and debugging output).
In production, Sails configures itself (and its dependencies) to optimize performance. You should always put your app in production mode before you deploy it to a server -- this helps ensure that your Sails app remains stable, performant, and scalable.
By default, Sails sets its environment using the
NODE_ENV environment variable. If
NODE_ENV is not set, Sails will run in the ‘development’ environment.
Set a global timeout for Sails hooks, in milliseconds. Sails will give up trying to lift if any hook takes longer than this to load. Defaults to
By default, convenience functions
serverError will clear the response body when the environment is "production". This behavior may be undesirable in certain cases, such as exposing underlying Waterline validation errors to clients while responding through
true to ensure Sails preserves the response body for these functions.
Use this config to set up basic SSL server options, or to indicate that you will be specifying more advanced options in sails.config.http.serverOptions.
sails.config.ssl is set, it should be an object with
cert keys or a
pfx key. The presence of those options indicates to Sails that your app should be lifted with an HTTPS server. If your app requires a more complex SSL setup (for example by using SNICallback), set
true and specify your advanced options in sails.config.http.serverOptions.