diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html index c5d9d47b3..89d03b158 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html @@ -1,24 +1,29 @@ -

Trilium supports configuration via a file named config.ini and environment variables. This document provides a comprehensive reference for all configuration options.

- +

Trilium supports configuration via a file named config.ini and + environment variables. This document provides a comprehensive reference + for all configuration options.

Configuration Precedence

-

Configuration values are loaded in the following order of precedence (highest to lowest):

+

Configuration values are loaded in the following order of precedence (highest + to lowest):

  1. Environment variables (checked first)
  2. -
  3. config.ini file values
  4. -
  5. Default values
  6. +
  7. config.ini file values +
  8. +
  9. Default values +
-

Environment Variable Patterns

-

Trilium supports multiple environment variable patterns for flexibility. The primary pattern is: TRILIUM_[SECTION]_[KEY]

+

Trilium supports multiple environment variable patterns for flexibility. + The primary pattern is: TRILIUM_[SECTION]_[KEY] +

Where:

-

Additionally, shorter aliases are available for common configurations (see Alternative Variables section below).

- +

Additionally, shorter aliases are available for common configurations + (see Alternative Variables section below).

Environment Variable Reference

-

General Section

@@ -31,31 +36,36 @@ - + - + - + - + - + @@ -75,55 +85,64 @@ - + - + - + - + - + - + - + - + - + @@ -143,7 +162,8 @@ - + @@ -163,19 +183,22 @@ - + - + - + @@ -195,37 +218,43 @@ - + - + - + - + - + - + - + @@ -245,7 +274,8 @@ - + @@ -254,22 +284,20 @@
TRILIUM_GENERAL_INSTANCENAMETRILIUM_GENERAL_INSTANCENAME + string "" Instance name for API identification
TRILIUM_GENERAL_NOAUTHENTICATIONTRILIUM_GENERAL_NOAUTHENTICATION + boolean false Disable authentication (server only)
TRILIUM_GENERAL_NOBACKUPTRILIUM_GENERAL_NOBACKUP + boolean false Disable automatic backups
TRILIUM_GENERAL_NODESKTOPICONTRILIUM_GENERAL_NODESKTOPICON + boolean false Disable desktop icon creation
TRILIUM_GENERAL_READONLYTRILIUM_GENERAL_READONLY + boolean false Enable read-only mode
TRILIUM_NETWORK_HOSTTRILIUM_NETWORK_HOST + string "0.0.0.0" Server host binding
TRILIUM_NETWORK_PORTTRILIUM_NETWORK_PORT + string "3000" Server port
TRILIUM_NETWORK_HTTPSTRILIUM_NETWORK_HTTPS + boolean false Enable HTTPS
TRILIUM_NETWORK_CERTPATHTRILIUM_NETWORK_CERTPATH + string "" SSL certificate path
TRILIUM_NETWORK_KEYPATHTRILIUM_NETWORK_KEYPATH + string "" SSL key path
TRILIUM_NETWORK_TRUSTEDREVERSEPROXYTRILIUM_NETWORK_TRUSTEDREVERSEPROXY + boolean/string false Reverse proxy trust settings
TRILIUM_NETWORK_CORSALLOWORIGINTRILIUM_NETWORK_CORSALLOWORIGIN + string "" CORS allowed origins
TRILIUM_NETWORK_CORSALLOWMETHODSTRILIUM_NETWORK_CORSALLOWMETHODS + string "" CORS allowed methods
TRILIUM_NETWORK_CORSALLOWHEADERSTRILIUM_NETWORK_CORSALLOWHEADERS + string "" CORS allowed headers
TRILIUM_SESSION_COOKIEMAXAGETRILIUM_SESSION_COOKIEMAXAGE + integer 1814400 Session cookie max age in seconds (21 days)
TRILIUM_SYNC_SYNCSERVERHOSTTRILIUM_SYNC_SYNCSERVERHOST + string "" Sync server host URL
TRILIUM_SYNC_SYNCSERVERTIMEOUTTRILIUM_SYNC_SYNCSERVERTIMEOUT + string "120000" Sync server timeout in milliseconds
TRILIUM_SYNC_SYNCPROXYTRILIUM_SYNC_SYNCPROXY + string "" Sync proxy URL
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURLTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL + string "" OAuth/OpenID base URL
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTIDTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID + string "" OAuth client ID
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRETTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET + string "" OAuth client secret
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURLTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL + string"https://accounts.google.com""https://accounts.google.com" OAuth issuer base URL
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAMETRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME + string "Google" OAuth issuer display name
TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICONTRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON + string "" OAuth issuer icon URL
TRILIUM_LOGGING_RETENTIONDAYSTRILIUM_LOGGING_RETENTIONDAYS + integer 90 Number of days to retain log files

Alternative Environment Variables

-

The following alternative environment variable names are also supported and work identically to their longer counterparts:

- +

The following alternative environment variable names are also supported + and work identically to their longer counterparts:

Network CORS Variables

-

Sync Variables

-

OAuth/MFA Variables

-

Logging Variables

-

Boolean Values

Boolean environment variables accept the following values:

-

Using Environment Variables

Both naming patterns are fully supported and can be used interchangeably:

-

Examples

- -

Docker Compose Example

-
services:
+

Docker Compose Example

services:
   trilium:
     image: triliumnext/notes
     environment:
@@ -319,9 +345,7 @@
       # TRILIUM_NETWORK_CORS_ALLOW_ORIGIN: "https://myapp.com"
       # TRILIUM_SYNC_SERVER_HOST: "https://sync.example.com"
       # TRILIUM_OAUTH_BASE_URL: "https://auth.example.com"
- -

Shell Export Example

-
# Using either format
+

Shell Export Example

# Using either format
 export TRILIUM_GENERAL_NOAUTHENTICATION=false
 export TRILIUM_NETWORK_HTTPS=true
 export TRILIUM_NETWORK_CERTPATH=/path/to/cert.pem
@@ -330,6 +354,7 @@ export TRILIUM_LOGGING_RETENTIONDAYS=30
 
 # Start Trilium
 npm start
-

config.ini Reference

-

For the complete list of configuration options and their INI file format, please review the config-sample.ini file in the Trilium repository.

\ No newline at end of file +

For the complete list of configuration options and their INI file format, + please review the config-sample.ini file + in the Trilium repository

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html index 14166924f..292f4c585 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html @@ -5,18 +5,19 @@

The Quick search function does a full-text search (that is, it searches through the content of notes and not just the title of a note) and displays the result in an easy-to-access manner.

-

The alternative to the quick search is the Search function, - which opens in a dedicated tab and has support for advanced queries.

-

For even faster navigation, it's possible to use Jump to Note which will only search +

The alternative to the quick search is the Search function, which opens in + a dedicated tab and has support for advanced queries.

+

For even faster navigation, it's possible to use Jump to... which will only search through the note titles instead of the content.

Layout

-

Based on the Vertical and horizontal layout, +

Based on the Vertical and horizontal layout, the quick search is placed:

@@ -30,37 +31,120 @@

Infinite Scrolling

Results are loaded progressively as you scroll:

    -
  • Initial display shows 15 results
  • -
  • Scrolling near the bottom automatically loads 10 more results
  • -
  • Continue scrolling to load all matching notes
  • +
  • Initial display shows 15 results
  • +
  • Scrolling near the bottom automatically loads 10 more results
  • +
  • Continue scrolling to load all matching notes

Visual Features

    -
  • Highlighting: Search terms appear in bold with accent +
  • Highlighting: Search terms appear in bold with accent colors
  • -
  • Separation: Results are separated with dividers
  • -
  • Theme Support: Highlighting colors adapt to light/dark +
  • Separation: Results are separated with dividers
  • +
  • Theme Support: Highlighting colors adapt to light/dark themes

Search Behavior

Quick search uses progressive search:

    -
  1. Shows exact matches first
  2. -
  3. Includes fuzzy matches when exact results are fewer than 5
  4. -
  5. Exact matches appear before fuzzy matches
  6. +
  7. Shows exact matches first
  8. +
  9. Includes fuzzy matches when exact results are fewer than 5
  10. +
  11. Exact matches appear before fuzzy matches

Keyboard Navigation

    -
  • Press Enter to open the first result
  • -
  • Use arrow keys to navigate through results
  • -
  • Press Escape to close the quick search
  • +
  • Press Enter to open the first result
  • +
  • Use arrow keys to navigate through results
  • +
  • Press Escape to close the quick search

Using Quick Search

    -
  1. Typo tolerance: Search finds results despite minor typos
  2. -
  3. Content previews: 200-character snippets show match context
  4. -
  5. Infinite scrolling: Additional results load on scroll
  6. -
  7. Specific terms: Specific search terms return more focused - results
  8. -
  9. Match locations: Bold text indicates where matches occur
  10. -
\ No newline at end of file +
  • Typo tolerance: Search finds results despite minor typos
  • +
  • Content previews: 200-character snippets show match context
  • +
  • Infinite scrolling: Additional results load on scroll
  • +
  • Specific terms: Specific search terms return more focused + results
  • +
  • Match locations: Bold text indicates where matches occur
  • + +

    Quick Search - Exact Match Operator

    +

    Quick Search now supports the exact match operator (=) at + the beginning of your search query. This allows you to search for notes + where the title or content exactly matches your search term, rather than + just containing it.

    +

    Usage

    +

    To use exact match in Quick Search:

    +
      +
    1. Start your search query with the = operator
    2. +
    3. Follow it immediately with your search term (no space after =)
    4. +
    +

    Examples

    +
      +
    • =example - Finds notes with title exactly "example" or content + exactly "example"
    • +
    • =Project Plan - Finds notes with title exactly "Project Plan" + or content exactly "Project Plan"
    • +
    • ='hello world' - Use quotes for multi-word exact matches
    • +
    +

    Comparison with Regular Search

    +
    + + + + + + + + + + + + + + + + + +
    QueryBehavior
    example + Finds all notes containing "example" anywhere in title or content
    =example + Finds only notes where the title equals "example" or content equals "example" + exactly
    +
    +

    Technical Details

    +

    When you use the = operator:

    +
      +
    • The search performs an exact match on note titles
    • +
    • For note content, it looks for exact matches of the entire content
    • +
    • Partial word matches are excluded
    • +
    • The search is case-insensitive
    • +
    +

    Limitations

    +
      +
    • The = operator must be at the very beginning of the search + query
    • +
    • Spaces after = will treat it as a regular search
    • +
    • Multiple = operators (like ==example) are treated + as regular text search
    • +
    +

    Use Cases

    +

    This feature is particularly useful when:

    +
      +
    • You know the exact title of a note
    • +
    • You want to find notes with specific, complete content
    • +
    • You need to distinguish between notes with similar but not identical titles
    • +
    • You want to avoid false positives from partial matches
    • +
    +

    Related Features

    +
      +
    • For more complex exact matching queries, use the full Search functionality
    • +
    • For fuzzy matching (finding results despite typos), use the ~= operator + in the full search
    • +
    • For partial matches with wildcards, use operators like *=*, =*, + or *= in the full search
    • +
    \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html index 79c565cea..a4c7191eb 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.html @@ -134,7 +134,8 @@ docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium-
  • TRILIUM_DATA_DIR: Path to the data directory inside the container (default: /home/node/trilium-data)
  • -

    For a complete list of configuration environment variables (network settings, authentication, sync, etc.), see Configuration (config.ini or environment variables).

    +

    For a complete list of configuration environment variables (network settings, + authentication, sync, etc.), see Configuration (config.ini or environment variables).

    Volume Permissions

    If you encounter permission issues with the data volume, ensure that:

      diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html index 93eba27c0..6650d0a4f 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.html @@ -51,8 +51,10 @@ class="admonition warning">
      1. You can also setup through environment variables:
          -
        • Standard: TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET
        • -
        • Legacy (still supported): TRILIUM_OAUTH_BASE_URL, TRILIUM_OAUTH_CLIENT_ID, TRILIUM_OAUTH_CLIENT_SECRET
        • +
        • Standard: TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET +
        • +
        • Legacy (still supported): TRILIUM_OAUTH_BASE_URL, TRILIUM_OAUTH_CLIENT_ID, TRILIUM_OAUTH_CLIENT_SECRET +
      2. oauthBaseUrl should be the link of your Trilium instance server, @@ -69,13 +71,15 @@ class="admonition warning">

        The default OAuth issuer is Google. To use other services such as Authentik or Auth0, you can configure the settings via oauthIssuerBaseUrl, oauthIssuerName, and oauthIssuerIcon in the config.ini file. Alternatively, - these values can be set using environment variables: -

          -
        • Standard: TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON
        • -
        • Legacy (still supported): TRILIUM_OAUTH_ISSUER_BASE_URL, TRILIUM_OAUTH_ISSUER_NAME, TRILIUM_OAUTH_ISSUER_ICON
        • -
        - oauthIssuerName and oauthIssuerIcon are - required for displaying correct issuer information at the Login page.

        + these values can be set using environment variables:

        +
          +
        • Standard: TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME, TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON +
        • +
        • Legacy (still supported): TRILIUM_OAUTH_ISSUER_BASE_URL, TRILIUM_OAUTH_ISSUER_NAME, TRILIUM_OAUTH_ISSUER_ICON +
        • +
        +

        oauthIssuerName and oauthIssuerIcon are required + for displaying correct issuer information at the Login page.

        Authentik

        If you don’t already have a running Authentik instance, please follow diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html index 3bd1f0cf2..6eb68f890 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html @@ -26,8 +26,8 @@ https=true certPath=/[username]/.acme.sh/[hostname]/fullchain.cer keyPath=/[username]/.acme.sh/[hostname]/example.com.key

    You can also review the configuration file - to provide all config.ini values as environment variables instead. For example, you can configure TLS using environment variables:

    -
    export TRILIUM_NETWORK_HTTPS=true
    +  to provide all config.ini values as environment variables instead.
    +  For example, you can configure TLS using environment variables:

    export TRILIUM_NETWORK_HTTPS=true
     export TRILIUM_NETWORK_CERTPATH=/path/to/cert.pem
     export TRILIUM_NETWORK_KEYPATH=/path/to/key.pem

    The above example shows how this is set up in an environment where the diff --git a/docs/Developer Guide/!!!meta.json b/docs/Developer Guide/!!!meta.json index aee04e341..2117cdac6 100644 --- a/docs/Developer Guide/!!!meta.json +++ b/docs/Developer Guide/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.97.2", + "appVersion": "0.98.0", "files": [ { "isClone": false, diff --git a/docs/Release Notes/!!!meta.json b/docs/Release Notes/!!!meta.json index 472a9bd57..67162cd1c 100644 --- a/docs/Release Notes/!!!meta.json +++ b/docs/Release Notes/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.97.2", + "appVersion": "0.98.0", "files": [ { "isClone": false, diff --git a/docs/Release Notes/Release Notes/v0.98.0.md b/docs/Release Notes/Release Notes/v0.98.0.md index 30a9e9a11..d4c5eb9aa 100644 --- a/docs/Release Notes/Release Notes/v0.98.0.md +++ b/docs/Release Notes/Release Notes/v0.98.0.md @@ -44,12 +44,14 @@ ## 🌍 Internationalization * Improvements to multiple languages: + * Chinese (Traditional) * Spanish * Some work started on new languages: Portuguese (Brazil), Japanese, Russian, Serbian, Italian, Greek, Catalan * Added new languages: + * Russian (translations by @questamor) * Japanese language (translations by [acwr47](https://hosted.weblate.org/user/acwr47/))\[…\] diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index c4a1899a3..cb90db5b3 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.97.2", + "appVersion": "0.98.0", "files": [ { "isClone": false, 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 292451913..aca209e0e 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 @@ -1,21 +1,22 @@ # Configuration (config.ini or environment variables) - Trilium supports configuration via a file named `config.ini` and environment variables. This document provides a comprehensive reference for all configuration options. ## Configuration Precedence Configuration values are loaded in the following order of precedence (highest to lowest): -1. **Environment variables** (checked first) -2. **config.ini file values** -3. **Default values** + +1. **Environment variables** (checked first) +2. **config.ini file values** +3. **Default values** ## Environment Variable Patterns Trilium supports multiple environment variable patterns for flexibility. The primary pattern is: `TRILIUM_[SECTION]_[KEY]` Where: -- `SECTION` is the INI section name in UPPERCASE -- `KEY` is the camelCase configuration key converted to UPPERCASE (e.g., `instanceName` → `INSTANCENAME`) + +* `SECTION` is the INI section name in UPPERCASE +* `KEY` 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). @@ -24,8 +25,8 @@ Additionally, shorter aliases are available for common configurations (see Alter ### General Section | Environment Variable | Type | Default | Description | -|------------------|------|---------|-------------| -| `TRILIUM_GENERAL_INSTANCENAME` | string | "" | Instance name for API identification | +| --- | --- | --- | --- | +| `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 | @@ -34,91 +35,97 @@ Additionally, shorter aliases are available for common configurations (see Alter ### Network Section | 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_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 | +| `TRILIUM_NETWORK_CORSALLOWORIGIN` | string | "" | CORS allowed origins | +| `TRILIUM_NETWORK_CORSALLOWMETHODS` | string | "" | CORS allowed methods | +| `TRILIUM_NETWORK_CORSALLOWHEADERS` | string | "" | CORS allowed headers | ### Session Section | Environment Variable | Type | Default | Description | -|------------------|------|---------|-------------| +| --- | --- | --- | --- | | `TRILIUM_SESSION_COOKIEMAXAGE` | integer | 1814400 | Session cookie max age in seconds (21 days) | ### Sync Section | Environment Variable | Type | Default | Description | -|------------------|------|---------|-------------| -| `TRILIUM_SYNC_SYNCSERVERHOST` | string | "" | Sync server host URL | +| --- | --- | --- | --- | +| `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 | +| `TRILIUM_SYNC_SYNCPROXY` | string | "" | Sync proxy URL | ### MultiFactorAuthentication Section | 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_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](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 | +| `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON` | string | "" | OAuth issuer icon URL | ### Logging Section | Environment Variable | Type | Default | Description | -|------------------|------|---------|-------------| -| `TRILIUM_LOGGING_RETENTIONDAYS` | integer | 90 | Number of days to retain log files | +| --- | --- | --- | --- | +| `TRILIUM_LOGGING_RETENTIONDAYS` | integer | 90 | Number of days to retain log files | ## Alternative Environment Variables The following alternative environment variable names are also supported and work identically to their longer counterparts: ### Network CORS Variables -- `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`) ### Sync Variables -- `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`) ### OAuth/MFA Variables -- `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`) ### Logging Variables -- `TRILIUM_LOGGING_RETENTION_DAYS` (alternative to `TRILIUM_LOGGING_RETENTIONDAYS`) + +* `TRILIUM_LOGGING_RETENTION_DAYS` (alternative to `TRILIUM_LOGGING_RETENTIONDAYS`) ## Boolean Values Boolean environment variables accept the following values: -- **True**: `"true"`, `"1"`, `1` -- **False**: `"false"`, `"0"`, `0` -- Any other value defaults to `false` + +* **True**: `"true"`, `"1"`, `1` +* **False**: `"false"`, `"0"`, `0` +* Any other value defaults to `false` ## Using Environment Variables Both naming patterns are fully supported and can be used interchangeably: -- The longer format follows the section/key pattern for consistency with the INI file structure -- The shorter alternatives provide convenience for common configurations -- You can use whichever format you prefer - both are equally valid +* The longer format follows the section/key pattern for consistency with the INI file structure +* The shorter alternatives provide convenience for common configurations +* You can use whichever format you prefer - both are equally valid ## Examples ### Docker Compose Example + ```yaml services: trilium: @@ -138,7 +145,8 @@ services: ``` ### Shell Export Example -```bash + +```sh # Using either format export TRILIUM_GENERAL_NOAUTHENTICATION=false export TRILIUM_NETWORK_HTTPS=true diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search - Exact Match.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search - Exact Match.md deleted file mode 100644 index 186709b07..000000000 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search - Exact Match.md +++ /dev/null @@ -1,53 +0,0 @@ -# Quick Search - Exact Match Operator - -## Overview - -Quick Search now supports the exact match operator (`=`) at the beginning of your search query. This allows you to search for notes where the title or content exactly matches your search term, rather than just containing it. - -## Usage - -To use exact match in Quick Search: - -1. Start your search query with the `=` operator -2. Follow it immediately with your search term (no space after `=`) - -### Examples - -- `=example` - Finds notes with title exactly "example" or content exactly "example" -- `=Project Plan` - Finds notes with title exactly "Project Plan" or content exactly "Project Plan" -- `='hello world'` - Use quotes for multi-word exact matches - -### Comparison with Regular Search - -| Query | Behavior | -|-------|----------| -| `example` | Finds all notes containing "example" anywhere in title or content | -| `=example` | Finds only notes where the title equals "example" or content equals "example" exactly | - -## Technical Details - -When you use the `=` operator: -- The search performs an exact match on note titles -- For note content, it looks for exact matches of the entire content -- Partial word matches are excluded -- The search is case-insensitive - -## Limitations - -- The `=` operator must be at the very beginning of the search query -- Spaces after `=` will treat it as a regular search -- Multiple `=` operators (like `==example`) are treated as regular text search - -## Use Cases - -This feature is particularly useful when: -- You know the exact title of a note -- You want to find notes with specific, complete content -- You need to distinguish between notes with similar but not identical titles -- You want to avoid false positives from partial matches - -## Related Features - -- For more complex exact matching queries, use the full [Search](Search.md) functionality -- For fuzzy matching (finding results despite typos), use the `~=` operator in the full search -- For partial matches with wildcards, use operators like `*=*`, `=*`, or `*=` in the full search \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md index 277a7feae..996cc0c46 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.md @@ -3,16 +3,16 @@ The _Quick search_ function does a full-text search (that is, it searches through the content of notes and not just the title of a note) and displays the result in an easy-to-access manner. -The alternative to the quick search is the Search function, which opens in a dedicated tab and has support for advanced queries. +The alternative to the quick search is the Search function, which opens in a dedicated tab and has support for advanced queries. -For even faster navigation, it's possible to use Jump to Note which will only search through the note titles instead of the content. +For even faster navigation, it's possible to use Jump to... which will only search through the note titles instead of the content. ## Layout -Based on the Vertical and horizontal layout, the quick search is placed: +Based on the Vertical and horizontal layout, the quick search is placed: -* On the vertical layout, it is displayed right above the Note Tree. -* On the horizontal layout, it is displayed in the Launch Bar, where it can be positioned just like any other icon. +* On the vertical layout, it is displayed right above the Note Tree. +* On the horizontal layout, it is displayed in the Launch Bar, where it can be positioned just like any other icon. ## Search Features @@ -56,4 +56,58 @@ Quick search uses progressive search: 2. **Content previews**: 200-character snippets show match context 3. **Infinite scrolling**: Additional results load on scroll 4. **Specific terms**: Specific search terms return more focused results -5. **Match locations**: Bold text indicates where matches occur \ No newline at end of file +5. **Match locations**: Bold text indicates where matches occur + +## Quick Search - Exact Match Operator + +Quick Search now supports the exact match operator (`=`) at the beginning of your search query. This allows you to search for notes where the title or content exactly matches your search term, rather than just containing it. + +### Usage + +To use exact match in Quick Search: + +1. Start your search query with the `=` operator +2. Follow it immediately with your search term (no space after `=`) + +#### Examples + +* `=example` - Finds notes with title exactly "example" or content exactly "example" +* `=Project Plan` - Finds notes with title exactly "Project Plan" or content exactly "Project Plan" +* `='hello world'` - Use quotes for multi-word exact matches + +#### Comparison with Regular Search + +| Query | Behavior | +| --- | --- | +| `example` | Finds all notes containing "example" anywhere in title or content | +| `=example` | Finds only notes where the title equals "example" or content equals "example" exactly | + +### Technical Details + +When you use the `=` operator: + +* The search performs an exact match on note titles +* For note content, it looks for exact matches of the entire content +* Partial word matches are excluded +* The search is case-insensitive + +### Limitations + +* The `=` operator must be at the very beginning of the search query +* Spaces after `=` will treat it as a regular search +* Multiple `=` operators (like `==example`) are treated as regular text search + +### Use Cases + +This feature is particularly useful when: + +* You know the exact title of a note +* You want to find notes with specific, complete content +* You need to distinguish between notes with similar but not identical titles +* You want to avoid false positives from partial matches + +### Related Features + +* For more complex exact matching queries, use the full [Search](Search.md) functionality +* For fuzzy matching (finding results despite typos), use the `~=` operator in the full search +* For partial matches with wildcards, use operators like `*=*`, `=*`, or `*=` in the full search \ No newline at end of file diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md index b11c079a2..a484446d7 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker.md @@ -187,7 +187,7 @@ docker run -d --name trilium -p 8080:8080 --user $(id -u):$(id -g) -v ~/trilium- * `TRILIUM_GID`: GID to use for the container process (passed to Docker's `--user` flag) * `TRILIUM_DATA_DIR`: Path to the data directory inside the container (default: `/home/node/trilium-data`) -For a complete list of configuration environment variables (network settings, authentication, sync, etc.), see Configuration (config.ini or environment variables). +For a complete list of configuration environment variables (network settings, authentication, sync, etc.), see Configuration (config.ini or environment variables). ### Volume Permissions diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md index ee6e93363..5ef20f3ac 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication.md @@ -38,8 +38,8 @@ In order to setup OpenID, you will need to setup a authentication provider. This 1. Set the `oauthBaseUrl`, `oauthClientId` and `oauthClientSecret` in the `config.ini` file (check Configuration (config.ini or environment variables) for more information). 1. You can also setup through environment variables: - - Standard: `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET` - - Legacy (still supported): `TRILIUM_OAUTH_BASE_URL`, `TRILIUM_OAUTH_CLIENT_ID`, `TRILIUM_OAUTH_CLIENT_SECRET` + * Standard: `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHBASEURL`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTID`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHCLIENTSECRET` + * Legacy (still supported): `TRILIUM_OAUTH_BASE_URL`, `TRILIUM_OAUTH_CLIENT_ID`, `TRILIUM_OAUTH_CLIENT_SECRET` 2. `oauthBaseUrl` should be the link of your Trilium instance server, for example, `https://`. 2. Restart the server 3. Go to "Menu" -> "Options" -> "MFA" @@ -49,8 +49,9 @@ In order to setup OpenID, you will need to setup a authentication provider. This > [!NOTE] > The default OAuth issuer is Google. To use other services such as Authentik or Auth0, you can configure the settings via `oauthIssuerBaseUrl`, `oauthIssuerName`, and `oauthIssuerIcon` in the `config.ini` file. Alternatively, these values can be set using environment variables: -> - Standard: `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON` -> - Legacy (still supported): `TRILIUM_OAUTH_ISSUER_BASE_URL`, `TRILIUM_OAUTH_ISSUER_NAME`, `TRILIUM_OAUTH_ISSUER_ICON` +> +> * Standard: `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERBASEURL`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERNAME`, `TRILIUM_MULTIFACTORAUTHENTICATION_OAUTHISSUERICON` +> * Legacy (still supported): `TRILIUM_OAUTH_ISSUER_BASE_URL`, `TRILIUM_OAUTH_ISSUER_NAME`, `TRILIUM_OAUTH_ISSUER_ICON` > > `oauthIssuerName` and `oauthIssuerIcon` are required for displaying correct issuer information at the Login page. diff --git a/docs/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.md b/docs/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.md index d4004a8cb..eaa0bbba0 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.md +++ b/docs/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.md @@ -27,7 +27,7 @@ keyPath=/[username]/.acme.sh/[hostname]/example.com.key You can also review the [configuration](../../Advanced%20Usage/Configuration%20\(config.ini%20or%20e.md) file to provide all `config.ini` values as environment variables instead. For example, you can configure TLS using environment variables: -```bash +```sh export TRILIUM_NETWORK_HTTPS=true export TRILIUM_NETWORK_CERTPATH=/path/to/cert.pem export TRILIUM_NETWORK_KEYPATH=/path/to/key.pem