(【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 都是一個值得推薦的知識管理解決方案。