Skip to main content

Plugins configuration

Plugin configurations are stored in /config/plugins.js|ts (see project structure). Each plugin can be configured with the following available parameters:

ParameterDescriptionType
enabledEnable (true) or disable (false) an installed pluginBoolean
configOptionalUsed to override default plugin configuration (defined in strapi-server.js)Object
resolve Optional, only required for local pluginsPath to the plugin's folderString
note

Some features of Strapi are provided by plugins and the following plugins can also have specific configuration options: GraphQL and Upload.

Basic example custom configuration for plugins:

./config/plugins.js

module.exports = ({ env }) ({
// enable a plugin that doesn't require any configuration
i18n: true,

// enable a custom plugin
myplugin: {
// my-plugin is going to be the internal name used for this plugin
enabled: true,
resolve: './src/plugins/my-local-plugin',
config: {
// user plugin config goes here
},
},

// disable a plugin
'my-other-plugin': {
enabled: false, // plugin installed but disabled
},
});
./config/plugins.ts

export default ({ env }) ({
// enable a plugin that doesn't require any configuration
i18n: true,

// enable a custom plugin
myplugin: {
// my-plugin is going to be the internal name used for this plugin
enabled: true,
resolve: './src/plugins/my-local-plugin',
config: {
// user plugin config goes here
},
},

// disable a plugin
'my-other-plugin': {
enabled: false, // plugin installed but disabled
},
});

If no specific configuration is required, a plugin can also be declared with the shorthand syntax 'plugin-name': true. :::

GraphQL configuration​

The GraphQL plugin has the following specific configuration options that should be declared in a graphql.config object within the config/plugins file. All parameters are optional:

ParameterDescriptionTypeDefault
apolloServerAdditional configuration for ApolloServer.Object{}
artifactsObject containing filepaths, defining where to store generated artifacts. Can include the following properties:
  • schema: path to the generated GraphQL schema file
  • typegen: path to generated TypeScript types
Only works if generateArtifacts is set to true.
Object
  • schema: false
  • typegen: false
defaultLimitDefault value for the pagination[limit] parameter used in API callsInteger100
depthLimitLimits the complexity of GraphQL queries.Integer10
endpointThe URL path on which the plugin is exposedString/graphql
generateArtifactsWhether Strapi should automatically generate and output a GraphQL schema file and corresponding TypeScript definitions.The file system location can be configured through artifacts.Booleanfalse
maxLimitMaximum value for the pagination[limit] parameter used in API callsInteger-1
playgroundAlwaysWhether the playground should be publicly exposed.Enabled by default in if NODE_ENV is set to development.Booleanfalse
shadowCRUDWhether type definitions for queries, mutations and resolvers based on models should be created automatically (see Shadow CRUD documentation).Booleantrue

Example custom configuration:

./config/plugins.js

module.exports = () ({
graphql: {
enabled: true,
config: {
playgroundAlways: false,
defaultLimit: 10,
maxLimit: 20,
apolloServer: {
tracing: true,
},
}
}
})
./config/plugins.ts

export default () ({
graphql: {
enabled: true,
config: {
playgroundAlways: false,
defaultLimit: 10,
maxLimit: 20,
apolloServer: {
tracing: true,
},
}
}
})

Upload configuration​

The Upload plugin handles the Media Library. When using the default upload provider, the following specific configuration options can be declared in an upload.config object within the config/plugins file. All parameters are optional:

ParameterDescriptionTypeDefault
providerOptions.localServerOptions that will be passed to koa-static upon which the Upload server is build.(See local server configuration in Upload documentation for additional details)Object-
sizeLimitMaximum file size in bytes.(See max file size configuration in Upload plugin documentation for additional information)Integer209715200(200 MB in bytes, i.e., 200 x 1024 x 1024 bytes)
breakpointsAllows to override the breakpoints sizes at which responsive images are generated when the "Responsive friendly upload" option is set to true.(See responsive images configuration in Upload plugin documentation for additional information)Object{ large: 1000, medium: 750, small: 500 }
Notes
  • Some configuration options can also be set directly from the Admin Panel (see User Guide).
  • The Upload request timeout is defined in the server options, not in the Upload plugin options, as it's not specific to the Upload plugin but is applied to the whole Strapi server instance. See upload request timeout configuration in the Upload documentation for additional details.
  • When using a different upload provider, additional configuration options might be available. For Upload providers maintained by Strapi, see the Amazon S3 provider and Cloudinary provider documentations for additional information about available options.

Example custom configuration:

The following is an example of a custom configuration for the Upload plugin when using the default upload provider:

/config/plugins.js

module.exports = ({ env })({
upload: {
config: {
providerOptions: {
localServer: {
maxage: 300000
},
},
sizeLimit: 250 * 1024 * 1024, // 256mb in bytes
breakpoints: {
xlarge: 1920,
large: 1000,
medium: 750,
small: 500,
xsmall: 64
},
},
},
});
/config/plugins.ts

export default () ({
upload: {
config: {
providerOptions: {
localServer: {
maxage: 300000
},
},
sizeLimit: 250 * 1024 * 1024, // 256mb in bytes
breakpoints: {
xlarge: 1920,
large: 1000,
medium: 750,
small: 500,
xsmall: 64
},
},
},
})