(【Docker項目實戰】使用Docker部署Nanote輕量級筆記應用程序)

一、Nanote介紹

1.1 Nanote簡介

Nanote是一款輕量級、自託管的筆記應用程序,採用文件系統進行數據存儲,真正實現100%可移植的筆記管理體驗。使用 Nuxt 3 和 TypeScript 構建,界面簡潔高效,支持 Markdown 編輯、全局搜索、Docker 部署及類型安全的 API,是追求自由與控制力的用户的理想選擇。

1.2 主要特點

  • 基於筆記本的組織結構:以文件夾作為筆記本,Markdown 文件作為筆記,結構清晰易管理。
  • 全局內容搜索功能:支持跨所有筆記的快速檢索,並針對操作系統進行了性能優化。
  • 原生 Markdown 支持:無縫處理 .md 文件,提供標準 MIME 類型識別和渲染支持。
  • 純本地文件存儲:無需數據庫,所有數據都直接保存在你的文件系統中,完全掌控數據歸屬。
  • 開箱即用的 Docker 支持:提供完整的容器化部署方案,包含示例 docker-compose.yml 文件。
  • TypeSafe API 接口:後端 RESTful API 全面類型化並帶有輸入驗證,保障接口安全與穩定。
  • 極致性能優化:對文件操作和平台特定搜索進行了深度優化,提升響應速度與用户體驗。
  • 響應式移動設備支持:界面適配手機和平板,支持隨時隨地查看和編輯筆記內容。

二、本次實踐規劃

2.1 本地環境規劃

本次實踐為個人測試環境,操作系統版本為Ubuntu 22.04.1。

hostname IP地址 操作系統版本 Docker版本 部署項目
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 Nanote

2.2 本次實踐介紹

1.本次實踐部署環境為個人測試環境,生產環境請謹慎; 2.在Docker環境下部署Nanote輕量級筆記應用程序。

三、本地環境檢查

3.1 檢查Docker服務狀態

檢查Docker服務是否正常運行,確保Docker正常運行。

root@jeven01:~#  systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2025-07-02 14:16:57 UTC; 21h ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 878 (dockerd)
      Tasks: 28
     Memory: 1.2G
        CPU: 1min 50.356s
     CGroup: /system.slice/docker.service
             ├─  878 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 檢查Docker版本

檢查Docker版本

root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 檢查docker compose 版本

檢查Docker compose版本,確保2.0以上版本。

root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、拉取Nanote鏡像

拉取Nanote容器鏡像,當前最新版本為0.9.3

docker pull omarmir/nanote:0.9.3

在這裏插入圖片描述

五、部署Nanote服務

5.1 創建部署目錄

  • 創建部署目錄
mkdir -p /data/nanote  &&  cd /data/nanote 

5.2 編輯部署文件

docker-cli方式部署,可採納開以下命令:

docker run -d \
   --restart unless-stopped \
   --name nanote \
   -p 3000:3000 \
   -v /data/nanote/notes:/notes \
   -e NOTES_PATH=/notes \
   -e SECRET_KEY=123456 \
   omarmir/nanote:0.9.3

在部署目錄下,創建docker-compose.yaml文件,如下所示:

vim docker-compose.yaml
      
version: '3.9'
services:
    nanote:
        image: 'omarmir/nanote:0.9.3'
        environment:
            - SECRET_KEY=123456
            - NOTES_PATH=/notes
        volumes:
            - '/data/nanote/notes:/notes'
        ports:
            - '3000:3000'
        container_name: nanote
        restart: always



5.3 創建Nanote容器

執行以下命令,創建Nanote容器。

docker compose up -d

在這裏插入圖片描述

5.4 查看Nanote容器狀態

檢查Nanote容器運行狀態,確保Nanote容器正常啓動。

root@jeven01:/data/nanote# docker compose ps
WARN[0000] /data/nanote/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME      IMAGE                  COMMAND                  SERVICE   CREATED          STATUS          PORTS
nanote    omarmir/nanote:0.9.3   "docker-entrypoint.s…"   nanote    36 seconds ago   Up 36 seconds   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp

5.5 查看Nanote容器日誌

檢查Nanote容器運行日誌,確保Nanote服務正常運行。

docker compose logs

在這裏插入圖片描述

六、訪問Nanote服務

瀏覽器地址: http://<個人的服務器IP>:3000,訪問Nanote的初始頁。如果無法訪問,請確保宿主機的防火牆已關閉或已放行相關端口,對於雲服務器還需配置相應的安全組規則。

在這裏插入圖片描述

第一次進入Nanote初始頁,我們使用設置的默認密鑰123456進行登錄。

在這裏插入圖片描述

在這裏插入圖片描述

七、Nanote基本使用

7.1 新建筆記本

在右上角填寫筆記本名稱後,確認新建筆記本。

在這裏插入圖片描述

7.2 新建筆記

在點擊筆記本名稱後,選擇“Add”選項,填寫筆記標題並完成新建操作。

在這裏插入圖片描述

編輯筆記內容,如下所示:

在這裏插入圖片描述

7.3 瀏覽筆記

筆記編輯完畢後,可雙擊筆記名稱打開在線瀏覽,效果如下所示:

在這裏插入圖片描述

八、總結

通過 Docker 部署 Nanote 輕量級筆記應用,整個過程簡潔高效,極大地簡化了環境配置和部署流程。藉助容器化技術,用户可以快速搭建一個自託管、基於文件系統的筆記管理平台,實現數據的完全掌控與高可移植性。無論是本地開發還是雲端部署,Nanote 結合 Docker 都是一個值得推薦的知識管理解決方案。