mirror of
https://github.com/TriliumNext/Trilium.git
synced 2025-12-10 21:07:05 -06:00
docs(server/proxy): breaking change in Traefik 3.6.4
This commit is contained in:
parent
4eca8a5640
commit
036f8e49a4
@ -1,6 +1,10 @@
|
|||||||
entryPoints:
|
entryPoints:
|
||||||
web:
|
web:
|
||||||
address: ":8090"
|
address: ":8090"
|
||||||
|
http:
|
||||||
|
encodedCharacters:
|
||||||
|
allowEncodedSlash: true
|
||||||
|
allowEncodedHash: true
|
||||||
|
|
||||||
providers:
|
providers:
|
||||||
file:
|
file:
|
||||||
|
|||||||
2
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Collections/Calendar.html
generated
vendored
2
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Collections/Calendar.html
generated
vendored
@ -216,7 +216,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><code>#calendar:color</code>
|
<td><code>#calendar:color</code>
|
||||||
</td>
|
</td>
|
||||||
<td><strong>❌️ Removed since v0.100.0. Use</strong> <code>**#color**</code> <strong>instead.</strong>
|
<td><strong>❌️ Removed since v0.100.0. Use</strong> <code>**#color**</code> <strong>instead.</strong>
|
||||||
<br>
|
<br>
|
||||||
<br>Similar to <code>#color</code>, but applies the color only for the event
|
<br>Similar to <code>#color</code>, but applies the color only for the event
|
||||||
in the calendar and not for other places such as the note tree.</td>
|
in the calendar and not for other places such as the note tree.</td>
|
||||||
|
|||||||
@ -1,5 +1,24 @@
|
|||||||
<p>Configure Traefik proxy and HTTPS. See <a href="https://github.com/TriliumNext/Trilium/issues/7768#issuecomment-3539165814">#7768</a> for
|
<p>The goal of this article is to configure Traefik proxy and HTTPS. See
|
||||||
reference</p>
|
<a
|
||||||
|
href="https://github.com/TriliumNext/Trilium/issues/7768#issuecomment-3539165814">#7768</a>for reference.</p>
|
||||||
|
<h2>Breaking change in Traefik 3.6.4</h2>
|
||||||
|
<p>Traefik 3.6.4 introduced a <a href="https://doc.traefik.io/traefik/migrate/v3/#encoded-characters-in-request-path">breaking change</a> regarding
|
||||||
|
how percent-encoded characters are handled in URLs. More specifically some
|
||||||
|
URLs used by Trilium (such as <code spellcheck="false">search/%23workspace%20%23!template</code>)
|
||||||
|
are automatically rejected by Traefik, resulting in HTTP 400 errors.</p>
|
||||||
|
<p>To solve this, the Traefik <a href="https://doc.traefik.io/traefik/getting-started/configuration-overview/#the-install-configuration"><strong>static</strong> configuration</a> must
|
||||||
|
be modified in order to allow those characters:</p><pre><code class="language-text-x-yaml">entryPoints:
|
||||||
|
web:
|
||||||
|
http:
|
||||||
|
encodedCharacters:
|
||||||
|
allowEncodedSlash: true
|
||||||
|
allowEncodedHash: true</code></pre>
|
||||||
|
<aside class="admonition tip">
|
||||||
|
<p>If you still have issues, depending on how Trilium is used (especially
|
||||||
|
regarding search), you might need to enable more encoded character groups.
|
||||||
|
For more information, see <a href="https://github.com/TriliumNext/Trilium/issues/7968">the relevant GitHub issue</a>;
|
||||||
|
feel free to report your findings.</p>
|
||||||
|
</aside>
|
||||||
<h3>Build the docker-compose file</h3>
|
<h3>Build the docker-compose file</h3>
|
||||||
<p>Setting up Traefik as reverse proxy requires setting the following labels:</p><pre><code class="language-text-x-yaml"> labels:
|
<p>Setting up Traefik as reverse proxy requires setting the following labels:</p><pre><code class="language-text-x-yaml"> labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
@ -16,8 +35,8 @@
|
|||||||
- traefik.http.middlewares.trilium-headers.headers.customrequestheaders.X-Forwarded-Proto=https</code></pre>
|
- traefik.http.middlewares.trilium-headers.headers.customrequestheaders.X-Forwarded-Proto=https</code></pre>
|
||||||
<h3>Setup needed environment variables</h3>
|
<h3>Setup needed environment variables</h3>
|
||||||
<p>After setting up a reverse proxy, make sure to configure the <a class="reference-link"
|
<p>After setting up a reverse proxy, make sure to configure the <a class="reference-link"
|
||||||
href="#root/_help_LLzSMXACKhUs">[missing note]</a>.</p>
|
href="#root/_help_LLzSMXACKhUs">Trusted proxy</a>.</p>
|
||||||
<h3>Example <code>docker-compose.yaml</code></h3><pre><code class="language-text-x-yaml">services:
|
<h3>Example <code spellcheck="false">docker-compose.yaml</code></h3><pre><code class="language-text-x-yaml">services:
|
||||||
trilium:
|
trilium:
|
||||||
image: triliumnext/trilium
|
image: triliumnext/trilium
|
||||||
container_name: trilium
|
container_name: trilium
|
||||||
|
|||||||
@ -1,33 +1,28 @@
|
|||||||
<p>Launch bar widgets are a subset of <a class="reference-link" href="#root/pOsGYCXsbNQG/CdNpE2pqjmI6/yIhgI5H7A2Sm/_help_MgibgPcfeuGz">Custom Widgets</a> that
|
<p>Launch bar widgets are a subset of <a class="reference-link" href="#root/_help_MgibgPcfeuGz">Custom Widgets</a> that
|
||||||
can be used to render custom buttons and widgets inside the <a class="reference-link"
|
can be used to render custom buttons and widgets inside the <a class="reference-link"
|
||||||
href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/Vc8PjrjAGuOp/_help_xYmIYSP6wE3F">Launch Bar</a>.</p>
|
href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>.</p>
|
||||||
<h2>Creating a launch bar widget</h2>
|
<h2>Creating a launch bar widget</h2>
|
||||||
<p>Unlike <a class="reference-link" href="#root/pOsGYCXsbNQG/CdNpE2pqjmI6/yIhgI5H7A2Sm/_help_MgibgPcfeuGz">Custom Widgets</a>,
|
<p>Unlike <a class="reference-link" href="#root/_help_MgibgPcfeuGz">Custom Widgets</a>,
|
||||||
the process of setting up a launch bar widget is slightly different:</p>
|
the process of setting up a launch bar widget is slightly different:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li data-list-item-id="e3111af31ab8707d93fb9e7feb1ac804d">Create a Code note of type <em>JavaScript (front-end)</em>.
|
<li>Create a Code note of type <em>JavaScript (front-end)</em>.
|
||||||
<ul>
|
<ul>
|
||||||
<li data-list-item-id="ea71ac173fc302483b5f571fd8bbd4142">The script itself uses the same concepts as <a class="reference-link"
|
<li>The script itself uses the same concepts as <a class="reference-link"
|
||||||
href="#root/pOsGYCXsbNQG/CdNpE2pqjmI6/yIhgI5H7A2Sm/_help_MgibgPcfeuGz">Custom Widgets</a>,
|
href="#root/_help_MgibgPcfeuGz">Custom Widgets</a>, including the use of a <code>NoteContextAwareWidget</code> or
|
||||||
including the use of a <code spellcheck="false">NoteContextAwareWidget</code> or
|
a <code>BasicWidget</code> (according to needs).</li>
|
||||||
a <code spellcheck="false">BasicWidget</code> (according to needs).</li>
|
<li>As examples, see <a class="reference-link" href="#root/_help_IPArqVfDQ4We">Note Title Widget</a> and
|
||||||
<li
|
|
||||||
data-list-item-id="e06c05a8bdfaa11ad4214ccc5405f50cc">As examples, see <a class="reference-link" href="#root/pOsGYCXsbNQG/CdNpE2pqjmI6/yIhgI5H7A2Sm/4Gn3psZKsfSm/_help_IPArqVfDQ4We">Note Title Widget</a> and
|
|
||||||
<a
|
<a
|
||||||
class="reference-link" href="#root/pOsGYCXsbNQG/CdNpE2pqjmI6/yIhgI5H7A2Sm/4Gn3psZKsfSm/_help_gcI7RPbaNSh3">Analog Watch</a>.</li>
|
class="reference-link" href="#root/_help_gcI7RPbaNSh3">Analog Watch</a>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li data-list-item-id="e31368cfb0655cfc527347b9dcbfa7d17">Don't set <code spellcheck="false">#widget</code>, as that attribute is
|
<li>Don't set <code>#widget</code>, as that attribute is reserved for
|
||||||
reserved for <a class="reference-link" href="#root/pOsGYCXsbNQG/CdNpE2pqjmI6/yIhgI5H7A2Sm/_help_MgibgPcfeuGz">Custom Widgets</a>.</li>
|
<a
|
||||||
<li
|
class="reference-link" href="#root/_help_MgibgPcfeuGz">Custom Widgets</a>.</li>
|
||||||
data-list-item-id="e26f51e3ad87cebfa6c72504dab691804">In the <a class="reference-link" href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/Vc8PjrjAGuOp/_help_x3i7MxGccDuM">Global menu</a>,
|
<li>In the <a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>,
|
||||||
select <em>Configure launchbar</em>.</li>
|
select <em>Configure launchbar</em>.</li>
|
||||||
<li data-list-item-id="ebd6a4fab8be5557cb958d6bf87b65d84">In the <em>Visible Launchers</em> section, select <em>Add a custom widget</em>.</li>
|
<li>In the <em>Visible Launchers</em> section, select <em>Add a custom widget</em>.</li>
|
||||||
<li
|
<li>Give the newly created launcher a name (and optionally a name).</li>
|
||||||
data-list-item-id="ef1cb61670f561ad918be4f072d325bc7">Give the newly created launcher a name (and optionally a name).</li>
|
<li>In the <a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> section,
|
||||||
<li
|
modify the <em>widget</em> field to point to the newly created note.</li>
|
||||||
data-list-item-id="e0b141f895a6a9973f31a71ba99471a49">In the <a class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/zEY4DaJG4YT5/_help_OFXdgB2nNk1F">Promoted Attributes</a> section,
|
<li>Refresh the UI.</li>
|
||||||
modify the <em>widget</em> field to point to the newly created note.</li>
|
|
||||||
<li
|
|
||||||
data-list-item-id="e5218927546ad96070b3028534e93131b">Refresh the UI. </li>
|
|
||||||
</ol>
|
</ol>
|
||||||
@ -4,7 +4,7 @@
|
|||||||
</figure>
|
</figure>
|
||||||
<p>This is a more intricate example of a basic widget, which displays an
|
<p>This is a more intricate example of a basic widget, which displays an
|
||||||
analog watch in the launch bar. Unlike note-context aware widgets, basic
|
analog watch in the launch bar. Unlike note-context aware widgets, basic
|
||||||
widgets don't react to note navigation.</p><pre><code class="language-application-javascript-env-frontend">const TPL = `
|
widgets don't react to note navigation.</p><pre><code class="language-application-javascript-env-backend">const TPL = `
|
||||||
<div class="analog-watch" style="
|
<div class="analog-watch" style="
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 38px;
|
height: 38px;
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
currently opened note and refreshes automatically as the user navigates
|
currently opened note and refreshes automatically as the user navigates
|
||||||
through the notes.</p>
|
through the notes.</p>
|
||||||
<p>In this example, the title of the note is displayed. It works best on
|
<p>In this example, the title of the note is displayed. It works best on
|
||||||
the <a href="#root/pOsGYCXsbNQG/gh7bpGYxajRS/Vc8PjrjAGuOp/_help_x0JgW8UqGXvq">horizontal layout</a>.</p><pre><code class="language-application-javascript-env-frontend">const TPL = `\
|
the <a href="#root/_help_x0JgW8UqGXvq">horizontal layout</a>.</p><pre><code class="language-application-javascript-env-backend">const TPL = `\
|
||||||
<div style="
|
<div style="
|
||||||
display: flex;
|
display: flex;
|
||||||
height: 53px;
|
height: 53px;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# Documentation
|
# Documentation
|
||||||
There are multiple types of documentation for Trilium:<img class="image-style-align-right" src="api/images/hOX4EFIkAwyJ/Documentation_image.png" width="205" height="162">
|
There are multiple types of documentation for Trilium:<img class="image-style-align-right" src="api/images/tZh9T30Ojdsq/Documentation_image.png" width="205" height="162">
|
||||||
|
|
||||||
* The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing <kbd>F1</kbd>.
|
* The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing <kbd>F1</kbd>.
|
||||||
* The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers.
|
* The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers.
|
||||||
|
|||||||
98
docs/User Guide/!!!meta.json
vendored
98
docs/User Guide/!!!meta.json
vendored
@ -15662,6 +15662,48 @@
|
|||||||
"type": "text",
|
"type": "text",
|
||||||
"mime": "text/html",
|
"mime": "text/html",
|
||||||
"attributes": [
|
"attributes": [
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "MgibgPcfeuGz",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "xYmIYSP6wE3F",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "IPArqVfDQ4We",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "gcI7RPbaNSh3",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "x3i7MxGccDuM",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "OFXdgB2nNk1F",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 60
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "label",
|
"type": "label",
|
||||||
"name": "iconClass",
|
"name": "iconClass",
|
||||||
@ -15675,48 +15717,6 @@
|
|||||||
"value": "launch-bar-widgets",
|
"value": "launch-bar-widgets",
|
||||||
"isInheritable": false,
|
"isInheritable": false,
|
||||||
"position": 40
|
"position": 40
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation",
|
|
||||||
"name": "internalLink",
|
|
||||||
"value": "MgibgPcfeuGz",
|
|
||||||
"isInheritable": false,
|
|
||||||
"position": 50
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation",
|
|
||||||
"name": "internalLink",
|
|
||||||
"value": "xYmIYSP6wE3F",
|
|
||||||
"isInheritable": false,
|
|
||||||
"position": 60
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation",
|
|
||||||
"name": "internalLink",
|
|
||||||
"value": "x3i7MxGccDuM",
|
|
||||||
"isInheritable": false,
|
|
||||||
"position": 70
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation",
|
|
||||||
"name": "internalLink",
|
|
||||||
"value": "OFXdgB2nNk1F",
|
|
||||||
"isInheritable": false,
|
|
||||||
"position": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation",
|
|
||||||
"name": "internalLink",
|
|
||||||
"value": "IPArqVfDQ4We",
|
|
||||||
"isInheritable": false,
|
|
||||||
"position": 90
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation",
|
|
||||||
"name": "internalLink",
|
|
||||||
"value": "gcI7RPbaNSh3",
|
|
||||||
"isInheritable": false,
|
|
||||||
"position": 100
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"format": "markdown",
|
"format": "markdown",
|
||||||
@ -15741,6 +15741,13 @@
|
|||||||
"type": "text",
|
"type": "text",
|
||||||
"mime": "text/html",
|
"mime": "text/html",
|
||||||
"attributes": [
|
"attributes": [
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "x0JgW8UqGXvq",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 10
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "label",
|
"type": "label",
|
||||||
"name": "shareAlias",
|
"name": "shareAlias",
|
||||||
@ -15754,13 +15761,6 @@
|
|||||||
"value": "note-title-widget",
|
"value": "note-title-widget",
|
||||||
"isInheritable": false,
|
"isInheritable": false,
|
||||||
"position": 40
|
"position": 40
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation",
|
|
||||||
"name": "internalLink",
|
|
||||||
"value": "x0JgW8UqGXvq",
|
|
||||||
"isInheritable": false,
|
|
||||||
"position": 50
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"format": "markdown",
|
"format": "markdown",
|
||||||
|
|||||||
@ -1,5 +1,23 @@
|
|||||||
# Traefik
|
# Traefik
|
||||||
Configure Traefik proxy and HTTPS. See [#7768](https://github.com/TriliumNext/Trilium/issues/7768#issuecomment-3539165814) for reference
|
The goal of this article is to configure Traefik proxy and HTTPS. See [#7768](https://github.com/TriliumNext/Trilium/issues/7768#issuecomment-3539165814) for reference.
|
||||||
|
|
||||||
|
## Breaking change in Traefik 3.6.4
|
||||||
|
|
||||||
|
Traefik 3.6.4 introduced a [breaking change](https://doc.traefik.io/traefik/migrate/v3/#encoded-characters-in-request-path) regarding how percent-encoded characters are handled in URLs. More specifically some URLs used by Trilium (such as `search/%23workspace%20%23!template`) are automatically rejected by Traefik, resulting in HTTP 400 errors.
|
||||||
|
|
||||||
|
To solve this, the Traefik [**static** configuration](https://doc.traefik.io/traefik/getting-started/configuration-overview/#the-install-configuration) must be modified in order to allow those characters:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
entryPoints:
|
||||||
|
web:
|
||||||
|
http:
|
||||||
|
encodedCharacters:
|
||||||
|
allowEncodedSlash: true
|
||||||
|
allowEncodedHash: true
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> If you still have issues, depending on how Trilium is used (especially regarding search), you might need to enable more encoded character groups. For more information, see [the relevant GitHub issue](https://github.com/TriliumNext/Trilium/issues/7968); feel free to report your findings.
|
||||||
|
|
||||||
### Build the docker-compose file
|
### Build the docker-compose file
|
||||||
|
|
||||||
@ -23,7 +41,7 @@ Setting up Traefik as reverse proxy requires setting the following labels:
|
|||||||
|
|
||||||
### Setup needed environment variables
|
### Setup needed environment variables
|
||||||
|
|
||||||
After setting up a reverse proxy, make sure to configure the <a class="reference-link" href="Trusted%20proxy.md">[missing note]</a>.
|
After setting up a reverse proxy, make sure to configure the <a class="reference-link" href="Trusted%20proxy.md">Trusted proxy</a>.
|
||||||
|
|
||||||
### Example `docker-compose.yaml`
|
### Example `docker-compose.yaml`
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user