Miscellaneous (sails.config.*
)
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.
sails.config.port
The 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)
sails.config.explicitHost
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 localhost
.
sails.config.proxyHost
and sails.config.proxyPort
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 http://localhost:8080
. Using proxyHost
and 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.
sails.config.environment
Important
The NODE_ENV environment variable is usually a better idea than setting
sails.config.environment
manually, since it's a generic Node convention. Thesails.config.environment
setting 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.
sails.config.hookTimeout
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 20000
.
sails.config.keepResponseErrors
By default, convenience functions badRequest
, forbidden
, notFound
, and 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 badRequest
.
Set keepResponseErrors
to true
to ensure Sails preserves the response body for these functions.