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
**Warning:** Built files may include hashed filenames (e.g., `assets/index-abc123.js`) that change with each build. Overriding these requires matching the exact filename from your build and is not recommended for most users.
171
+
172
+
---
173
+
174
+
## Defaulting Language
9
175
Default language selection via the `SYSTEM_DEFAULTLOCALE` environment variable. Accepted values include `de-DE`, `fr-FR`, `ar-AR` and all other languages codes that are within Stirling-PDFs current list.
10
176
11
-
###Google Search Visibility (robots.txt)
177
+
## Google Search Visibility (robots.txt)
12
178
Enable or disable search engine visibility with the `ALLOW_GOOGLE_VISIBILITY` variable.
13
179
14
-
###Custom Root path
180
+
## Custom Root path
15
181
Redirect the root path of the application using `APP_ROOT_PATH`.
16
182
This is for changing websites like stirlingtools.com to instead host the interface at stirlingtools.com/`APP_ROOT_PATH` like stirlingtools.com/demo
17
183
18
-
###Enable/Disable Analytics
184
+
## Enable/Disable Analytics
19
185
Analytics can be enabled/disabled with ``SYSTEM_ENABLEANALYTICS`` or
Copy file name to clipboardExpand all lines: docs/Configuration/UI Customisation.md
+29-21Lines changed: 29 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,11 +20,11 @@ These settings (in Settings.yml) control system behavior and customization capab
20
20
-`showUpdate` - Controls whether update notifications are displayed
21
21
-`showUpdateOnlyAdmin` - When true, restricts update notifications to admin users only (requires `showUpdate: true`)
22
22
23
-
## V2.0 UI Customization Notes
23
+
## UI Customization Options
24
24
25
-
### In-App Settings Management (V2.0+)
25
+
### In-App Settings Management (Recommended)
26
26
27
-
**New in V2.0**: If you have login enabled and are logged in as an admin, you can now configure all settings directly in the application through the **Settings** menu. No need to edit `settings.yml` manually!
27
+
If you have login enabled and are logged in as an admin, you can configure all settings directly in the application through the **Settings** menu. No need to edit `settings.yml` manually!
28
28
29
29
**How to access:**
30
30
1. Enable login: `SECURITY_ENABLELOGIN=true`
@@ -33,36 +33,44 @@ These settings (in Settings.yml) control system behavior and customization capab
33
33
4. Configure all options through the UI
34
34
5. Changes apply immediately
35
35
36
-
This is the recommended way to manage settings in V2.0 for production deployments.
36
+
**Available customizations:**
37
+
- Application name and branding
38
+
- Update notification settings
39
+
- Language settings
40
+
- Theme preferences
41
+
- Logo style (classic/modern)
42
+
- Custom logo upload
37
43
38
-
### Template Customization Changes
44
+
### Static File Overrides (Advanced)
39
45
40
-
**Important**: The V1 `customFiles/` folder system for overriding templates has been replaced with a new customization approach due to the UI framework change in V2.0.
46
+
For customization beyond the built-in settings, you can override static files like logos, favicons, and images:
41
47
42
-
For advanced UI customization in V2.0:
43
-
1. Clone or download the repository
44
-
2. Modify the React components in the `frontend/src` directory
45
-
3. Build the frontend: `cd frontend && npm install && npm run build`
46
-
4. Volume mount the `frontend/dist` folder into your Docker container to replace the built-in frontend files
47
-
48
-
Example docker-compose with custom frontend:
49
48
```yaml
50
49
services:
51
50
stirling-pdf:
52
51
image: stirlingtools/stirling-pdf:latest
53
52
ports:
54
53
- '8080:8080'
55
54
volumes:
56
-
- ./frontend/dist:/app/frontend/dist # Mount your custom frontend
57
-
environment:
58
-
- MODE=BOTH
55
+
- ./customFiles:/customFiles:rw
59
56
```
60
57
61
-
The following customizations work without rebuilding:
62
-
- Application name and branding (via environment variables or in-app settings)
63
-
- Update notification settings (via in-app settings if admin)
64
-
- Language settings (via in-app settings)
65
-
- Theme preferences (via in-app settings)
58
+
Then place your custom files in `customFiles/static/` matching the path structure. Common examples:
#### Option 2: Static File Overrides (Same Concept as V1, Different Paths)
69
74
70
-
For customizations beyond built-in settings, you can mount and edit static files:
75
+
**✅ Still supported in V2!** The static file override system works the same way conceptually - place files in `customFiles/static/` to override defaults.
71
76
72
-
**Steps:**
73
-
1. Mount the `/customFiles/static/` directory in Docker
74
-
2. Add your custom static files (images, favicons, etc.)
75
-
3. Reference them in your HTML/settings
76
-
4. Restart container to apply changes
77
+
**How it works:**
78
+
1. V2 checks `customFiles/static/`**first** for any requested file
79
+
2. If not found, falls back to the bundled static files
80
+
3. This lets you override logos, CSS, HTML, JavaScript, or any other static asset
The file paths are different because V2 serves the **compiled React app** instead of Thymeleaf templates. See [Other Customisations - Static File Overrides](../Configuration/Other%20Customisations.md#static-file-overrides) for:
93
+
- How to determine the correct file paths in V2
94
+
- Examples of common customizations
95
+
- Understanding the build output structure
96
+
84
97
**Use cases:**
85
-
- Custom favicon
86
-
- Custom images/logos
87
-
- Static assets
98
+
- Custom favicon or logo
99
+
- Modified `index.html` for advanced branding
100
+
- Custom CSS to override styles
101
+
- Additional static assets
88
102
89
103
#### Option 3: Fork the Frontend (Advanced)
90
104
@@ -103,21 +117,25 @@ For complete UI customization:
103
117
104
118
### What No Longer Works
105
119
106
-
These V1 customization patterns are **no longer supported:**
120
+
These V1 **Thymeleaf template features** no longer work because V2 uses React (client-side) instead of Thymeleaf (server-side):
107
121
108
122
```html
109
-
<!-- V1: Inject custom navbar (NO LONGER WORKS) -->
123
+
<!-- V1: Thymeleaf fragment injection (NO LONGER WORKS) -->
<!-- V1: Server-side variables (NO LONGER WORKS) -->
131
+
<!-- V1: Thymeleaf variables (NO LONGER WORKS) -->
118
132
<span th:text="${appName}"></span>
119
133
```
120
134
135
+
**Why they don't work:** These are Thymeleaf-specific features that require server-side HTML generation. V2 uses React which compiles to static JavaScript that runs in the browser.
136
+
137
+
**Alternative:** You can still customize the **output** by overriding the built static files in `customFiles/static/`, but you'll be editing the compiled HTML/CSS/JS instead of Thymeleaf templates.
0 commit comments