5.1 KiB
Customization
The administration panel can be customized according to your needs, so you can make it reflects your identity.
::: warning To apply your changes you need to rebuild your admin panel :::
Change access URL
By default, the administration panel is exposed via http://localhost:1337/admin. However, for security reasons, you can easily update this path.
Path — ./config/environment/**/server.json
.
{
"host": "localhost",
"port": 1337,
"cron": {
"enabled": false
},
"admin": {
"path": "/dashboard"
}
}
The panel will be available through http://localhost:1337/dashboard with the configurations above.
Development mode
To enable the front-end development mode you need to start your application using the --watch-admin
flag.
cd my-app
strapi develop --watch-admin
With this option you can do the following:
Customize the strapi-admin
package
All files added in my-app/admin/src/
will either be replaced or added
Example: Changing the available locales of your application
# Create both the admin and admin/src/translations folders
cd my-app && mkdir -p admin/src/translations
# Change the available locales of the administration panel
touch admin/src/i18n.js
# Change the import and exports of the translations files
touch admin/src/translations/index.js
Path -- my-app/admin/src/translations/index.js
import en from './en.json';
import fr from './fr.json';
const trads = {
en,
fr,
};
export default trads;
Path -- my-app/admin/src/i18n.js
import { addLocaleData } from 'react-intl';
import { reduce } from 'lodash';
import en from 'react-intl/locale-data/en';
import fr from 'react-intl/locale-data/fr';
import trads from './translations';
// We dismiss pt-BR and zh-Hans locales since they are not supported by react-intl
const locales = {
en,
fr,
};
const languages = Object.keys(trads);
/**
* Dynamically generate `translationsMessages object`.
*/
const translationMessages = reduce(
languages,
(result, language) => {
const obj = result;
obj[language] = trads[language];
if (locales[language]) {
addLocaleData(locales[language]);
}
return obj;
},
{}
);
export { languages, translationMessages };
::: tip With this modification only English and French will be available in your admin :::
Customize a plugin
Similarly to the back-end override system any file added in my-app/extensions/<plugin-name>/admin/
will be copied and used instead of the original one (use with care).
Example: Changing the current WYSIWYG
cd my-app/extensions
# Create the content manager folder
mkdir content-manager && cd content-manager
# Create the admin folder
mkdir -p admin/src
# Create the components folder and the WysiwygWithErrors one
cd admin/src && mkdir -p components/WysiwygWithErrors
# Create the index.js so the original file is overridden
touch components/WysiwygWithErrors/index.js
Path -- my-app/extensions/content-manager/admin/src/components/WysiwygWithErrors/index.js
import React from 'react';
import MyNewWYSIWYG from 'my-awesome-lib';
// This is a dummy example
const WysiwygWithErrors = props => <MyNewWYSIWYG {...props} />;
export default WysiwygWithErrors;
Styles
The AdminUI package source can be easily found in ./node_modules/strapi-admin/src/
.
For example, to change the top-left displayed admin panel's color, copy the ./node_modules/strapi-admin/admin/src/components/LeftMenuHeader
folder to ./admin/src/components/LeftMenuHeader
and change the styles inside ./admin/src/components/LeftMenuHeader/Wrapper.js
.
Thus, you are replacing the files that would normally be in node_modules/strapi-admin/admin/src
and directing them to admin/src/some/file/path
.
To apply your changes you need to rebuild your admin panel
npm run build
Logo
To change the top-left displayed admin panel's logo, add your custom image at ./admin/src/assets/images/logo-strapi.png
.
::: tip make sure the size of your image is the same as the existing one (434px x 120px). :::
Tutorial videos
To disable the information box containing the tutorial videos, create a file at ./admin/src/config.js
Add the following configuration:
export const SHOW_TUTORIALS = false;
Build
To build the administration, run the following command from the root directory of your project.
:::: tabs
::: tab yarn
yarn build
:::
::: tab npm
npm run build
:::
::: tab strapi
strapi build
:::
::::
you can build your admin panel with a specific configuration (located in the ./config/environments/**/server.json
) config by specifying a NODE_ENV as follows:
:::: tabs
::: tab yarn
NODE_ENV=production yarn build
:::
::: tab npm
NODE_ENV=production npm run build
:::
::: tab strapi
NODE_ENV=production strapi build
:::
::::
This will replace the folder's content located at ./build
. Visit http://localhost:1337/admin to make sure your updates have been taken into account.