selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
nanote logo

Self-host nanote

1.0.0

Lightweight self-hosted note app with filesystem storage

ReleaseOpen SourceAGPL-3.0
Updated11 hours ago
LanguageTypescript
Setup difficultyEasy
MobileResponsive
Stars
157
Port
3000 (HTTP web server)
Docker
omarmir/nanote
Install with Docker Compose
Nanote home page showing notebooks and recent notesNanote note editor showing notebook navigation and a Markdown note with a checklist

What is nanote?

Nanote is a lightweight, self-hosted note-taking application built with Nuxt 4 and TypeScript. It uses filesystem-based storage — folders as notebooks and markdown files as notes — so users maintain 100% portability and can manage notes with any text editor. The app provides a web UI with universal search across all notes, Markdown support with custom directives for file uploads and date insertion, and a mobile-friendly layout. It runs via Docker (image omarmir/nanote) or locally with Node.js 18+ and PNPM. No database is required; notes and uploads are stored in configurable filesystem paths. The project is licensed under AGPL-3.0 and has reached version 1.0.0.

Should you self-host nanote?

nanote scores 42/100 on selfhost.directory (how scoring works) and ranks #62 of 81 in Notes & Editors. It has 157 GitHub stars.

It shipped 1 stable release in the past year. The latest, 1.0.0, came out on 25 September 2026.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Memos (86/100, 64 136 stars). It scores higher overall, so compare the two before you pick. See nanote vs Memos side by side.

Features

  • Custom Remark Directives
  • File UploadFile upload for non-image files noted as pending
  • Local Filesystem Storage
  • Markdown Support
  • Multi-language Support
  • Notebook-based Organization
  • TypeSafe REST API
  • Universal Search

nanote README

How to install nanote

Install nanote with Docker Compose

Environment variables
NOTES_PATH, UPLOAD_PATH, CONFIG_PATH, SECRET_KEY

docker compose -d up

Requires editing compose file for volume mounts and environment variables

How to configure nanote

  • CONFIG_PATHPath for configuration files

    Path for configuration files

  • NOTES_PATHPath where notes are stored on the filesystem

    Path where notes are stored on the filesystem

  • SECRET_KEYnanoteSecret key for authentication; defaults to 'nanote' if not set

    Secret key for authentication; defaults to 'nanote' if not set

  • UPLOAD_PATHPath where file uploads/attachments are stored

    Path where file uploads/attachments are stored

nanote releases & version history

More in Notes & Editors

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…