docker.recipes

Trilium Notes

beginner

Hierarchical note-taking application for knowledge bases.

Overview

Trilium Notes is a hierarchical note-taking application built by Zadam that transforms how individuals and organizations capture, organize, and interconnect knowledge. Originally developed as an open-source alternative to commercial knowledge management solutions, Trilium emphasizes flexible content organization through unlimited tree structures, rich content types, and powerful linking capabilities that create true knowledge webs rather than isolated documents. This Docker deployment leverages the official Trilium image to provide a self-hosted, web-accessible note-taking platform that runs entirely under your control, eliminating dependence on external services while maintaining full data ownership. The containerized setup ensures consistent performance across different hosting environments while simplifying backup and migration procedures. This configuration appeals particularly to knowledge workers, researchers, developers, and teams who need sophisticated note organization beyond simple folders, offering features like scripting automation, relation mapping, and synchronized access across multiple devices through Trilium's desktop synchronization capabilities.

Key Features

  • Hierarchical tree structure with unlimited nesting depth for complex knowledge organization
  • Multiple note types including text, code, book, canvas, and web clipper for diverse content
  • Bidirectional linking system with relation maps for visualizing knowledge connections
  • Built-in scripting engine supporting JavaScript for task automation and custom behaviors
  • Full-text search with advanced filtering and attribute-based queries
  • Note cloning and template system for reusable content structures
  • Desktop application synchronization for offline access and multi-device workflows
  • Export capabilities to various formats including HTML, markdown, and OPML

Common Use Cases

  • 1Personal knowledge management for researchers collecting and linking academic sources
  • 2Software development documentation with code snippets and project hierarchies
  • 3Team wikis for organizations needing structured internal knowledge bases
  • 4Student note-taking systems for interconnected course materials and references
  • 5Creative writing projects with character development and world-building trees
  • 6Technical documentation repositories with searchable procedures and troubleshooting guides
  • 7Business process documentation with departmental knowledge organization

Prerequisites

  • Docker and Docker Compose installed with minimum 512MB available RAM
  • Port 8080 available for web interface access
  • Sufficient disk space for note storage and media attachments (minimum 1GB recommended)
  • Modern web browser supporting JavaScript for full interface functionality
  • Basic understanding of hierarchical information organization concepts
  • Network access for initial container image download (approximately 100MB)

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 trilium:
3 image: zadam/trilium:latest
4 container_name: trilium
5 restart: unless-stopped
6 ports:
7 - "8080:8080"
8 volumes:
9 - trilium_data:/home/node/trilium-data
10 environment:
11 TRILIUM_DATA_DIR: /home/node/trilium-data
12
13volumes:
14 trilium_data:

.env Template

.env
1# No environment variables required

Usage Notes

  1. 1Docs: https://github.com/zadam/trilium/wiki
  2. 2Access at http://localhost:8080 - set password on first visit
  3. 3Hierarchical tree structure with unlimited nesting
  4. 4Note types: text, code, book, canvas, web clipper
  5. 5Relation maps and scripting for advanced knowledge management
  6. 6Sync between server and desktop app available

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 trilium:
5 image: zadam/trilium:latest
6 container_name: trilium
7 restart: unless-stopped
8 ports:
9 - "8080:8080"
10 volumes:
11 - trilium_data:/home/node/trilium-data
12 environment:
13 TRILIUM_DATA_DIR: /home/node/trilium-data
14
15volumes:
16 trilium_data:
17EOF
18
19# 2. Create the .env file
20cat > .env << 'EOF'
21# No environment variables required
22EOF
23
24# 3. Start the services
25docker compose up -d
26
27# 4. View logs
28docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/trilium-notes/run | bash

Troubleshooting

  • Database locked error on startup: Stop container completely, check for zombie processes, and restart with docker-compose down && docker-compose up
  • Cannot access web interface on localhost:8080: Verify port binding in docker-compose.yml and check firewall settings allowing port 8080
  • Trilium data directory permission errors: Ensure Docker has write permissions to the mounted volume location with proper user ownership
  • Slow performance with large note trees: Increase container memory allocation and consider database optimization through Trilium's built-in maintenance tools
  • Desktop sync connection failures: Verify server URL accessibility and check that sync credentials match the web interface login
  • Note content corruption after container restart: Always use proper shutdown procedures and ensure volume mounts are correctly configured before adding content

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space