Build options

CLI options

Options that can be passed to the npx build-keycloak-theme command.


This is for performance optimisation.
Build the theme without bundling the assets (static js files, images ect). Keycloakify will read the package.json -> homepage field to know from where the assets should be downloaded.
This enable to you to enable CDN and enable big shared file to be cached by the user's browser.
Step to make --external-assets work:
Checkout a complete setup here​


Prevent the build command from generating outputs.

package.json options

You can read here the package.json fields that are used by Keyclaokify.


Tells Keycloakify to generate extra pages.
If you have in your package.json:
"keycloakify": {
"extraPages": [
Keycloakify will generate my-extra-page-1.ftl and my-extra-page-2.ftl alongside login.ftl, register-user-profile.ftl ect...


By default the files located in build_keycloak/src/main/resources/theme/<your app>/login/ only contains:
If, for some reason, you need to add extra properties like for example env=dev you can do it by editing your package.json this way:
"keycloakify": {
"extraThemeProperties": [


This option is only considered when building with --external-assets.
Set to true it tels Keycloakify that you have configured your reverse proxy so that your app and your Keycloak server are under the same domain, example:
  • Keycloak.
  • Your App
"keycloakify": {
"areAppAndKeycloakServerSharingSameDomain": true
When enabled you don't need to specify a homepage field in the package.json