Strapi Server configuration


 

Server configuration

The ./config/server.js is used to define server configuration for the Strapi application.

✋ CAUTION

Changes to the server.js file require rebuilding the admin panel. After saving the modified file run either yarn build or npm run build in the terminal to implement the changes.

#Available options

The ./config/server.js file can include the following parameters:

ParameterDescriptionTypeDefault
host

❗️ Mandatory
Host namestringlocalhost
port

❗️ Mandatory
Port on which the server should be running.integer1337
app.keys

❗️ Mandatory
Declare session keys (based on Koa session (opens new window)), which is used by the session middleware for the Users & Permissions plugin and the Documentation plugin.stringundefined
socketListens on a socket. Host and port are cosmetic when this option is provided and likewise use url to generate proper urls when using this option. This option is useful for running a server without exposing a port and using proxy servers on the same machine (e.g Heroku nginx buildpack (opens new window))string | integer/tmp/nginx.socket
emitErrorsEnable errors to be emitted to koa when they happen in order to attach custom logic or use error reporting services.booleanfalse
urlPublic url of the server. Required for many different features (ex: reset password, third login providers etc.). Also enables proxy support such as Apache or Nginx, example: https://mywebsite.com/api. The url can be relative, if so, it is used with http://${host}:${port} as the base url. An absolute url is however recommended.string''
proxySet the koa variable app.proxy. When true, proxy header fields will be trusted.booleanfalse
cronCron configuration (powered by node-schedule (opens new window))object
cron.enabledEnable or disable CRON jobs to schedule jobs at specific dates.booleanfalse
cron.tasksDeclare CRON jobs to be run at specific dates.object
dirsPath configuration of different directories Strapi uses.object
dirs.publicCustomize the path of the public folder.string./public

#Configurations

The ./config/server.js file should at least include a minimal configuration with the host and port parameters. Additional parameters can be included for a full configuration.

✏️ NOTE

Environmental configurations (i.e. using the env() helper) do not need to contain all the values so long as they exist in the default ./config/server.js.

The default configuration created with any new project should at least include the following:

// path: ./config/server.js

module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  app: {
    keys: env.array('APP_KEYS'),
  },
});

Buy me a coffee

Back to top