OSS探訪

Notesnook — E2EEを標準に、Web・デスクトップ・モバイル・セルフホストを揃えるプライバシー重視ノート

OSS健全度 96
スコアの見方

発掘スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした独自指標(上限なし)。成長モメンタムは観測期間内の同スコアの差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
14,594
主要言語
TypeScript
ライセンス
GPL-3.0
リポジトリ最終更新
2026/09/15

概要

Notesnookは、Evernote代替を掲げるオープンソースのノートアプリです。Web・デスクトップ・Android/iOSを同じデータモデルで使いながら、同期前に端末側でノートを暗号化するzero-knowledge設計を採用しています。公式サーバーを使うだけでなく、自前のsync/auth/events/monograph基盤へクライアントを向けるセルフホスト構成も用意されています。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

ノートを端末側で暗号化し、サーバーにはciphertextだけを送る

公式ドキュメントでは、各itemを同期前にXChaCha20-Poly1305-IETFで暗号化し、passwordからArgon2iでmaster keyを導出すると説明しています。server login用password hashにはArgon2idを使い、実際のpasswordと復号keyは端末外へ出ません。サーバーが受け取るのは暗号化済みblobだけというzero-knowledge設計です。

出典:[2]

Web・desktop・mobileを同じmonorepoで揃え、clipperと共通crypto/coreも公開する

このrepositoryにはWeb client、Electron desktop、React Native mobile、Web Clipper、shared core、crypto wrapper、editorなどが同居しています。READMEではfront-endをReact、mobileをReact Native、desktopをElectronで構成し、TypeScriptへの移行を進めていると説明しています。プラットフォームごとに別製品ではなく、共通coreと暗号化実装を持つclient群として追えるのが特徴です。

出典:[1][4]

公式クラウドから離れ、4つのserver endpointを自前環境へまとめて切り替えられる

Notesnookの各clientはsync、auth、events/SSE、monographの4 URLを自前serverへ変更できます。self-hosting guideではLinux上にDocker Composeでserver群を起動し、client側で4 URLをtestして保存する構成を案内しています。E2EEはself-host時も維持されるため、暗号化済みdataをNotesnookのmachineへ置かずに運用できます。

出典:[3]

Evernote型の使い勝手を残しつつ、暗号化とserver運用の主導権を持ちたい人に

複数端末で同じノートを使いたい一方、providerが平文を読めない設計を重視する人、Web・desktop・mobileを横断したい人、必要ならsync infrastructureまで自組織へ寄せたい人に向きます。clientとcrypto実装が公開されているため、暗号化やstorageの挙動をsourceから確認したいチームにも比較価値があります。

passwordとrecovery keyを両方失うと復号できず、E2EEはbackup責任も利用者側へ移す

zero-knowledge設計の裏返しとして、passwordとaccount recovery keyの両方を失った場合はNotesnook側でもノートを復号できません。導入時はrecovery keyを安全に保管し、clientやserver障害とは独立したbackupを用意する必要があります。

出典:[2]

セルフホストは単一containerではなく、server群・HTTPS・SMTP・backend切替手順まで運用対象になる

公式self-host guideはLinux、Docker、Docker Composeを前提にし、最低1GB RAM・20GB storageを案内しています。password resetやemail-based 2FAを使う場合はSMTPも必要です。browser/mobile利用ではHTTPSが必要になり、sync/auth/events/monographの4 serverはすべて自前側へ揃える必要があります。

既存の公式backendからself-hostへ切り替える際は、先にbackupを取り、logoutしてserver URLを変更し、自前instance側で新しいaccountを作成してbackupをrestoreします。account自体をbackend間で移動する機能ではありません。またserver実装は別repositoryのnotesnook-sync-serverから取得します。client repository本体はGPL-3.0です。

出典:[3][5]

参考にした公式資料

  1. [1]streetwriters/notesnook — README(2026-09-15)
  2. [2]Notesnook Help — How does Notesnook encrypt my notes?(2026-09-15)
  3. [3]Notesnook Help — Self-hosting(2026-09-15)
  4. [4]Notesnook Desktop — README(2026-09-15)
  5. [5]streetwriters/notesnook — LICENSE(2026-09-15)
編集部からの補足

「プライバシー重視」を宣言するだけでなく、暗号化方式・keyの置き場所・serverが受け取るデータまで公開している点を評価しました。セルフホスト時は4 serverを一体で運用する必要があり、recovery keyとbackupを含めて設計できるかが導入判断の要点です。

3ステップで試す

  1. 1

    Composeと.envを取得

    公式self-hosting guideに沿って、server stackのdocker-compose.ymlと.envを取得します。

    mkdir notesnook-sync-server && cd notesnook-sync-server && wget https://raw.githubusercontent.com/streetwriters/notesnook-sync-server/master/docker-compose.yml && wget https://raw.githubusercontent.com/streetwriters/notesnook-sync-server/master/.env
  2. 2

    .envを設定

    生成した値をNOTESNOOK_API_SECRETへ設定し、INSTANCE_NAME・public URLsを自分の環境へ合わせます。password resetやemail 2FAを使う場合はSMTPも設定します。

    openssl rand -hex 32
  3. 3

    server群を起動

    7 containersがhealthyになることを確認します。その後client側でsync/auth/events/monographの4 URLを設定してTest connectionを実行します。

    docker compose up -d && docker compose ps
公式READMEで確認

成長

成長の推移 · 直近30日

14,594 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
76
Open PR
100

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • note-taking
  • notes-app
  • notes
  • notebook
  • note-taking-app
  • note-managment
  • productivity
  • electron
  • react
  • reactjs
  • react-native
  • dotnet-core
Stars
14,594
Forks
1,006
Watchers
76
Open Issues
925
主要言語
TypeScript
ライセンス
GPL-3.0
リポジトリ最終更新
2026/09/15
情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。