Skip to content

Commit a056853

Browse files
authored
docs: share the publicly exposed directory layout structure and mount points (#272)
1 parent cbbbd7d commit a056853

1 file changed

Lines changed: 47 additions & 3 deletions

File tree

docs/user-guide/src/directory-layout-and-volumes.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,51 @@ Here’s how this layout benefits you:
1818
- 🔌 **Handle plugins and their data cleanly.**<br/>
1919
Whether adding or updating plugins, the directory layout lets you mount plugins and their data separately, keeping management natural and organized.
2020

21-
Because these important piecesconfigurations, worlds, and pluginsare each neatly separated, you can choose exactly what you want to persist or modify. This
22-
setup simplifies backups, migrations, and even automation, letting you keep control without extra hassle.
21+
Because these important piecesconfigurations, worlds, and pluginsare each neatly separated, you can choose exactly what you want to persist or modify.
22+
This setup simplifies backups, migrations, and even automation, letting you keep control without extra hassle.
2323

24-
In short: the directory layout is designed with *you* in mind, to make managing your server easier, more predictable, and flexible as your needs evolve.
24+
🧠 **In short:** the directory layout is designed with *you* in mind, to make managing your server easier, more predictable, and flexible as your needs evolve.
25+
26+
## 🗂️ Directory Layout
27+
28+
This image provides a clean, well-structured directory layout. You can mount volumes at specific paths depending on your needs.
29+
30+
The directory structure is as follows:
31+
32+
/data
33+
├── config/ → Configuration overrides
34+
├── worlds/ → World saves (e.g., "world", "world_nether", "world_the_end", etc.)
35+
└── plugins/ → PaperMC plugins (".jar" files and their data)
36+
37+
### 📌 Directory Details
38+
39+
- **`/data/`**<br/>
40+
This is the root working directory — everything persistent or user-facing lives under it.<br/>
41+
If you want to back up or inspect the full server state, this is the top-level directory to use.<br/>
42+
However, for most use cases, it's better to mount its subdirectories (`config/`, `worlds/`, `plugins/`) individually and/or populate them statically by
43+
building your own OCI image based on this one. This keeps things modular, maintainable, and easier to manage.
44+
45+
- **`/data/config/`**<br/>
46+
Place configuration override files here.<br/>
47+
This is useful for advanced customization when environment variables aren't enough.<br/>
48+
For best results, define these files statically in your own custom OCI image based on this one.<br/>
49+
More details available [here](configuration-files.md).
50+
51+
- **`/data/worlds/`**<br/>
52+
This directory contains all world saves. <br/>
53+
By default, it includes `world`, `world_nether`, and `world_the_end`, but any custom worlds you configure will also appear here, either in addition to or in
54+
place of the defaults.<br/>
55+
Mount this directory to persist or import your game worlds.
56+
57+
- **`/data/plugins/`**<br/>
58+
Stores all plugin `.jar` files and their corresponding data folders.<br/>
59+
Mount this directory if you need to retain plugin state or manage updates dynamically.<br/>
60+
For greater control and reproducibility, it's recommended to include plugin JARs and configuration files directly in a custom OCI image.
61+
Use volume mounts when plugin data needs to persist across runs.
62+
63+
!!! note "🧩 Mixing Volumes and Static Files"
64+
65+
You can mix and match volumes and statically defined files to tailor the server layout to your needs.
66+
For example, you can mount volumes for dynamic data like world saves, while embedding configuration files and plugins directly into
67+
a custom OCI image based on this one.
68+
This hybrid approach offers both flexibility and reproducibility.

0 commit comments

Comments
 (0)