Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions docs/guides/server/directory-structure.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<#import "/templates/guide.adoc" as tmpl>
<#import "/templates/links.adoc" as links>

<@tmpl.guide
title="Directory Structure"
summary="Understand the purpose of the directories under the installation root"
includedOptions="">

== Installation Locations

If you are installing from a zip file then by default there will be an install root directory of `{archivebasename}-{version}`, which can be created anywhere you choose on your filesystem.

`/opt/keycloak` is the root install location for the server in all containerized usage shown for {project_name} including <@links.server id="containers"/>, <@links.gettingstarted id="getting-started-docker"/>, <@links.gettingstarted id="getting-started-podman"/>, <@links.gettingstarted id="getting-started-kubernetes"/>, and <@links.gettingstarted id="getting-started-openshift"/>.

NOTE: in the rest of documentation relative paths are understood to be relative to the install root - e.g. `conf/file.xml` means `<install root>/conf/file.xml`

== Directory Structure

Under the {project_name} install root there exists a number of folders:

* *bin/* - contains all the shell scripts for the server, including `kc.sh|bat`, `kcadm.sh|bat`, and `kcreg.sh|bat`
** *client/* - used internally
* *conf/* - directory used for configuration files, including `keycloak.conf` - see <@links.server id="configuration"/>. Many options for specifying a configuration file expect paths relative to this directory.
** *truststores/* - default path used by the `truststore-paths` option - see <@links.server id="keycloak-truststore"/>
* *data/* - directory for the server to store runtime information, such as transaction logs
** *logs/* - default directory for file logging - see <@links.server id="logging"/>
* *lib/* - used internally
* *providers/* - directory for user provided dependencies - see <@links.server id="configuration-provider"/> for extending the server and <@links.server id="db"/> for an example of add a JDBC driver.
* *themes/* - directory for customizations to the Admin Console - see https://www.keycloak.org/docs/latest/server_development/#_themes[Developing Themes]

</@tmpl.guide>
1 change: 1 addition & 0 deletions docs/guides/server/pinned-guides
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
configuration
configuration-production
bootstrap-admin-recovery
directory-structure
containers
enabletls
hostname
Expand Down
2 changes: 2 additions & 0 deletions quarkus/dist/src/main/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Keycloak
========

To understand the contents of your Keycloak installation, see the [directory structure guide](https://www.keycloak.org/server/directory-structure).

To get help configuring Keycloak via the CLI, run:

on Linux/Unix:
Expand Down