【保姆级教程】飞牛NAS部署Memos+Mortis:打造PC、手机、平板三端同步的私人笔记神器

前言:

你是否也苦恼于笔记软件数据不安全、手机电脑不同步?

今天教大家在飞牛NAS(FNOS)上部署 Memos(轻量级笔记)+ Mortis(移动端适配器),配合 >FRP内网穿透,真正实现 “数据在手,随时随地”。无论是PC浏览器、iPad还是手机APP,都能丝滑>访问,灵感不再溜走!


🚀 第一步:NAS端部署 Memos + Mortis

我们利用Docker Compose一次性部署两个容器:Memos负责记录,Mortis负责让手机App更好用。

1、在飞牛桌面打开 Docker
image-20251220183213734

2、点击左侧 Compose,再点击右上角的 新增项目

image-20251220183330415

3、填写配置信息(重点!):

image-20251220225923189

  • 项目名称:memos
  • 路径:建议选 /vol1/1000/docker/memos(根据实际硬盘位置选择)
  • 来源:选择“创建docker-compose.yml”
  • 配置内容:复制下方代码填入,点击确定。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
services:
memos:
image: neosmemo/memos:0.25.3
container_name: memos
volumes:
- ./data:/var/opt/memos
ports:
- "5230:5230"

mortis:
image: ghcr.io/mudkipme/mortis:0.25.3
container_name: mortis
ports:
- "5231:5231"
entrypoint: ["/app/mortis"]
command: ["-grpc-addr=memos:5230"]
depends_on:
- memos

4、创建成功后,点击右侧的 启动 按钮。

image-20251220184447350

⚠️ 注意:下载报错怎么办?

如果启动后报错(如下图),说明网络无法拉取镜像,需要配置加速源。若正常下载请跳至第6步。

image-20251220184818047

解决方法:

  1. 点击左侧“镜像仓库” -> 右上角“设置” -> “加速源设置”。

image-20251220185040178

  1. 逐个添加以下网址:

    https://docker.m.daocloud.io

    https://huecker.io

    https://dockerhub.timeweb.cloud

    https://noohub.ru

    image-20251220230859959

  2. 保存并重启Docker即可。
    image-20251220231003856

5、回到Compose列表,启动项目。等待下载完成(可以刷会儿视频休息一下~)。

image-20251220185631121
image-20251220231020065
6、当看到日志停止滚动,显示Completed,说明安装完成。

image-20251220231031691

7、点击左侧“容器”,确认 mortismemos 都在运行。点击连接图标处的端口号,即可在浏览器打开Memos。

image-20251220191645041

8、注册你的管理员账号(用户名/密码)。

image-20251220231121279

🌐 第二步:云服务器搭建 FRP 服务端

为了在外面也能访问家里的NAS,我们需要一台云服务器做中转。(腾讯云/阿里云均有试用,大家自行获取)。

我们需要先打开本地的远程SSH访问!已经打开过的可以跳过这一步
1、桌面点击系统设置
image-20251220200357656

2、点击左侧SSH,点击右侧按钮打开,然后关闭当前页面

image-20251220231202223

这里我们将使用飞牛NAS自带的SSH工具连接云服务器,非常方便!

1、准备工具:在飞牛桌面“应用中心”搜索并安装 FmtermX 终端。

image-20251220193913338
image-20251220194203162

(安装过程一路点击“下一步”和“确认”即可)

image-20251220194235441
image-20251220194314015

2、打开FmtermX,首次进入需设置一个密码。

image-20251220194335470
image-20251220194427039

3、点击 远程终端,输入你的云服务器IP、用户名(通常是root)和密码,点击保存并连接。

image-20251220201608844
image-20251220201754456
image-20251220201927299

4、连接成功后,先获取root权限(输入密码时不可见,输完回车):

1
sudo -i

image-20251220202200893

5、安装 Kejilion工具箱(一键部署FRP的神器):

1
bash <(curl -sL kejilion.sh)

y 确认进入。
image-20251220202545571
6、安装FRP服务端

  • 主菜单输入 11 (FRP内网穿透)

image-20251220201339065

  • 接着输入 55 (安装FRP服务端)

image-20251220202646191

  • 输入 1 确认安装

image-20251220202726467

7、安装完成后,务必截图保存红色框内的配置参数!(特别是Token密钥和端口,下一步要用)。

image-20251220203134549


🔗 第三步:NAS端配置 FRP 客户端

服务端搭好了,现在我们要让飞牛NAS去连接它。

1、回到FmtermX,点击左侧小箭头 -> 新建会话 -> 选择 本地终端 -> 创建。

image-20251220203305081

image-20251220203337850

image-20251220203411490

2、在飞牛的本地终端中,同样获取root权限并运行脚本:

1
2
sudo -i
# 输入飞牛密码,回车
1
bash <(curl -sL kejilion.sh)

image-20251220194756438

3、配置穿透

  • 输入 y 进入脚本。

  • 输入 11 (FRP内网穿透)。

  • 输入 56 (安装FRP客户端)。

  • 输入 1 确认安装。
    image-20251220201305179
    image-20251220201339065
    image-20251220201412514
    image-20251220201447375

    4、填写连接信息:根据刚才截图保存的服务器信息,依次填入(IP、端口、Token等),千万别填错。

image-20251220203851974

5、添加穿透规则(将NAS服务暴露出去):

  • 选择 4 (添加TCP映射)。
  • 服务名称memos
  • 转发类型:回车默认
  • 内网IP:回车默认
  • 内网端口5231 (这里填Mortis的端口,方便手机连接)
  • 外网端口4231 (自定义一个外部端口)

image-20251220205829023


🌍 第四步:公网访问设置(域名 vs IP)

回到 云服务器(FRP服务端),我们需要放行端口。

方案A:域名访问(推荐,更安全好记)

  1. 放行端口:在腾讯云后台“安全组”,添加入站规则,放行 52314231 端口(TCP)。

image-20251220214059019

  1. 解析域名:在DNS控制台将域名解析到云服务器IP。

image-20251220215734899

  1. 配置Nginx:在工具箱输入 5(Nginx反代),输入域名,内网端口填 4231。脚本会自动帮你配置好HTTPS和反向代理。

image-20251220220154326

方案B:IP+端口访问(适合测试)

  1. 在工具箱输入 7,直接放行 4231 端口即可。

image-20251220220230325

现在,你在浏览器输入 http://你的域名http://服务器IP:4231,应该就能看到Memos的登录界面了!


📱 第五步:手机端APP完美同步

最后一步,让手机也能丝滑使用。

1、在浏览器登录你的Memos,点击左下角 设置 -> Language -> 创建中文(简体)

image-20251220221547522

2、点击左下角 设置 -> 我的账号 -> 创建Access Token。

image-20251220222306056

image-20251220222554426

3、复制这串Token发送到手机上。

image-20251220222644717

3、下载手机App:MoeMemos

4、打开App,填入你的 服务器地址(域名或IP+端口)和刚刚复制的 Access Token,点击登录。

image-20251220222927661
🎉 大功告成!

现在,你已经在飞牛NAS上拥有了一套完整的、支持多端同步的私人笔记系统。快去记录你的生活和灵感吧!


(如果教程对你有帮助,欢迎点赞回复,有问题请在评论区留言~)


🚀 纯小白向!在飞牛OS搭建高颜值“第二大脑” Memos:从零部署到独家美化全攻略

前言:为什么要用 Memos?

你是否在寻找一款像 Flomo(浮墨) 那样轻量、支持碎片化记录,但又希望 数据完全掌握在自己手中 的笔记工具?

Memos 就是你的最佳选择!它是一款开源、隐私优先的笔记服务,支持标签管理、热力图展示,界面清爽。今天,我将手把手教你在 飞牛OS (fnOS) 上部署 Memos,并附赠一套 独家CSS美化代码,让你的笔记界面瞬间“颜值爆表”!

image-20251218162526148


🛠️ 第一阶段:拉取镜像 (下载安装包)

  1. 打开 Docker 管理器

进入飞牛OS桌面,找到并点击 「Docker 」 图标。

1

  1. 搜索镜像

点击左侧菜单的 「镜像仓库」。在搜索框输入 memos,按回车键(Enter)搜索。

2-有仓库

⚠️ 注意: 如果如下图所示显示“暂无数据”,通常是网络问题,请检查你的网络连接或配置镜像加速。

2-有仓库

  1. 下载镜像

找到列表中的 memos(通常排在第一位),点击右侧的 「下载」 按钮(图中圈出的按钮)。

image-20251218151137261

  1. 选择版本

在弹出的标签选择框中,默认选择 latest(最新版)即可,点击 「确定」。此时系统会提示成功创建下载任务。

image-20251218151236881

image-20251218151311871

  1. 等待下载完成

点击左侧 「本地镜像」 查看进度。根据网络状况,下载可能需要 5分钟左右,请耐心等待直到状态显示“已完成”。

image-20251218151509496

  1. 启动容器

下载完成后,找到 memos 镜像,点击右侧的 「运行」 (三角形) 按钮。

image-20251218151601936


⚙️ 第二阶段:配置容器 (核心步骤)

  1. 基础设置

在创建容器界面,勾选 「开机自动启动」,然后点击“下一步”。

7-开机自启

8. 高级设置(请严格对照填写)

这一步至关重要,请按照以下说明操作:

  • ① 端口设置:

    • 左侧(本地端口):5230(这是你访问Memos的端口,如有冲突可修改)

    • 右侧(容器端口):5230(千万不要修改!保持默认)

      image-20251218152312468

  • ② 存储路径(数据持久化):

    我们需要给 Memos 指定一个“家”,防止重启后数据丢失。

    • 建议路径结构:/vol1/1000/docker/memos (推荐在docker文件夹下新建memos文件夹,管理更清晰)image-20251218152520864
    • 将此路径映射到容器内部路径(通常是 /var/opt/memos,具体看镜像说明,但在飞牛OS的可视化界面通常只需选择本地路径即可)。image-20251218152540990
  • ③ 环境变量: 保持默认,不用动。

    image-20251218152643949

  • ④ 功能选项: 建议勾选 「使用高权限执行容器」(特权模式)。

    • 老玩家经验:很多Docker容器如果不给高权限,可能会出现莫名其妙的Bug。

      image-20251218152744543

  • ⑤ 网络: 保持默认(Bridge模式)。

    image-20251218152835183

  • ⑥ 命令: 留空即可,不用动。

    image-20251218152851417

设置完成后,点击 「下一步」

image-20251218152934361

  1. 完成创建

在确认页面,确保 「创建后启动」 已勾选,点击 「创建容器」。

image-20251218153046548

当左侧容器列表出现 小绿点 时,说明 Memos 已经成功运行了!

image-20251218153132703


💻 第三阶段:初始化与安全设置

  1. 访问 Memos

点击运行中的容器,会出现详情页。你可以通过以下两种方式进入:

  1. 点击界面上的快捷访问链接。

    image-20251218153250832

  2. 直接在浏览器地址栏输入:http://飞牛OS的IP地址:5230

  3. 创建管理员账号

首次进入会弹出注册页面。输入你想要的 用户名 和 密码,并将语言选择为 中文(简体),点击注册。

image-20251218153545051

  1. 欢迎界面

当你看到 Memos 简洁的输入框界面时,恭喜你!安装已经大功告成。

image-20251218153643795

  1. 安全加固:关闭注册

由于我们是自用,为了防止陌生人注册,建议关闭注册功能:

  • 进入 Memos 左下角的 「设置 (Settings)」 -> 「系统 (System)」

  • 找到 “禁止用户注册 (Disallow user registration)” 选项,将开关 打开

    image-20251218154228916


🎨 第四阶段:注入灵魂 —— 独家CSS美化

原生的界面太朴素?送大家一份我珍藏的 CSS 美化包,包含霞鹜文楷字体、渐变背景和卡片优化。

操作步骤:

进入 设置 -> 系统 -> 自定义样式 (Custom CSS),将下方代码完整复制并粘贴进去,保存即可生效。

image-20251218161950704

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/****** 1. 全局字体优化 (使用霞鹜文楷) ***********/
@import '//cdn.imsun.org/lxgw-wenkai-screen-webfont/lxgwwenkaigbscreen.css';
body {
font-family: "LXGW WenKai Screen", sans-serif;
}

/************** 2. 梦幻渐变背景 **************************/
/* 如果喜欢纯图片背景,可以使用: background-image:url('你的图片链接'); */
#root>div:nth-child(1) {
background-color: hsla(119, 77%, 83%, 1);
background-image:
radial-gradient(circle at 5% 1%, hsla(196, 76%, 61%, 1) 7%, transparent 84%),
radial-gradient(circle at 7% 81%, hsla(130, 91%, 91%, 1) 16%, transparent 53%),
radial-gradient(circle at 11% 29%, hsla(159, 97%, 75%, 1) 8%, transparent 74%),
radial-gradient(circle at 39% 52%, hsla(95, 93%, 64%, 1) 6%, transparent 68%),
radial-gradient(circle at 90% 50%, hsla(64, 94%, 89%, 1) 2%, transparent 85%);
background-blend-mode: normal, normal, normal, normal, normal;
}

/*** 3. 笔记卡片样式优化 ***/
/* 方案A:浅青色背景 (如想用此方案,请删除下方方案B的代码) */
/*
.group {
background-color: lightblue;
}
*/

/* 方案B:强制透明背景 (让卡片融入渐变底色,推荐!) */
.group {
background-color: transparent !important;
}

/************** 4. 标签(Tag)美化 ********************/
span.inline-block.w-auto.text-blue-600 {
border: 1px solid;
border-radius: 6px;
padding: 0px 6px;
color: rgb(22, 163, 74) !important;
font-size: 14px !important;
/* 稍微缩小标签字体,更精致 */
-webkit-transform: scale(calc(10 / 12));
transform-origin: left center;
}

粘贴完代码后,刷新网页,你会发现 Memos 焕然一新!快去试试吧!

告别 Word,为什么我选择 Markdown 写作?

自从搭建了这个个人博客,我就彻底爱上了 Markdown 这种轻量级标记语言。

什么是 Markdown?

Markdown 是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。

相比 Word,它的优势在哪里?

  1. 专注于内容
    在 Word 里,我们经常为了排版浪费时间(调字号、调行间距)。而在 Markdown 里,你只需要输入 # 就是标题,输入 * 就是列表,完全不需要鼠标点击,让你沉浸在写作本身。

  2. 格式统一
    无论在哪个编辑器里打开,Markdown 的源文件都是纯文本,不会出现“在这个电脑上排版乱了”的情况。

  3. 代码高亮
    对于程序员来说,Markdown 最棒的功能就是对代码块的支持。

    1
    2
    3
    public static void main(String[] args) {
    System.out.println("Hello, Markdown!");
    }

结语

强烈推荐大家尝试一下 Markdown。不需要复杂的软件,一个记事本就能写。如果你也是技术爱好者,它绝对是你的必备技能。

Python 学习日记:优雅的列表推导式

最近开始系统学习 Python,发现它真的比 C++ 和 Java 简洁太多了。特别是“列表推导式”(List Comprehension)这个特性,简直是提升代码可读性的神器。

什么是列表推导式?

简单来说,就是用一行代码代替传统的 for 循环来生成列表。

场景: 假设我们需要生成一个包含 0 到 9 的平方数的列表。

普通写法:

squares = []
for x in range(10):
    squares.append(x**2)
print(squares)
列表推导式写法:

Python

squares = [x**2 for x in range(10)]
print(squares)
结果是一样的:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]。但是代码量减少了很多,而且阅读起来更符合直觉。

带条件的推导式
比如我们只要偶数的平方:

Python

even_squares = [x**2 for x in range(10) if x % 2 == 0]
总结
Python 的哲学是 "Simple is better than complex"。虽然列表推导式很好用,但也不要写得太复杂,否则反而降低了可读性。继续加油,争取下周把爬虫基础看完!


---

**解释一下原理:**
你把上面这段“乱乱的”带符号的文字放进 `.md` 文件后,Hexo 这个程序会读取这些符号(比如 `###` 和 ````python`),然后自动把它转换成你截图里那种漂亮的网页。

现在试试看,这样能不能生成文件?

Docker 容器化部署初探:为什么我们需要容器?

随着微服务架构的流行,Docker 已经成为了后端开发和运维必须掌握的技能。最近抽空系统了解了一下 Docker 的基础概念,做个简单的总结。

传统虚拟机 vs 容器

在 Docker 出现之前,我们通常使用虚拟机(VM)来隔离环境。

  • 虚拟机: 需要模拟硬件,运行完整的操作系统,启动慢,占用资源多(GB 级别)。
  • 容器(Docker): 共享宿主机的内核,只打包应用代码和依赖库,启动是秒级的,且非常轻量(MB 级别)。

Docker 的三个核心概念

  1. 镜像 (Image)
    类似于“安装包”或者“快照”。它是一个只读的模板,包含了运行程序所需的一切环境。

  2. 容器 (Container)
    镜像运行起来就是容器。如果说镜像是类(Class),容器就是实例(Instance)。容器是可以被启动、停止、删除的。

  3. 仓库 (Repository)
    存放镜像的地方,类似于代码仓库 GitHub。最常用的是 Docker Hub。

常用命令体验

# 拉取一个 nginx 镜像
docker pull nginx:latest

# 运行容器
docker run -d -p 80:80 --name my-nginx nginx

# 查看正在运行的容器
docker ps

Linux 常用基础命令备忘录

最近在整理服务器维护的一些常用命令,把平时用得比较多的记录一下,方便以后查阅。

1. 文件与目录操作

最基础的操作,每天都要用。

  • ls -l: 列出当前目录下的文件详细信息。
  • cd /path/to/directory: 切换目录。
  • mkdir new_folder: 创建一个新目录。
  • rm -rf folder_name: 删除文件夹及其内容(注意:使用时要非常小心!)。
  • cp source_file dest_file: 复制文件。
  • mv old_name new_name: 移动或重命名文件。

2. 系统资源查看

当服务器感觉变慢时,通常会用这些命令排查。

  • top: 实时显示系统进程和资源占用情况(CPU、内存)。
  • df -h: 查看磁盘空间使用情况,-h 是为了让显示更人性化(以 GB/MB 为单位)。
  • free -m: 查看内存使用情况。

3. 网络相关

  • ping www.baidu.com: 测试网络连通性。
  • ifconfigip addr: 查看本机的 IP 地址配置。
  • netstat -ntlp: 查看当前所有监听的端口,排查端口冲突时很有用。

总结

Linux 的命令浩如烟海,不需要背诵所有参数,掌握核心的几十个就能应付大部分场景了。遇到不会的直接 man 一下或者搜文档即可。

本文仅为个人学习记录,如有错误欢迎指正。