Docker 玩法

飞牛NAS部署 Flatnotes:极简记事本

你有没有过这样的经历:突然想到一个创意、记下一个临时密码,或者看到一段值得收藏的网页片段,却找不到一个既轻量又私密的记录工具?手机自带备忘录很好用,但跨设备同步总需要折腾;第三方笔记应用功能强大,却往往过度复杂,而且数据存储在别人服务器上。今天,我们就用飞牛NAS来部署Flatnotes——一个极简、自托管的记事本应用,让你拥有完全属于自己的笔记系统。

为什么选择Flatnotes?

Flatnotes最大的特点就是“极简”。它没有复杂的目录结构、没有标签系统、没有Markdown编辑器里那些花哨的按钮——只有纯粹的文本编辑和搜索。但它有几个让你爱不释手的功能:

  • 纯文本 + Markdown:支持Markdown语法,写代码片段、列表、标题都很方便
  • 全文本搜索:瞬间搜索所有笔记内容,比文件管理器快得多
  • 移动端适配:手机浏览器打开体验很好,相当于一个私有云笔记
  • 零数据库依赖:笔记直接存储为Markdown文件,随时可以用其他工具读取
  • Docker部署:一个容器搞定,资源占用极低

准备工作

在开始之前,请确保你的飞牛NAS满足以下条件:

  1. 已安装Docker(飞牛NAS系统默认安装或可在应用商店安装)
  2. 有一个存放笔记数据的文件夹(建议放在共享目录下,方便管理)
  3. 网络环境正常,能拉取Docker镜像

第一步:创建数据目录

SSH登录到你的飞牛NAS,或者直接在文件管理器中操作。这里我建议使用命令行,更清晰:

# 登录飞牛NAS后,进入共享存储目录
cd /vol1/1000/  # 根据你的实际存储卷调整

# 创建flatnotes的数据目录
mkdir -p docker/flatnotes/data

# 查看目录是否创建成功
ls -la docker/flatnotes/

如果你习惯用文件管理器,就在共享文件夹下创建 docker/flatnotes/data 目录。

第二步:编写Docker Compose配置

我们不直接使用docker run命令,而是用docker-compose.yml来管理,这样以后升级或迁移都很方便。

docker/flatnotes 目录下创建 docker-compose.yml 文件:

cd /vol1/1000/docker/flatnotes  # 进入刚才创建的目录
nano docker-compose.yml          # 用nano编辑,你也可以用vi

粘贴以下内容:

version: '3.8'

services:
  flatnotes:
    image: dullage/flatnotes:latest
    container_name: flatnotes
    restart: unless-stopped
    ports:
      - "8080:8080"    # 左边是宿主机端口,可按需修改
    volumes:
      - ./data:/data   # 映射笔记数据目录
    environment:
      - FLATNOTES_AUTH_TYPE=password
      - FLATNOTES_USERNAME=admin
      - FLATNOTES_PASSWORD=your_strong_password
      - PUID=1000      # 飞牛NAS的用户ID,通常为1000
      - PGID=1000      # 飞牛NAS的用户组ID

重要说明: - 修改 FLATNOTES_USERNAMEFLATNOTES_PASSWORD 为你自己的账号密码 - 如果8080端口被占用,可以改成其他端口,比如 "8090:8080" - PUIDPGID确保容器内创建的文件归属正确,避免权限问题

保存文件(nano中按 Ctrl+O,回车,然后 Ctrl+X 退出)。

第三步:启动容器

执行以下命令启动服务:

# 确保在 docker/flatnotes 目录下
docker compose up -d

如果一切正常,你会看到类似输出:

[+] Running 2/2
 ✔ Network flatnotes_default  Created
 ✔ Container flatnotes        Started

检查容器运行状态:

docker ps | grep flatnotes

应该能看到容器状态为 Up,正常运行。

第四步:访问与配置

打开浏览器,输入 http://你的飞牛NAS的IP地址:8080,比如 http://192.168.1.100:8080

你会看到Flatnotes简洁的登录界面: - 输入你设置的 FLATNOTES_USERNAMEFLATNOTES_PASSWORD - 点击登录,进入主界面

Flatnotes界面示例

界面上方是搜索框,下方是笔记列表,点击“New Note”创建新笔记。左侧是笔记预览,右侧是Markdown编辑器——就这么简单。

进阶配置:HTTPS与反向代理

如果你希望通过域名在外网安全访问Flatnotes,建议使用飞牛NAS自带的Nginx反向代理功能(或部署Nginx Proxy Manager)。这里提供一个简单的Nginx配置示例:

server {
    listen 443 ssl;
    server_name notes.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

这样就能通过 https://notes.yourdomain.com 安全访问你的笔记了。

日常使用技巧

  1. 笔记命名:Flatnotes以文件名作为笔记标题,建议用英文或拼音命名,避免特殊字符
  2. 批量导入:直接把 .md 文件复制到 data 目录下,重启容器即可自动识别
  3. 备份策略:只需备份 data 目录下的所有 .md 文件,没有任何数据库依赖
  4. 移动端使用:把网页添加到手机桌面,体验接近原生App

可能遇到的问题

Q:容器启动后无法访问? A:检查飞牛NAS的防火墙是否开放了8080端口,或者尝试更换其他端口(如8090)。

Q:创建笔记后,文件权限不对? A:检查docker-compose.yml中的PUIDPGID是否与你的飞牛NAS用户一致(通常为1000)。

Q:搜索功能不生效? A:确保笔记内容为纯文本或Markdown格式,Flatnotes暂不支持PDF等二进制文件搜索。

总结

Flatnotes虽然功能简单,但正是这种“少即是多”的设计理念,让它成为日常快速记事的利器。部署在飞牛NAS上,你的笔记数据完全由自己掌控,不用担心第三方服务关闭、隐私泄露等问题。整个部署过程不超过10分钟,值得一试。

现在,打开你的浏览器,写下第一个笔记吧——比如这篇教程的地址,或者你今天灵光一现的创意。毕竟,最好的笔记系统就是那个你愿意经常使用的系统。

💬 评论区
leave a comment

no comments yet