Can’t Find standalone.xml in Keycloak? Here’s Why

If you’re unable to find the standalone.xml configuration file in Keycloak, it may be due to several reasons related to the distribution, installation, or configuration setup. This article will help you understand why standalone.xml might be missing and how to find or configure Keycloak without it.

1. Keycloak Versions and Distribution

Keycloak has several distributions, and depending on the version or the way you installed it, the location and existence of configuration files can vary. For example, if you’re using a containerized version of Keycloak (e.g., Docker), the configuration files might not be located in the same place as in the standalone installation.

To verify the Keycloak installation type, check your Keycloak directory structure. If you are using a Dockerized version of Keycloak, configuration will typically be managed via environment variables rather than direct file modifications like standalone.xml.

2. Location of Configuration Files

In a standalone Keycloak installation, the standalone.xml configuration file is usually located in the standalone/configuration directory of the Keycloak installation path. The typical directory structure should look like this:

/opt/keycloak/standalone/configuration/standalone.xml

If you cannot find the standalone.xml file, it might be in a different location based on your setup. To locate it, you can use the find command on Linux:

sudo find / -name standalone.xml

This will search your entire system for the standalone.xml file. If it’s not found, you may be using a different configuration method.

3. Alternative Configuration in Keycloak

If you can’t find standalone.xml, you might be using Keycloak with the keycloak.conf or another configuration file. With newer versions of Keycloak, the configuration process has shifted to using environment variables and different configuration files like keycloak.conf.

In such cases, configuration settings (like HTTP ports, database connections, etc.) are configured via environment variables or command-line arguments. You can edit the keycloak.conf file or set environment variables directly in your system or Docker container to configure your Keycloak instance.

4. Using Docker or Kubernetes

If you’re running Keycloak in Docker or Kubernetes, the configuration options will be set in the Docker container environment rather than in the standalone.xml file. In these environments, configuration changes are made through environment variables during container startup. Here’s an example of setting Keycloak configuration in a Docker command:

docker run -e KEYCLOAK_HTTP_PORT=8081 -e KEYCLOAK_HTTPS_PORT=8444 jboss/keycloak

In Kubernetes, configuration is typically handled through ConfigMaps or environment variables in the Pod definition.

5. Troubleshooting

If you’re still having trouble finding or configuring Keycloak without standalone.xml, consider the following steps:

  • Check the installation method you used (standalone installation vs. containerized).
  • Search for alternative configuration files like keycloak.conf.
  • Ensure you’re using the correct version of Keycloak that may have shifted to new configuration methods.

6. Conclusion

While standalone.xml is a commonly used configuration file in Keycloak, its absence could be due to the version or distribution you’re using. Keycloak’s configuration has evolved, especially with containerized setups, where environment variables and configuration files like keycloak.conf are used instead. By following the steps outlined above, you should be able to locate or configure Keycloak without relying on standalone.xml.


How to Change the Port of Keycloak

By default, Keycloak runs on port 8080. If this port is already occupied by another service or if you want to customize the port for Keycloak, you can easily change it by modifying its configuration. This guide walks you through the steps to change the port of Keycloak.

1. Locate Keycloak Configuration Files

Keycloak’s port configuration is located in the standalone.xml (or standalone-ha.xml for high availability) file. This file is part of the Keycloak server configuration and can be found under the standalone/configuration directory.
Can’t find standalone.xml

Navigate to the Keycloak installation directory and locate the configuration file:

cd /opt/keycloak/standalone/configuration

2. Modify the Port in the Configuration

Open the standalone.xml configuration file in a text editor:

How to Change the Port in Keycloak: Old vs. New Versions

sudo nano standalone.xml

Look for the following section in the <subsystem xmlns=”urn:jboss:domain:undertow:3.0″> block. This section contains the HTTP listener configuration:

<http-listener name="default" socket-binding="http"/>

Find the <socket-binding> tag, which usually points to port 8080:

<socket-binding name="http" port="8080"/>

Change the port attribute to the desired port number, for example:

<socket-binding name="http" port="9090"/>

Save and close the file after editing.

3. Update the Keycloak Bindings

If you’re using Keycloak with SSL, you will also need to update the SSL port binding. Look for the <https-listener> tag and change the port attribute similarly.

<https-listener name="https" socket-binding="https"/>

Modify the port as needed, for example:

<https-listener name="https" socket-binding="8443"/>

Additionally, update the associated <socket-binding> tag:

<socket-binding name="https" port="8443"/>

4. Restart Keycloak

After changing the configuration, restart the Keycloak server to apply the changes:

sudo systemctl restart keycloak

5. Verify the Change

Once Keycloak has restarted, it should be accessible at the new port. Open your browser and navigate to:

http://localhost:9090

You should see the Keycloak login page or admin console (depending on your setup) at the new port.

6. Troubleshooting

If you encounter issues after changing the port, consider the following checks:

  • Ensure the new port is open and not blocked by any firewall or network security settings.
  • Check for any other services that may be using the same port.
  • Verify Keycloak’s logs for any errors related to port binding.

7. Conclusion

Changing the port of Keycloak is a simple process and can help avoid port conflicts or meet specific requirements. By following the steps above, you can easily customize the port settings of your Keycloak instance and ensure smooth operation behind your desired port configuration.