From ef225704c37f7f12ca22f40a00250462d70de109 Mon Sep 17 00:00:00 2001
From: Elian Doran Configuration values are loaded in the following order of precedence (highest
to lowest):
-
Environment Variable Patterns
@@ -22,322 +23,338 @@
Where:
SECTION
is the INI section name in UPPERCASEKEY
is the camelCase configuration key converted to UPPERCASE
+ SECTION
is the INI section name in UPPERCASEKEY
is the camelCase configuration key converted to UPPERCASE
(e.g., instanceName
→ INSTANCENAME
)Additionally, shorter aliases are available for common configurations (see Alternative Variables section below).
Environment Variable | -Type | -Default | -Description | -
---|---|---|---|
TRILIUM_GENERAL_INSTANCENAME
- |
- string | -"" | -Instance name for API identification | -
TRILIUM_GENERAL_NOAUTHENTICATION
- |
- boolean | -false | -Disable authentication (server only) | -
TRILIUM_GENERAL_NOBACKUP
- |
- boolean | -false | -Disable automatic backups | -
TRILIUM_GENERAL_NODESKTOPICON
- |
- boolean | -false | -Disable desktop icon creation | -
TRILIUM_GENERAL_READONLY
- |
- boolean | -false | -Enable read-only mode | -
Environment Variable | +Type | +Default | +Description | +
---|---|---|---|
TRILIUM_GENERAL_INSTANCENAME
+ |
+ string | +"" | +Instance name for API identification | +
TRILIUM_GENERAL_NOAUTHENTICATION
+ |
+ boolean | +false | +Disable authentication (server only) | +
TRILIUM_GENERAL_NOBACKUP
+ |
+ boolean | +false | +Disable automatic backups | +
TRILIUM_GENERAL_NODESKTOPICON
+ |
+ boolean | +false | +Disable desktop icon creation | +
TRILIUM_GENERAL_READONLY
+ |
+ boolean | +false | +Enable read-only mode | +
Environment Variable | -Type | -Default | -Description | -
---|---|---|---|
TRILIUM_NETWORK_HOST
- |
- string | -"0.0.0.0" | -Server host binding | -
TRILIUM_NETWORK_PORT
- |
- string | -"3000" | -Server port | -
TRILIUM_NETWORK_HTTPS
- |
- boolean | -false | -Enable HTTPS | -
TRILIUM_NETWORK_CERTPATH
- |
- string | -"" | -SSL certificate path | -
TRILIUM_NETWORK_KEYPATH
- |
- string | -"" | -SSL key path | -
TRILIUM_NETWORK_TRUSTEDREVERSEPROXY
- |
- boolean/string | -false | -Reverse proxy trust settings | -
TRILIUM_NETWORK_CORSALLOWORIGIN
- |
- string | -"" | -CORS allowed origins | -
TRILIUM_NETWORK_CORSALLOWMETHODS
- |
- string | -"" | -CORS allowed methods | -
TRILIUM_NETWORK_CORSALLOWHEADERS
- |
- string | -"" | -CORS allowed headers | -
Environment Variable | +Type | +Default | +Description | +
---|---|---|---|
TRILIUM_NETWORK_HOST
+ |
+ string | +"0.0.0.0" | +Server host binding | +
TRILIUM_NETWORK_PORT
+ |
+ string | +"3000" | +Server port | +
TRILIUM_NETWORK_HTTPS
+ |
+ boolean | +false | +Enable HTTPS | +
TRILIUM_NETWORK_CERTPATH
+ |
+ string | +"" | +SSL certificate path | +
TRILIUM_NETWORK_KEYPATH
+ |
+ string | +"" | +SSL key path | +
TRILIUM_NETWORK_TRUSTEDREVERSEPROXY
+ |
+ boolean/string | +false | +Reverse proxy trust settings | +
TRILIUM_NETWORK_CORSALLOWORIGIN
+ |
+ string | +"" | +CORS allowed origins | +
TRILIUM_NETWORK_CORSALLOWMETHODS
+ |
+ string | +"" | +CORS allowed methods | +
TRILIUM_NETWORK_CORSALLOWHEADERS
+ |
+ string | +"" | +CORS allowed headers | +
Environment Variable | -Type | -Default | -Description | -
---|---|---|---|
TRILIUM_SESSION_COOKIEMAXAGE
- |
- integer | -1814400 | -Session cookie max age in seconds (21 days) | -
Environment Variable | +Type | +Default | +Description | +
---|---|---|---|
TRILIUM_SESSION_COOKIEMAXAGE
+ |
+ integer | +1814400 | +Session cookie max age in seconds (21 days) | +
Environment Variable | -Type | -Default | -Description | -
---|---|---|---|
TRILIUM_SYNC_SYNCSERVERHOST
- |
- string | -"" | -Sync server host URL | -
TRILIUM_SYNC_SYNCSERVERTIMEOUT
- |
- string | -"120000" | -Sync server timeout in milliseconds | -
TRILIUM_SYNC_SYNCPROXY
- |
- string | -"" | -Sync proxy URL | -
Environment Variable | +Type | +Default | +Description | +
---|---|---|---|
TRILIUM_SYNC_SYNCSERVERHOST
+ |
+ string | +"" | +Sync server host URL | +
TRILIUM_SYNC_SYNCSERVERTIMEOUT
+ |
+ string | +"120000" | +Sync server timeout in milliseconds | +
TRILIUM_SYNC_SYNCPROXY
+ |
+ string | +"" | +Sync proxy URL | +
Environment Variable | -Type | -Default | -Description | -
---|---|---|---|
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL
- |
- string | -"" | -OAuth/OpenID base URL | -
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID
- |
- string | -"" | -OAuth client ID | -
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET
- |
- string | -"" | -OAuth client secret | -
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL
- |
- string | -"https://accounts.google.com" | -OAuth issuer base URL | -
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME
- |
- string | -"Google" | -OAuth issuer display name | -
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON
- |
- string | -"" | -OAuth issuer icon URL | -
Environment Variable | +Type | +Default | +Description | +
---|---|---|---|
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL
+ |
+ string | +"" | +OAuth/OpenID base URL | +
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID
+ |
+ string | +"" | +OAuth client ID | +
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET
+ |
+ string | +"" | +OAuth client secret | +
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL
+ |
+ string | +"https://accounts.google.com" | +OAuth issuer base URL | +
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME
+ |
+ string | +"Google" | +OAuth issuer display name | +
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON
+ |
+ string | +"" | +OAuth issuer icon URL | +
Environment Variable | -Type | -Default | -Description | -
---|---|---|---|
TRILIUM_LOGGING_RETENTIONDAYS
- |
- integer | -90 | -Number of days to retain log files | -
Environment Variable | +Type | +Default | +Description | +
---|---|---|---|
TRILIUM_LOGGING_RETENTIONDAYS
+ |
+ integer | +90 | +Number of days to retain log files | +
The following alternative environment variable names are also supported and work identically to their longer counterparts:
TRILIUM_NETWORK_CORS_ALLOW_ORIGIN
(alternative to TRILIUM_NETWORK_CORSALLOWORIGIN
)TRILIUM_NETWORK_CORS_ALLOW_METHODS
(alternative to TRILIUM_NETWORK_CORSALLOWMETHODS
)TRILIUM_NETWORK_CORS_ALLOW_HEADERS
(alternative to TRILIUM_NETWORK_CORSALLOWHEADERS
)TRILIUM_NETWORK_CORS_ALLOW_ORIGIN
(alternative to TRILIUM_NETWORK_CORSALLOWORIGIN
)TRILIUM_NETWORK_CORS_ALLOW_METHODS
(alternative to TRILIUM_NETWORK_CORSALLOWMETHODS
)TRILIUM_NETWORK_CORS_ALLOW_HEADERS
(alternative to TRILIUM_NETWORK_CORSALLOWHEADERS
)TRILIUM_SYNC_SERVER_HOST
(alternative to TRILIUM_SYNC_SYNCSERVERHOST
)TRILIUM_SYNC_SERVER_TIMEOUT
(alternative to TRILIUM_SYNC_SYNCSERVERTIMEOUT
)TRILIUM_SYNC_SERVER_PROXY
(alternative to TRILIUM_SYNC_SYNCPROXY
)TRILIUM_SYNC_SERVER_HOST
(alternative to TRILIUM_SYNC_SYNCSERVERHOST
)TRILIUM_SYNC_SERVER_TIMEOUT
(alternative to TRILIUM_SYNC_SYNCSERVERTIMEOUT
)TRILIUM_SYNC_SERVER_PROXY
(alternative to TRILIUM_SYNC_SYNCPROXY
)TRILIUM_OAUTH_BASE_URL
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL
)TRILIUM_OAUTH_CLIENT_ID
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID
)TRILIUM_OAUTH_CLIENT_SECRET
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET
)TRILIUM_OAUTH_ISSUER_BASE_URL
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL
)TRILIUM_OAUTH_ISSUER_NAME
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME
)TRILIUM_OAUTH_ISSUER_ICON
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON
)TRILIUM_OAUTH_BASE_URL
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL
)TRILIUM_OAUTH_CLIENT_ID
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID
)TRILIUM_OAUTH_CLIENT_SECRET
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET
)TRILIUM_OAUTH_ISSUER_BASE_URL
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL
)TRILIUM_OAUTH_ISSUER_NAME
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME
)TRILIUM_OAUTH_ISSUER_ICON
(alternative to TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON
)TRILIUM_LOGGING_RETENTION_DAYS
(alternative to TRILIUM_LOGGING_RETENTIONDAYS
)TRILIUM_LOGGING_RETENTION_DAYS
(alternative to TRILIUM_LOGGING_RETENTIONDAYS
)Boolean environment variables accept the following values:
"true"
, "1"
, 1
+ "true"
, "1"
, 1
"false"
, "0"
, 0
+ "false"
, "0"
, 0
false
+ false
Both naming patterns are fully supported and can be used interchangeably:
services:
trilium:
- image: triliumnext/notes
+ image: triliumnext/trilium
environment:
# Using full format
TRILIUM_GENERAL_INSTANCENAME: "My Trilium Instance"
diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html
index 42224af95..64ee6ff60 100644
--- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html
+++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html
@@ -3,52 +3,49 @@
href="#root/_help_zEY4DaJG4YT5">relations.
Interaction
- - To create a new note and add it to the board, press the plus button in
+
- To create a new note and add it to the board, press the plus button in
the Floating buttons.
- - Afterwards, click anywhere on the map to place it there.
- - The note will be placed as a sub-child of the map.
+ - Afterwards, click anywhere on the map to place it there.
+ - The note will be placed as a sub-child of the map.
- - An existing note can also be dragged from the An existing note can also be dragged from the Note Tree. It will be placed at the
position it's dragged on.
- - Multiple notes can also be dragged via Multiple notes can also be dragged via Multiple selection. The notes will
be positioned near the dragged position without overlapping.
- - The dragged note can be a sub-child of the map, or it can be at any arbitrary
+
- The dragged note can be a sub-child of the map, or it can be at any arbitrary
position.
- - To create a relationship, hold the mouse on the box on the right of a
+
- To create a relationship, hold the mouse on the box on the right of a
note and then:
- - Drag it over another note to create a relationship pointing from the first
+
- Drag it over another note to create a relationship pointing from the first
note to the second one.
- - Drag over the same note to create a self-referencing relationship (represented
+
- Drag over the same note to create a self-referencing relationship (represented
as a loop).
- - Once dragged, enter the name of the relationship to create. To cancel,
+
- Once dragged, enter the name of the relationship to create. To cancel,
simply dismiss the dialog or press Esc.
- - To open a note, either click on the note (opening it in the current view)
+
- To open a note, either click on the note (opening it in the current view)
or use the right click menu to open in a new tab.
- - To edit the title of a note or to delete it (either from the map, or delete
+
- To edit the title of a note or to delete it (either from the map, or delete
it completely), right click the note.
- - To delete a relationship, right click it and select the corresponding
+
- To delete a relationship, right click it and select the corresponding
option.
Development process demo
This is a basic example how you can create simple diagram using relation
maps:
-
-
-
+
And this is how you can create it:
-
-
-
+
We start completely from scratch by first creating new note called "Development
process" and changing its type to "Relation map". After that we create
new notes one by one and place them by clicking into the map. We also drag
@@ -61,47 +58,42 @@
Family demo
This is more complicated demo using some advanced concepts. Resulting
diagram is here:
-
-
-
+
This is how you get to it:
-
-
-
+
There are several steps here:
- - we start with empty relation map and two existing notes representing Prince
+
- we start with empty relation map and two existing notes representing Prince
Philip and Queen Elizabeth II. These two notes already have
isPartnerOf
relationsdefined.
- - There are actually two "inverse" relations (one from Philip to Elizabeth
+
- There are actually two "inverse" relations (one from Philip to Elizabeth
and one from Elizabeth to Philip)
- - we drag both notes to relation map and place to suitable position. Notice
+
- we drag both notes to relation map and place to suitable position. Notice
how the existing
isPartnerOf
relations are displayed.
- - now we create new note - we name it "Prince Charles" and place it on the
+
- now we create new note - we name it "Prince Charles" and place it on the
relation map by clicking on the desired position. The note is by default
created under the relation map note (visible in the note tree on the left).
- - we create two new relations
isChildOf
targeting both Philip
- and Elizabeth
-
- - now there's something unexpected - we can also see the relation to display
- another
hasChild
relation. This is because there's a relation definition which
- puts isChildOf
as an "inverse"
- relation of hasChildOf
(and vice versa) and thus it is created
- automatically.
-
-
- - we create another note for Princess Diana and create
isPartnerOf
relation
- from Charles. Again notice how the relation has arrows both ways - this
- is because isPartnerOf
definition specifies its inverse relation
- as again "isPartnerOf" so the opposite relation is created automatically.
- - as the last step we pan & zoom the map to fit better to window dimensions.
+ - we create two new relations
isChildOf
targeting both Philip
+ and Elizabeth
+
+ - now there's something unexpected - we can also see the relation to display
+ another
hasChild
relation. This is because there's a relation definition which
+ puts isChildOf
as an "inverse"
+ relation of hasChildOf
(and vice versa) and thus it is created
+ automatically.
+
+
+ - we create another note for Princess Diana and create
isPartnerOf
relation
+ from Charles. Again notice how the relation has arrows both ways - this
+ is because isPartnerOf
definition specifies its inverse relation
+ as again "isPartnerOf" so the opposite relation is created automatically.
+ - as the last step we pan & zoom the map to fit better to window dimensions.
Relation definitions mentioned above come from "Person template" note
which is assigned to any child of "My Family Tree" relation note. You can
@@ -114,6 +106,6 @@
the ones defined in the label.
See also
\ No newline at end of file
diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json
index 404d2ab40..d169c0f29 100644
--- a/docs/User Guide/!!!meta.json
+++ b/docs/User Guide/!!!meta.json
@@ -7671,6 +7671,55 @@
"type": "text",
"mime": "text/markdown",
"attributes": [
+ {
+ "type": "relation",
+ "name": "internalLink",
+ "value": "zEY4DaJG4YT5",
+ "isInheritable": false,
+ "position": 10
+ },
+ {
+ "type": "relation",
+ "name": "internalLink",
+ "value": "XpOYSgsLkTJy",
+ "isInheritable": false,
+ "position": 20
+ },
+ {
+ "type": "relation",
+ "name": "internalLink",
+ "value": "oPVyFC7WL2Lp",
+ "isInheritable": false,
+ "position": 30
+ },
+ {
+ "type": "relation",
+ "name": "internalLink",
+ "value": "yTjUdsOi4CIE",
+ "isInheritable": false,
+ "position": 40
+ },
+ {
+ "type": "relation",
+ "name": "internalLink",
+ "value": "OFXdgB2nNk1F",
+ "isInheritable": false,
+ "position": 50
+ },
+ {
+ "type": "relation",
+ "name": "internalLink",
+ "value": "wX4HbRucYSDD",
+ "isInheritable": false,
+ "position": 60
+ },
+ {
+ "type": "relation",
+ "name": "internalLink",
+ "value": "bdUJEHsAPYQR",
+ "isInheritable": false,
+ "position": 70
+ },
{
"type": "label",
"name": "shareAlias",
@@ -7684,55 +7733,6 @@
"value": "bx bxs-network-chart",
"isInheritable": false,
"position": 20
- },
- {
- "type": "relation",
- "name": "internalLink",
- "value": "zEY4DaJG4YT5",
- "isInheritable": false,
- "position": 30
- },
- {
- "type": "relation",
- "name": "internalLink",
- "value": "XpOYSgsLkTJy",
- "isInheritable": false,
- "position": 40
- },
- {
- "type": "relation",
- "name": "internalLink",
- "value": "oPVyFC7WL2Lp",
- "isInheritable": false,
- "position": 50
- },
- {
- "type": "relation",
- "name": "internalLink",
- "value": "yTjUdsOi4CIE",
- "isInheritable": false,
- "position": 60
- },
- {
- "type": "relation",
- "name": "internalLink",
- "value": "OFXdgB2nNk1F",
- "isInheritable": false,
- "position": 70
- },
- {
- "type": "relation",
- "name": "internalLink",
- "value": "wX4HbRucYSDD",
- "isInheritable": false,
- "position": 80
- },
- {
- "type": "relation",
- "name": "internalLink",
- "value": "bdUJEHsAPYQR",
- "isInheritable": false,
- "position": 90
}
],
"format": "markdown",
diff --git a/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md
index e89d1a3fb..936cc3c4e 100644
--- a/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md
+++ b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.md
@@ -133,7 +133,7 @@ Both naming patterns are fully supported and can be used interchangeably:
```yaml
services:
trilium:
- image: triliumnext/notes
+ image: triliumnext/trilium
environment:
# Using full format
TRILIUM_GENERAL_INSTANCENAME: "My Trilium Instance"