OpenLogs

All tools

Trilium

Hierarchical note-taking app that builds a personal knowledge base.

Replaces

Paid note-taking services, such as Evernote and Notion.

All open-source alternatives to Evernote, Notion

Difficulty

Difficulty: Easy

1 service, 3 volume mounts, no env values to set, no elevated host access. Heuristic score 1 of 11: easy.

Stack

TypeScript (language)

Deployment

docker_compose

Requirements

Not stated.

License

AGPL-3.0 (OSI-approved open source)

Read from github.com/TriliumNext/Trilium/blob/1f26d8c/LICENSE

Business model

Unknown

The README at the pinned commit does not state a business model, so it stays unknown.

Source: github.com/TriliumNext/Trilium/blob/1f26d8c/README.md, read on .

Repository

TriliumNext/Trilium

GitHub stats

Stars
38,437
Forks
2,593
Open issues and pull requests
579
Last push
2026-10-22
Latest release
v0.106.0
Released
2026-09-25

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as AGPL-3.0.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
docker-compose.yml Version 1
# Running `docker-compose up` will create/use the "trilium-data" directory next to this file
# To run in the background, use `docker-compose up -d`
services:
  trilium:
    # Optionally, replace `latest` with a version tag like `v0.90.3`
    # Using `latest` may cause unintended updates to the container
    image: triliumnext/trilium:latest
    # Restart the container unless it was stopped by the user
    restart: unless-stopped
    ports:
      # By default, Trilium will be available at http://localhost:8080
      # It will also be accessible at http://<host-ip>:8080
      # You might want to limit this with something like Docker Networks, reverse proxies, or firewall rules,
      # however be aware that using UFW is known to not work with default Docker installations, see:
      # https://docs.docker.com/engine/network/packet-filtering-firewalls/#docker-and-ufw
      - '8080:8080'
    volumes:
      # Trilium stores its data in `trilium-data` next to this file. To use another directory
      # on the host, change the part before the colon only.
      - ./trilium-data:/home/node/trilium-data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

From the app's own repository: github.com/TriliumNext/Trilium/blob/1f26d8c/docker-compose.yml.

Compose file from the app repository.

Install

  1. Docker with the Compose plugin (github.com/TriliumNext/Trilium/blob/1f26d8c/docker-compose.yml)

    A host with Docker and the Docker Compose plugin. This entry runs from a compose file.

  2. Save the compose file as docker-compose.yml (github.com/TriliumNext/Trilium/blob/1f26d8c/docker-compose.yml)

    Use the compose file shown above.

  3. Start it (github.com/TriliumNext/Trilium/blob/1f26d8c/docker-compose.yml)
    docker compose up -d
  4. Open the app (github.com/TriliumNext/Trilium/blob/1f26d8c/docker-compose.yml)

    Open http://localhost:8080. The compose file publishes host port 8080 for the trilium service.

Compose file check: config_ok on 2026-10-22.

Gotchas and maintenance

Gotchas

Signals

  • Open issues and pull requests: 579
  • Last push: 2026-10-22 (0 days before this page was built)
  • Latest release: v0.106.0 on 2026-09-25 (26 days before this page was built)