Skip to content

Commit 265f942

Browse files
committed
fix: adding a server guide on installation location / layout
closes: #32110 Signed-off-by: Steve Hawkins <[email protected]>
1 parent 553b891 commit 265f942

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<#import "/templates/guide.adoc" as tmpl>
2+
<#import "/templates/links.adoc" as links>
3+
4+
<@tmpl.guide
5+
title="Directory Structure"
6+
summary="Understand the purpose of the directories under the installation root"
7+
includedOptions="">
8+
9+
== Installation Locations
10+
11+
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.
12+
13+
`/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"/>.
14+
15+
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`
16+
17+
== Directory Structure
18+
19+
Under the {project_name} install root there exists a number of folders:
20+
21+
* *bin/* - contains all the shell scripts for the server, including `kc.sh|bat`, `kcadm.sh|bat`, and `kcreg.sh|bat`
22+
** *client/* - used internally
23+
* *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.
24+
** *truststores/* - default path used by the `truststore-paths` option - see <@links.server id="keycloak-truststore"/>
25+
* *data/* - directory for the server to store runtime information, such as transaction logs
26+
** *logs/* - default directory for file logging - see <@links.server id="logging"/>
27+
* *lib/* - used internally
28+
* *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.
29+
* *themes/* - directory for customizations to the Admin Console - see https://www.keycloak.org/docs/latest/server_development/#_themes[Developing Themes]
30+
31+
</@tmpl.guide>

docs/guides/server/pinned-guides

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
configuration
22
configuration-production
33
bootstrap-admin-recovery
4+
directory-structure
45
containers
56
enabletls
67
hostname

quarkus/dist/src/main/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Keycloak
22
========
33

4+
To understand the contents of your Keycloak installation, see the [directory structure guide](https://www.keycloak.org/server/directory-structure).
5+
46
To get help configuring Keycloak via the CLI, run:
57

68
on Linux/Unix:

0 commit comments

Comments
 (0)