Skip to content

Document initialisation doesn't finish on fresh Docker setup #10975

Description

@dukc

Description

I have installed Trilium to my Docker server. I'm using the official docker-compose.yml, only changes I did are the port number and adding a name: . The docker server is behind a reverse proxy, that forwards requests to https://my.domain/trilium/whatever to http://my.domain/whatever:10010 like the manual states. I'm not doing this to have multiple Trilium instances though, it's because I have other services under the same domain name.

Once composed (docker compose up) , I stopped the container, made the following edits to the config file:

trustedReverseProxy=true`
port=10010

and restarted the container.

I can now go to my.domain/trilium/ which redirects me to my.domain/trilium/setup and asks whether I want to start anew, sync with an existing offline instance or with an existing online instance. I choose to start anew, and it correctly shows the "Document initialization in progress" window with the in-progress animation playing. However, it never finishes.

I have tried deleting my trilium data directory and recomposing the container remembering to re-edit config-ini too. Same result.

I consider it fairly likely I still have something misconfigured in my reverse proxy/firewall/volumes, but how would I find out what? Neither the setup window or docker logs show any error messages.

TriliumNext Version

0.103.0

What operating system are you using?

Other Linux

What is your setup?

Server access only

Operating System Version

x86-64, Linux 3.10.0, glibc

Error logs

$ docker logs trilium
No USER_UID specified, leaving 1000
No USER_GID specified, leaving 1000
Generated session secret
Language option not found, falling back to en.

 _____     _ _ _
|_   _| __(_) (_)_   _ _ __ ___   | \ | | ___ | |_ ___  ___
  | || '__| | | | | | | '_ ` _ \  |  \| |/ _ \| __/ _ \/ __|
  | || |  | | | | |_| | | | | | | | |\  | (_) | ||  __/\__ \
  |_||_|  |_|_|_|\__,_|_| |_| |_| |_| \_|\___/ \__\___||___/ 0.103.0

 Versions:    app=0.103.0 db=238 sync=39 clipper=1.0
 Build:       2026-05-13 20:00:19 (44f5be88b7)
 Data dir:    /home/node/trilium-data
⏰ UTC time:    2026-08-10 14:21:14
 CPU:         Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz (1-core @ 0 Mhz)
 DB size:     4 KiB

DB not initialized, please visit setup page - http://[your-server-host]:8080 to see instructions on how to initialize Trilium.
MCP server registered at /mcp (localhost only)
Trusted reverse proxy: false
App HTTP server starting up at port 8080
Listening on port 8080
Caught interrupt/termination signal. Exiting.
No USER_UID specified, leaving 1000
No USER_GID specified, leaving 1000
Language option not found, falling back to en.

 _____     _ _ _
|_   _| __(_) (_)_   _ _ __ ___   | \ | | ___ | |_ ___  ___
  | || '__| | | | | | | '_ ` _ \  |  \| |/ _ \| __/ _ \/ __|
  | || |  | | | | |_| | | | | | | | |\  | (_) | ||  __/\__ \
  |_||_|  |_|_|_|\__,_|_| |_| |_| |_| \_|\___/ \__\___||___/ 0.103.0

 Versions:    app=0.103.0 db=238 sync=39 clipper=1.0
 Build:       2026-05-13 20:00:19 (44f5be88b7)
 Data dir:    /home/node/trilium-data
⏰ UTC time:    2026-08-10 14:23:10
 CPU:         Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz (1-core @ 0 Mhz)
 DB size:     4 KiB

DB not initialized, please visit setup page - http://[your-server-host]:10010 to see instructions on how to initialize Trilium.
MCP server registered at /mcp (localhost only)
Trusted reverse proxy: true
App HTTP server starting up at port 10010
Listening on port 10010
Slow 200 GET /api/health-check with 15 bytes took 12ms
Slow 200 GET /api/health-check with 15 bytes took 38ms
wp: The Express 'trust proxy' setting is true, which allows anyone to trivially bypass IP-based rate limiting. See https://express-rate-limit.github.io/ERR_ERL_PERMISSIVE_TRUST_PROXY/ for more information.
    at Object.trustProxy (/usr/src/app/main.cjs:1331:26577)
    at n.<computed> [as trustProxy] (/usr/src/app/main.cjs:1331:31846)
    at Object.keyGenerator (/usr/src/app/main.cjs:1331:33336)
    at /usr/src/app/main.cjs:1331:34720
    at async /usr/src/app/main.cjs:1331:34223 {
  code: 'ERR_ERL_PERMISSIVE_TRUST_PROXY',
  help: 'https://express-rate-limit.github.io/ERR_ERL_PERMISSIVE_TRUST_PROXY/'
}
Slow 200 GET /api/health-check with 15 bytes took 12ms
200 GET /api/health-check with 15 bytes took 1ms
200 GET /api/health-check with 15 bytes took 1ms
200 GET /api/health-check with 15 bytes took 1ms
200 GET /api/health-check with 15 bytes took 1ms
Slow 200 GET /api/health-check with 15 bytes took 13ms
Slow 200 GET /api/health-check with 15 bytes took 32ms
Slow 200 GET /api/health-check with 15 bytes took 34ms
Slow 200 GET /api/health-check with 15 bytes took 13ms
200 GET /api/health-check with 15 bytes took 3ms
200 GET /api/health-check with 15 bytes took 9ms
200 GET /api/health-check with 15 bytes took 1ms
[...and so on, with no other message types]

Metadata

Metadata

Assignees

No one assigned

    Labels

    BEIssues related to server-side/back-endState: TriageIssues that need to be verifiedcontainerIssues related to containers, DockerHub or GHCR

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions