Skip to main content

Server configuration

🏗 Work in progress

The content of this page might not be fully up-to-date with Strapi 5 yet.

The ./config/server.js file is used to define the server configuration for a 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), which is used by the session middleware for the Users & Permissions plugin and the Documentation plugin.array of stringsundefined
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)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
globalProxyDefines the proxy agent for all external requests made within strapi.fetch method (used for licenses check, telemetry and webhooks). To be used if the Strapi project is behind a forward proxy.string
cronCron configuration (powered by node-schedule)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
httpConfiguration of the http server used by Strapiobject
http.serverOptionsOptions passed to http createServerhttp.serverOptions{}
transfer.remote.enabledToggle the ability to use the transfer featurebooleantrue
logger.startup.enabledToggle the the startup message in the terminalbooleantrue
logger.updates.enabledToggle the notification message about updating strapi in the terminalbooleantrue

Configurations

The ./config/server.js minimal configuration requires the host and port parameters for development. 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:

./config/server.js

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