轻量级碎片化笔记memos本地NAS部署与跨平台跨网络同步笔记实战
文章目录
- 前言
- 1. 使用Docker部署memos
- 2. 注册账号与简单操作演示
- 3. 安装cpolar内网穿透
- 4. 创建公网地址
- 5. 创建固定公网地址
推荐
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站
前言
本文主要介绍如何在安装了轻NAS系统CasaOS设备中使用Docker本地部署开源云笔记服务memos,并结合cpolar内网穿透工具配置公网地址,打造一个可跨设备、跨网络同步的私人云笔记。
对很多学生党来说,往往都有把自己偶然迸发的想法,上课记的笔记,喜欢的图片,有用的链接保存到一个地方,然后使用自己所有的设备都可以访问的需求。
memos就能轻松的做到这一点,无论你在手机、平板、不同的系统的电脑上,都可以轻松访问你保存在上边的内容。支持实时修改并同步,而且所有的数据都保存在你的本地,相对来说更可控也更安全一些。
因为CasaOS集成了Docker功能,所以在如香橙派、N1盒子、玩客云这样的小主机中部署一些像memos这种轻量级服务非常简单,一条docker命令就可以搞定。而且它就像路由器一样,7*24小时开机也不会有太多的耗电量,主机本身也很便宜,用来部署一个私有云笔记来说,属于经济又实惠了。
而且,我们还可以利用cpolar生成公网地址,让你不仅可以在局域网内多设备使用memos服务,实现公网环境依然可以访问你在本地部署的memos!

1. 使用Docker部署memos
首先我们需要在CasaOS玩客云中打开左上角的终端按钮,输入root账号密码登录ssh(如果不知道如何获取root账号密码可以看我的上篇文章:玩客云刷CasaOS系统后如何安装内网穿透实现远程访问本地文件


然后在终端中执行下边的命令:
docker run -d --name memos --restart=unless-stopped -p 5230:5230 -v /mnt/docker/memos:/var/opt/memos neosmemo/memos:0.15.0
该
/var/opt/memos目录是 Docker 中卷的目录,不应修改。另外,如果拉取不到镜像,可以在终端执行 nano /etc/docker/daemon.json
输入:
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.1panel.live" ] }保存退出
然后执行:
sudo systemctl restart docker

命令执行后,回到系统桌面可以看到带重建的memos笔记,点击重建即可。

此时,我们已经部署完毕,单击打开即可在浏览器中看到笔记的web界面。

2. 注册账号与简单操作演示
点击左上角logo按钮即可跳转注册页面注册一个管理员账号,底部可以选择注册时候的语言。

注册成功后,我们可以在setting-preferences中设置笔记中的语言,选择简体中文即可。


输入文字,点击保存即可看到发布的文字。

点击编辑,即可修改文字内容,或者设置内容的浏览权限。


如果选择仅自己可见,那只有当前账号使用者可以看见这段文字。
如果选择所有人可见,那么将这个笔记的局域网地址分享给你的室友,他不需要注册账号也可以看到这段文字。
而登录用户可见,则是需要其他人在部署在这个地址的笔记服务中创建账号才能看到这段文字。
有两种方式可以让其他人注册账号,第一个是在设置-系统中把允许注册账号的选项打开。

第二中是在设置-成员中,手动为其他人创建一个账号密码。

除了发布文字内容,我们还可以在memos中发布图片或者视频内容。
拿发布图片举例,点击首页,可以在输入框中直接截图后粘贴到里边,也可以点击井号旁边的上传按钮在本地文件中选择后进行上传,两种方式都可以,就很奈斯。


更多使用相关方法,大家也可以去它的网站中去学习,地址放在这里:https://www.usememos.com/docs/install
3. 安装cpolar内网穿透
首先,点击左上角进入终端:

然后在终端中执行下方命令,安装cpolar内网穿透工具:
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

然后执行下面的命令查看版本号,有正常显示版本号即为安装成功
cpolar version

可以看到版本号,安装成功,下一步进行token认证。
首先在浏览器访问cpolar官网:http://www.cpolar.com
注册账号后登录cpolar官网后台,点击左侧的验证,查看自己的认证token。

然后将token(xxxxxxx)贴在cpolar authtoken的命令后,执行命令:
cpolar authtoken xxxxxxx

操作完成后,可以进行简单穿透测试:
cpolar http 8080

可以看到成功生成了两个指向本机8080端口的随机公网地址。
然后需要执行下面的命令向系统添加cpolar服务:
systemctl enable cpolar

然后执行下面命令启动cpolar服务:
systemctl start cpolar
查看服务状态:
systemctl status cpolar

能看到cpolar服务已经正常启动。
4. 创建公网地址
cpolar安装成功并启动服务后,在外部浏览器上访问CasaOS的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后在Web UI管理界面配置即可。

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:memos
- 协议:http
- 本地地址:5230
- 域名类型:随机域名
- 地区:选择China TOP
点击创建

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式:http和https,任选其一到浏览器访问即可。

在浏览器地址栏输入cpolar生成的公网地址,可以看到成功访问本地部署的memos笔记的Web页面。

输入账号密码后登录,即可在公网环境远程使用本地部署的memos服务,之前发布的内容也都可以正常管理操作:

小结
为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。
这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。
如果有长期远程访问本地memos笔记服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的HTTP公网地址来远程访问。
5. 创建固定公网地址
登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是memos1,大家也可以自定义喜欢的名称。

保留成功后复制保留成功的二级子域名的名称:memos1,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道memos,点击右侧的编辑:

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名:memos1
- 地区:选择China VIP
点击更新(注意,点击一次更新即可,不需要重复提交)

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,由随机地址名称变成了两个固定的二级子域名:

最后,我们使用任意一个固定公网地址在浏览器访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地的memos笔记服务了!

以上就是如何在CasaOS系统安装cpolar内网穿透工具,并配置固定不变的二级子域名公网地址实现远程访问本地部署的memos笔记服务的全部流程,感谢您的观看,有任何问题欢迎留言交流。
相关文章:
轻量级碎片化笔记memos本地NAS部署与跨平台跨网络同步笔记实战
文章目录 前言1. 使用Docker部署memos2. 注册账号与简单操作演示3. 安装cpolar内网穿透4. 创建公网地址5. 创建固定公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 前言…...
【C++算法】54.链表_合并 K 个升序链表
文章目录 题目链接:题目描述:解法C 算法代码: 题目链接: 23. 合并 K 个升序链表 题目描述: 解法 解法一:暴力解法 每个链表的平均长度为n,有k个链表,时间复杂度O(nk^2) 合并两个有序…...
EG8200Mini-104边缘计算网关!聚焦IEC104协议的工业数据转换与远程运维平台
在工业自动化和信息化融合不断深化的背景下,现场设备的数据采集与协议转换能力对系统集成效率与运维成本产生着直接影响。EG8200Mini-104边缘计算网关正是基于此需求场景设计,具备IEC104主从站双向支持能力,并配套远程运维与多网络接入方案&a…...
python多线程+异步编程让你的程序运行更快
多线程简介 多线程是Python中实现并发编程的重要方式之一,它允许程序在同一时间内执行多个任务。在某些环境中使用多线程可以加快我们代码的执行速度,例如我们通过爬虫获得了一个图片的url数组,但是如果我们一个一个存储很明显会非常缓慢&…...
各种场景的ARP攻击描述笔记(超详细)
1、ARP报文限速 上一章我们说过ARP报文也是需要上送CPU进行处理的协议报文,如果设备对收到的大量ARP报文全部进行处理,可能导致CPU负荷过重而无法处理其他业务。因此,在处理之前需要对ARP报文进行限速,以保护CPU资源。 1.根据源MAC地址或源IP地址进行ARP限速 当设备检测到某一…...
Java 实现 List<String> 与 String 互转
在 Java 开发过程中,有时需要将 List<String> 转为 String 存储,后续使用时再还原回去。此时就需要 Java 实现 List<String> 与 String 互转。以下是一种互转方式。 采用如下工具包实现。 <dependency><groupId>org.apache.com…...
庙算兵推:使用Streamlit框架构建了一个智能作战推演系统。
这段代码是一个完整的军事模拟应用,使用Streamlit框架构建了一个智能作战推演系统。该系统包括了三维地图显示、作战单位管理、应急事件处理等功能。用户可以通过界面控制推演的开始和暂停,调整时间加速倍率,并查看实时的战斗情况和系统状态。…...
daz3d ERC Freeze to Morph Target 和 另存为 Morph Asset(s)
. ERC 冻结至变形目标 (ERC Freeze to Morph Target) 核心目标:将骨架的调整与自定义造型的滑块关联起来。 详细解释: 当你创建一个自定义造型(Morph)并调整了骨架(Rigging)以适应这个新造型后ÿ…...
HDCP(四)
HDCP驱动开发实战深度解析 以下从协议栈架构、核心模块实现、安全设计到硬件集成,结合HDCP 2.x规范与主流硬件平台(如ARM、FPGA)特性,系统拆解驱动开发关键环节: 1. 协议栈架构与模块划分 驱动分层设计 硬件抽象层&…...
Docker MySQL的主从同步 数据备份 数据同步 配置文件
创建主库 docker run \--namemysql_1 \-e MYSQL_ROOT_PASSWORD123456 \-p 3306:3306 \-v mysql_main_data:/var/lib/mysql \--restart unless-stopped \-d \mysql:8.0进入容器内部 docker exec -it mysql_1 bash查找配置文件 find / -name my.cnf复制出主机 docker cp mysql…...
MATLAB在哪些特定领域比Python更有优势?
文章目录 前言科学研究与工程计算数值计算信号处理控制系统设计 教育领域易于学习和上手教学资源丰富 快速原型开发集成开发环境便捷 前言 MATLAB 在以下特定领域比 Python 更具优势: 科学研究与工程计算 数值计算 高效矩阵运算:MATLAB 以矩阵为基本数…...
linux安装mysql常出现的问题
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server 权限设置: chown -R mysql:mysql /var/lib/mysql/ 初始化 MySQL: mysqld --initiali…...
C++手撕单链表及逆序打印
在学习数据结构的过程中,链表是一个非常重要的基础数据结构。今天,我们将通过C手动实现一个单链表,并添加一个逆序打印的功能,帮助大家更好地理解链表的实现和操作。 一、链表简介 链表是一种线性数据结构,其中每个元…...
996引擎-疑难杂症:Ctrl + F9 编辑好的UI进入游戏查看却是歪的
Ctrl F9 编辑好UI后,进入游戏查看却是歪的。 检查Ctrl F10 是否有做过编辑。可以找到对应界面执行【清空】...
JQuery初步学习
文章目录 一、前言二、概述2.1 介绍2.2 安装 三、语法3.1 文档就绪3.2 选择器 四、事件4.1 概述4.2 事件绑定/解绑4.3 一次性事件4.4 事件委托4.5 自定义事件 五、效果5.1 隐藏/显示5.2 淡入淡出5.3 滑动5.4 动画 六、链七、HTML7.1 内容/属性7.2 元素操作7.3 类属性7.4 样式属…...
repo仓库文件清理
1. repo 仓库内文件清理 # 清理所有Git仓库中的项目 repo forall -c git clean -dfx # 重置所有Git 仓库中的项目 repo forall -c git reset --hard 解释: repo forall -c git clean -dfx: repo forall 是一个用于在所有项目中执行命令的工具。-c 后…...
使用Docker部署Java项目的完整指南
前言 Docker是一个轻量级的容器化平台,可将应用及其依赖打包成标准化单元,实现快速部署和环境隔离。本文以Spring Boot项目为例,演示如何通过Dockerfile部署Java应用。 准备工作 本地环境 安装Docker Desktop(官网下载࿰…...
基于 Spring Boot 瑞吉外卖系统开发(三)
基于 Spring Boot 瑞吉外卖系统开发(三) 分类列表 静态页面 实现功能所需要的接口 定义Mapper接口 Mapper public interface CategoryMapper extends BaseMapper<Category> {}定义Service接口 public interface CategoryService extends ISe…...
TCP,UDP协议和域名地址
1.TCP(传输控制协议)是面向连接,UDP(用户数据报协议)是无连接的 2.应用层:FTP,HTTP,SMTP,TELNET,DNS,TFTP 传输层;TCP,UDP 网际层:IP,ICMP,ARP,RARP 3.TCP21:20端口数据传输;21端…...
winserver2022备份
安装备份,然后等待安装完成即可 然后可以在这里看到安装好的win server2022备份 一直下一步然后到这里 不要用本地文件夹备份 备份到远程服务器,远程服务器路径 然后确定备份即可 如何恢复呢? 点击右侧的恢复就可以了 打开任务计划程序 这…...
GAT-GRAPH ATTENTION NETWORKS(论文笔记)
CCF等级:A 发布时间:2018年 代码位置 25年4月21日交 目录 一、简介 二、原理 1.注意力系数 2.归一化 3.特征组合与非线性变换 4.多头注意力 4.1特征拼接操作 4.2平均池化操作 三、实验性能 四、结论和未来工作 一、简介 图注意力网络&…...
SpringBoot和微服务学习记录Day1
分布式架构 为了解决大量的用户请求,需要多台服务器,为处理某些请求将一些服务器划分为一个集群,通过一种技术来处理集群的请求 典型应用: nginx:Tomcat集群 Redis:哨兵模式 MySQL:mycat 微…...
PDFBox/Itext5渲染生成pdf文档
目录 PDFBox最终效果实现代码 Itext5最终效果实现代码 PDFBox 使用PDFBox可以渲染生成pdf文档,并且自定义程度高,只是比较麻烦,pdf的内容位置都需要手动设置x(横向)和y(纵向)绝对位置ÿ…...
前端获取不到后端新加的字段 解决方案
前端获取不到后端新加的字段 解决方案 sql 返回的是 FileInfo 对象 private String lastUpdateTimeStr;// 自定义 setLastUpdateTime 方法,确保在设置 lastUpdateTime 时自动格式化为字符串public void setLastUpdateTime(LocalDateTime lastUpdateTime) {this.las…...
【Java学习】AI时代下如何学习Java语言开发
学习 Java 语言开发时,合理借助 AI 工具可以提升效率、深化理解,以下是具体的学习策略和方法: 一、利用 AI 辅助基础学习 1. 智能文档解读与语法解析 工具:ChatGPT、Bing Chat、Google Bard用法: 直接提问基础语法问…...
联想拯救者Y9000K重装Ubuntu系统
USB刻录Ubuntu,并插入电脑。 进入官网https://rufus.ie/downloads/,安装4.0p版本,对应Ubuntu 22.04版本进入官网https://www.releases.ubuntu.com/22.04/,下载Ubuntu 22.04的iso文件插入一个空USB。运行rufus.exe,选择…...
罗技K860键盘
罗技蓝牙键盘的顶部功能键F1-F12的原本功能 单击罗技键盘的功能键时,默认响应的是键盘上面显示的快进、调节音量等功能。改变回F1~F12原本功能,同时按下 fn和esc组合键...
PyTorch Tensor维度变换实战:view/squeeze/expand/repeat全解析
本文从图像数据处理、模型输入适配等实际场景出发,系统讲解PyTorch中view、squeeze、expand和repeat四大维度变换方法。通过代码演示对比不同方法的适用性,助您掌握数据维度调整的核心技巧。 一、基础维度操作方法 1. view:内存连续的形状重…...
【NLP 面经 9、逐层分解Transformer】
目录 一、Transformer 整体结构 1.Tranformer的整体结构 2.Transformer的工作流程 二、Transformer的输入 1.单词 Embedding 2.位置 Embedding 计算公式: 三、Self-Attention 自注意力机制 1.Self-Attention 结构 编辑 2.Q、K、V的计算 代码实现 3.Self-Attenti…...
【线程有哪些状态?这些状态如何相互转换?阻塞和等待的状态有什么区别?】
线程状态及其转换与区别 线程的生命周期包含多个状态,不同状态之间的转换由线程调度和同步机制决定。以下是线程状态的详细说明、转换关系及阻塞与等待的区别: 一、线程的六种基本状态(以Java为例) 状态描述NEW(新建…...
