You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/user-guide/src/directory-layout-and-volumes.md
+47-3Lines changed: 47 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,51 @@ Here’s how this layout benefits you:
18
18
- 🔌 **Handle plugins and their data cleanly.**<br/>
19
19
Whether adding or updating plugins, the directory layout lets you mount plugins and their data separately, keeping management natural and organized.
20
20
21
-
Because these important pieces—configurations, worlds, and plugins—are 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 pieces — configurations, worlds, and plugins — are 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.
23
23
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