目 录CONTENT

文章目录

在飞牛云NAS或VPS用Docker搭建一个自托管-无数据库的在线Markdown笔记应用

yyzq
2025-02-18 / 0 评论 / 0 点赞 / 271 阅读 / 2,101 字

前言

Flatnotes 旨在提供一个无干扰的笔记体验,专注于内容本身。它拥有简洁的界面,取消了文件夹和笔记本的复杂结构,仅通过强大的搜索和标签功能帮助用户管理笔记。笔记存储为纯 Markdown 文件,无数据库或专有格式,这意味着你的笔记数据完全由你控制,不会被任何第三方服务锁定随时可以迁移和使用其他应用。Flatnotes 只缓存搜索索引,支持增量同步,允许在应用外部自由编辑和管理笔记文件。
image-1739882565391

特征

📱 移动响应式界面
无论是在手机还是电脑上,Flatnotes 都能提供流畅的用户体验,保证在不同设备上的一致性。
🖊️ 双模式编辑器
提供原生 Markdown 编辑和所见即所得(WYSIWYG)两种编辑模式,满足不同用户的使用习惯。
🔍 高级搜索功能
支持全文搜索,能够迅速从应用的任何位置找到所需的笔记。
image-1739882599097
🏷️ 笔记标签系统
通过标签对笔记进行分类和管理,提升笔记的组织性和查找效率。
🔗 Wikilink 支持
可以轻松创建链接到其他笔记,方便内容间的跳转,构建更加有机的笔记体系。
🌓 主题切换
提供浅色和深色主题,用户可以根据个人喜好和环境光线选择最适合的显示模式。
image-1739882642006
🔐 多认证选项
支持多种认证方式,包括无认证、只读、用户名/密码以及双因素认证,保障数据安全。
🌐 RESTful API
提供方便的 API 接口,便于与其他应用进行集成,拓展功能性。

准备条件

1)一台服务器或者NAS
我们使用飞牛云NAS和VPS来演示

需要vps的可以看以下信息

香港VPS

香港Colo数据中心,3C直连,平均延时30+ms,免备案

名称 CPU RAM 硬盘 带宽 月流量 价格 购买链接
香港BGP 标配版 1C 1G 30G 3Mbps 无限 22 元/月 点我购买
香港BGP 限量款 2C 4G 30G 3Mbps 无限 25 元/月 点我购买
香港BGP(弹性) 2 – 16C 4 – 32G 30 – 400G 3 – 20Mbps 无限 22 元/月起 点我购买

香港Mega Two数据中心,三网CN2 GIA优化,实现全国超低延迟。

名称 CPU RAM 硬盘 带宽 月流量 价格 购买链接
香港CN2 GIA 标配版 1C 1G 20G 3Mbps 无限 30 元/月 点我购买
香港CN2 GIA(弹性) 2 – 32C 2 – 128G 40 – 700G 3 – 30Mbps 无限 48 元/月起 点我购买

日本VPS

日本服务器介绍
电信去程163,回程CN2,移动联通双程骨干直连,宽带质量优秀。

名称 CPU RAM 硬盘 带宽 月流量 价格 购买链接
日本CN2(弹性) 1 – 16C 1 – 16G 20-200G 5 – 20Mbps 不限流量 46 元/月起 点我购买
日本CN2大带宽(弹性) 1 – 16C 1 – 16G 20-200G 20 – 50Mbps 500G/月 55 元/月起 点我购买

韩国VPS

韩国服务器介绍
韩国CN2优化线路,大陆访问快速响应,电信CN2
线路,带宽质量优秀

名称 CPU RAM 硬盘 带宽 月流量 价格 购买链接
韩国CN2(弹性) 1 – 32C 1 – 128G 20 – 100G 3 – 20Mbps 看需求 ¥ 35.00 起/ 月 点我购买
韩国CN2大带宽(弹性) 1 – 32C 1 – 128G 20 – 100G 20 – 50Mbps 300G/月起 38 元/月起 点我购买

美国VPS

美国T级防御云服务器介绍
去程普通线路,回程CN2/9929线路,大陆防御值为200G,超过峰值解封快。

名称 CPU RAM 硬盘 带宽 月流量 价格 购买链接
美国T级防御(弹性) 1 – 16C 1 – 16G 20 – 100G 20 – 300Mbps 不限流 40 元/月起 点我购买
美国高防(弹性) 1 – 16C 1 – 16G 20 – 200G 10 – 30Mbps 不限流 58 元/月起 点我购买
美国高防大带宽(弹性) 1 – 16G 1 – 16G 20 – 200G 20 – 50Mbps 500G/月 56 元/月起 点我购买

2)本项目使用到的github

https://github.com/dullage/flatnotes

3)域名(可选)
最好是绑定下域名

①《飞牛NAS上搭建》

直接在docker新增一个compose项目即可
新建项目:

flatnotes
version: "3"

services:
  flatnotes:
    container_name: flatnotes  # 设置容器名称为 flatnotes
    image: dullage/flatnotes:latest  # 使用最新版本的 flatnotes 镜像
    environment:
      PUID: 1000  # 设置容器内用户的UID为1000
      PGID: 1000  # 设置容器内用户组的GID为1000
      FLATNOTES_AUTH_TYPE: "password"  # 设置认证类型为密码
      FLATNOTES_USERNAME: "user"  # 设置登录用户名为 user
      FLATNOTES_PASSWORD: "changeMe!"  # 设置登录密码为 changeMe!
      FLATNOTES_SECRET_KEY: "aLongRandomSeriesOfCharacters"  # 设置 Flatnotes 的密钥
    volumes:
      - "./data:/data"  # 将当前目录的 data 文件夹挂载到容器内的 /data 目录
      # Optional. Allows you to save the search index in a different location: 
      # - "./index:/data/.flatnotes"  # 可选:将搜索索引保存在不同位置
    ports:
      - "4080:8080"  # 将容器的 8080 端口映射到主机的 4080 端口
    restart: always  # 容器崩溃后自动重启,直到手动停止

image-1739882911204

如果你有markdown格式文件直接放到这个data目录即可使用
image-1739883403888

补充docker可用的镜像仓库

https://proxy.1panel.live/
https://docker.1panel.top/
https://mirror.azure.cn/
https://hub.rat.dev/
https://docker.1ms.run

《vps上搭建》

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir flatnotes;cd flatnotes #创建一个目录,并进入此目录
vim docker-compose.yml
version: "3"

services:
  flatnotes:
    container_name: flatnotes  # 设置容器名称为 flatnotes
    image: dullage/flatnotes:latest  # 使用最新版本的 flatnotes 镜像
    environment:
      PUID: 1000  # 设置容器内用户的UID为1000
      PGID: 1000  # 设置容器内用户组的GID为1000
      FLATNOTES_AUTH_TYPE: "password"  # 设置认证类型为密码
      FLATNOTES_USERNAME: "user"  # 设置登录用户名为 user
      FLATNOTES_PASSWORD: "changeMe!"  # 设置登录密码为 changeMe!
      FLATNOTES_SECRET_KEY: "aLongRandomSeriesOfCharacters"  # 设置 Flatnotes 的密钥
    volumes:
      - "./data:/data"  # 将当前目录的 data 文件夹挂载到容器内的 /data 目录
      # Optional. Allows you to save the search index in a different location: 
      # - "./index:/data/.flatnotes"  # 可选:将搜索索引保存在不同位置
    ports:
      - "4080:8080"  # 将容器的 8080 端口映射到主机的 4080 端口
    restart: always  # 容器崩溃后自动重启,直到手动停止

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

 docker-compose ps
WARN[0000] /vol1/1000/docker/flatnotes/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
NAME        IMAGE                      COMMAND            SERVICE     CREATED          STATUS                    PORTS
flatnotes   dullage/flatnotes:latest   "/entrypoint.sh"   flatnotes   29 minutes ago   Up 29 minutes (healthy)   0.0.0.0:4080->8080/tcp, [::]:4080->8080/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口(4080)防火墙就可以web端访问了
打开自己VPS的端口加ip进入初始化页面

http://ip:4080

image-1739883333629

五、绑定域名

绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

0

评论区