七千二百袋水泥
七千二百袋水泥
Published on 2025-10-25 / 3 Visits

dnote跨平台命令行笔记工具完整部署与使用指南:从服务端Docker Compose配置到客户端同步技巧全解析

  • 项目源码地址:https://github.com/dnote/dnote

dnote是一款功能强大的命令行笔记应用,支持跨设备数据同步和全文内容检索。该工具采用客户端与服务端分离架构,用户既可选择仅安装客户端连接官方服务器,也能自行部署私有服务端实现完全自主的数据管理。

官方应用效果预览图:

Image

为获得完整的功能体验,我们将同时部署服务端与客户端组件,下面详细介绍配置过程。

服务端部署指南

首先准备Docker Compose配置文件:

services:  
  postgres:  
    image: postgres:13  
    environment:  
      - POSTGRES_USER=dnote  
      - POSTGRES_PASSWORD=dnote  
      - POSTGRES_DB=dnote  
    volumes:  
      - ./data:/var/lib/postgresql/data  
  
  dnote:  
    image: dnote/dnote:latest  
    environment:  
      - GO_ENV=PRODUCTION  
      - DBSkipSSL=true  
      - DBHost=postgres  
      - DBPort=5432  
      - DBName=dnote  
      - DBUser=dnote  
      - DBPassword=dnote  
      - WebURL=localhost:3000  
      - OnPremises=true  
      - SmtpHost=smtp.163.com  
      - SmtpPort=25  
      - SmtpUsername=myusername@163.com  
      - SmtpPassword=mypasswd  
      - DisableRegistration=false  
    ports:  
      - 3200:3000  
    depends_on:  
      - postgres

配置注意事项:

  • 数据库用户名与密码需保持一致性,若需修改请同步调整两个容器的对应参数
  • SMTP邮件服务配置可根据实际需求设置,本示例中虽已配置但未成功实现邮件发送功能

接下来登录阿里云服务器,执行docker compose up -d启动服务,随后配置Nginx反向代理:

server {  
  listen 80;  
  server_name <自定义域名>;  
  
  location / {  
    proxy_set_header X-Real-IP $remote_addr;  
    proxy_set_header X-Forwarded-For $remote_addr;  
    proxy_set_header Host $host;  
    # 注意端口映射:因服务器3000端口已被占用,Docker中映射至3200端口,此处需保持一致  
    proxy_pass http://127.0.0.1:3200;   
  }  
}

配置完成后执行:nginx -t && nginx -s reload。在浏览器中输入自定义域名访问:

Image

首次访问需点击"Create account"创建账户,按照提示输入邮箱和密码后,系统会发送激活邮件。但实际操作中未能成功接收激活邮件。

检查Docker日志发现邮件发送过程出现错误,经过多方查询仍未找到解决方案。如有读者了解此问题的处理方法,欢迎留言交流。这实际上是一个长期存在的技术难题,之前部署其他服务时也遇到过类似情况。

基于既往经验,我们采用数据库直接修改的解决方案:

docker exec -it dnote-postgres-1 bash  # 进入容器,具体容器名称需通过docker ps命令确认  
psql -h localhost -d dnote -U dnote  # 连接数据库,若修改过docker-compose.yml中的数据库配置,此处需相应调整  
update accounts set email_verified=true;   # 将所有账户标记为已验证状态  
\q  # 退出数据库  
exit # 退出容器

返回浏览器登录界面,使用先前注册的邮箱和密码即可成功登录。登录后界面仅显示账户信息,暂无笔记内容:

Image

服务端主要承担笔记数据同步功能,不提供直接操作界面,至此服务端部署工作全部完成。

客户端安装与使用

  • 安装步骤(以NAS设备为例,通过SSH登录操作)
## 下载最新版本客户端  
curl -OL https://github.com/dnote/dnote/releases/download/cli-v0.15.1/dnote_0.15.1_linux_amd64.tar.gz   
## 解压安装包  
tar -zxf dnote_0.15.1_linux_amd64.tar.gz  
## 将可执行文件移至系统目录  
sudo mv dnote /usr/bin/dnote  
sudo chmod +x /usr/bin/dnote  
## 安装完成
  • 初始化配置,连接自建服务端
## 执行任意命令生成基础配置文件  
dnote v  
## 编辑配置文件~/.config/dnote/dnoterc  
$ cat ~/.config/dnote/dnoterc   
editor: vim  # 按个人习惯设置默认编辑器  
apiEndpoint: http://<自定义域名>/api  # 连接私有云服务,确保数据安全  
enableUpgradeCheck: true
  • 创建笔记本和笔记内容
## 语法:使用 'dnote a 笔记本名称' 命令可连续添加多条笔记  
  
nas:~$ dnote a nas上手指南  
✔ added to nas上手指南  
book name: nas上手指南  
created at: Jan 1, 2025 12:01 am (CST)  
note id: 5  
note uuid: cd202e6e-0536-4378-8655-b1e5ff593d12  
  
------------------------content------------------------  
- 硬件设备采购  
- 系统安装部署  
- 加入用户社群  
  
-------------------------------------------------------  
nas:~$ dnote a nas上手指南  
✔ added to nas上手指南  
book name: nas上手指南  
created at: Jan 1, 2025 12:02 am (CST)  
note id: 6  
note uuid: c9befc36-d2ec-4be5-8d29-9c645fb7a2b3  
  
------------------------content------------------------  
- 软件应用安装  
- 技术问题求助  
- 技能提升目标  
  
-------------------------------------------------------
  • 查看笔记内容
## 语法:通过 'dnote v 笔记本名称' 查看指定笔记本下的笔记列表  
  
nas:~$ dnote v 'nas上手指南'  
on book nas上手指南  
(5)-硬件设备采购[---More---]  
(6)-软件应用安装[---More---]  
  
## 语法:使用 'dnote v 笔记本名称 笔记ID' 查看具体笔记详情  
nas:~$ dnote v 'nas上手指南' 6  
  DEPRECATED: you no longer need to pass book name to the view command. e.g.`dnote view 123`.  
  
book name: nas上手指南  
created at: Jan 1, 2025 12:02 am (CST)  
note id: 6  
note uuid: c9befc36-d2ec-4be5-8d29-9c645fb7a2b3  
  
------------------------content------------------------  
- 软件应用安装  
- 技术问题求助  
- 技能提升目标  
  
-------------------------------------------------------
  • 编辑现有笔记
## 首先通过 dnote v 命令确认笔记本和笔记ID  
## 语法:执行 'dnote v 笔记本名称 笔记ID' 可打开笔记并进入编辑模式
  • 搜索笔记内容
nas:~$ dnote find house   # 根据关键词搜索,显示匹配的笔记本、笔记ID及内容片段  
  (house) (3) new house   
  (house) (4) another house, hoho   
nas:~$ dnote find ano  # 注意:仅支持完整词汇匹配  
nas:~$ dnote find another -b house  # 限定在指定笔记本内搜索  
  (house) (4) another house, hoho 
  • 账户登录与数据同步
## 使用已注册账户登录服务端  
dnote login -u myusername@163.com -p mypasswd  
## 执行数据同步操作  
dnote sync -f # 全量同步所有笔记  
dnote sync  # 增量同步最新变更

使用总结与建议

dnote特别适合开发运维人员在工作中使用,当突发灵感或需要记录技术要点时,可直接在终端快速记录,无需切换至浏览器或其他图形界面应用。

该工具与tmux终端复用器搭配使用效果更佳,通过窗口分割或新建面板,实现灵感即时捕捉与记录。

如果追求极致的终端使用体验,建议配合时尚的终端模拟器(如近期流行的waveterm),开启炫酷视觉效果,同时使用机械键盘,在清脆的敲击声中享受高效笔记的乐趣。这种组合不仅能提升工作效率,也能为工作环境增添专业氛围。