CasaOS系统小主机Docker部署memos结合内网穿透打造私有云笔记

文章目录

    • 前言
    • 1. 使用Docker部署memos
    • 2. 注册账号与简单操作演示
    • 3. 安装cpolar内网穿透
    • 4. 创建公网地址
    • 5. 创建固定公网地址

前言

本文主要介绍如何在CasaOS轻NAS系统设备中使用Docker本地部署开源云笔记服务memos,并结合cpolar内网穿透工具配置公网地址,打造一个可跨设备、跨网络的私人云笔记。

对很多学生党来说,往往都有把自己偶然迸发的想法,上课记的笔记,喜欢的图片,有用的链接保存到一个地方,然后使用自己所有的设备都可以访问的需求。

memos就能轻松的做到这一点,无论你在手机、平板、不同的系统的电脑上,都可以轻松访问你保存在上边的内容。支持实时修改并同步,而且所有的数据都保存在你的本地,相对来说更可控也更安全一些。

因为CasaOS集成了Docker功能,所以在如N1盒子、玩客云这样的小主机中部署一些像memos这种轻量级服务非常简单,一条docker命令就可以搞定。而且它就像路由器一样,7*24小时开机也不会有太多的耗电量,主机本身也很便宜,用来部署一个私有云笔记来说,属于经济又实惠了。

而且,我们还可以利用cpolar生成公网地址,让你不仅可以在局域网内多设备使用memos服务,实现公网环境依然可以访问你在本地部署的memos!

image-20240319171837751

1. 使用Docker部署memos

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

image-20240319172044451

image-20240319172307834

然后在终端中执行下边的命令:

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://do.nark.eu.org”,
“https://dc.j8.work”,
“https://docker.m.daocloud.io”,
“https://dockerproxy.com”,
“https://docker.mirrors.ustc.edu.cn”,
“https://docker.nju.edu.cn”
]
}

保存退出

然后执行:sudo systemctl restart docker

18dac42216f3ac6fba3f4f10cfdb264

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

image-20240319182511619

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

1ef39f071ff44130dd1b102a010ee05

2. 注册账号与简单操作演示

点击左上角logo按钮即可跳转注册页面注册一个管理员账号,底部可以选择注册时候的语言。

4bd36413b1da7c91dbe8680116696f0

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

c21c9d1fdf983723486871c67991a44

28f599f3ed8f0e4e9d290b219bc180c

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

image-20240319183056094

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

image-20240319183144590

image-20240319183218116

如果选择仅自己可见,那只有当前账号使用者可以看见这段文字。

如果选择所有人可见,那么将这个笔记的局域网地址分享给你的室友,他不需要注册账号也可以看到这段文字。

而登录用户可见,则是需要其他人在部署在这个地址的笔记服务中创建账号才能看到这段文字。

有两种方式可以让其他人注册账号,第一个是在设置-系统中把允许注册账号的选项打开。

image-20240319183628171

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

0fcb61762e9ed1e233033d614416089

除了发布文字内容,我们还可以在memos中发布图片或者视频内容。

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

image-20240319184212288

image-20240319184312366

更多使用相关方法,大家也可以去它的网站中去学习,地址放在这里:https://www.usememos.com/docs/install

3. 安装cpolar内网穿透

首先,点击左上角进入终端:

image-20240313143414262

然后在终端中执行下方命令,安装cpolar内网穿透工具:

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

image-20240313145003852

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

cpolar version

image-20240313145127582

可以看到版本号,安装成功,下一步进行token认证。

首先在浏览器访问cpolar官网:http://www.cpolar.com

注册账号后登录cpolar官网后台,点击左侧的验证,查看自己的认证token。

1710312839212

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

cpolar authtoken xxxxxxx

image-20240313145903193

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

cpolar http 8080

image-20240313151951657

可以看到成功生成了两个指向本机8080端口的随机公网地址。

然后需要执行下面的命令向系统添加cpolar服务

systemctl enable cpolar

image-20240313152831220

然后执行下面命令启动cpolar服务:

systemctl start cpolar

查看服务状态:

systemctl status cpolar

image-20240313153116599

能看到cpolar服务已经正常启动。

4. 创建公网地址

cpolar安装成功并启动服务后,在外部浏览器上访问CasaOS的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后在Web UI管理界面配置即可。

image-20240313153321898

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:memos
  • 协议:http
  • 本地地址:5230
  • 域名类型:随机域名
  • 地区:选择China TOP

点击创建

image-20240320104536507

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

image-20240320110838705

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

image-20240320111010600

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

image-20240320111154273

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问本地memos笔记服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的HTTP公网地址来远程访问。

5. 创建固定公网地址

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是memos1,大家也可以自定义喜欢的名称。

image-20240320112324951

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

image-20240320112433978

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名:memos1
  • 地区:选择China VIP

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240320112522367

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

image-20240320112554413

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

image-20240320112707824

以上就是如何在CasaOS系统安装cpolar内网穿透工具,并配置固定不变的二级子域名公网地址实现远程访问本地部署的memos笔记服务的全部流程,感谢您的观看,有任何问题欢迎留言交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/392073.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

50etf期权怎么可以买跌做空吗?

50ETF期权可以做买方也可以做卖方,并且50ETF期权还能够买涨买跌双向交易,50ETF期权可以看涨期权和看跌期权,所以50ETF期权是可以买跌做空的,并且50ETF期权是很适合进行做空操作的,下文为大家介绍50etf期权怎么可以买跌…

SQL进阶技巧:Hive如何巧解和差计算的递归问题?【应用案例2】

目录 0 问题描述 1 数据准备 2 问题分析 3 小结 0 问题描述 累计值分析模型是一种用于分析和预测累计值数据的统计模型。它主要用于处理随时间积累的数据,例如销售额、用户数量、网站访问量等。累计值分析模型的目的是通过对历史数据的分析,揭示数据的趋势和模式,以便进…

日撸Java三百行(day13:链表)

目录 一、链表的基础知识 二、链表的代码实现 1.链表创建 2.链表遍历 3.链表定位查找 4.链表插入 5.链表删除 6.数据测试 7.完整的程序代码 总结 一、链表的基础知识 在之前顺序表的学习中,我们其实提到过链表。链表它是线性表在不同的物理存储方式下派生…

谷歌账号被停用后,申诉没有反馈或者被拒绝后怎么办?附:谷歌账号申诉信要点和模板

有一些朋友在登录谷歌账号的时候,或者在是用谷歌账号的过程中突然被强制退出来,然后再次登录的时候就遇到了下面的提醒:您的账号已停用,而且原因通常是两大类:1)谷歌账号与其他多个账号一起创建或使用的&am…

将网络变压器(Ethernet Transformer)从千兆单口设计改为百兆双口设计涉及几个关键步骤和注意事项

变压器选型: 确保选用的变压器支持1000BASE-T到100BASE-TX的转换。通常,这种变压器会有额外的电气特性,如抑制和隔离等,以确保数据传输的可靠性和稳定性。 端口连接: 对于千兆单口设计,通常会有一对输入和输…

【python报错已解决】`AttributeError: ‘DataFrame‘ object has no attribute ‘ix‘`

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言: 在使用Pandas库进行数据分析时,你是否遇到过AttributeError: DataFrame object has no attribut…

本地安装Llama3.1与LobeChat可视化UI界面并实现远程访问大模型实战

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

企业定制AI智能名片微信小程序在私域流量运营中的应用与策略

摘要:随着2022年私域运营市场步入冷静期,企业逐渐从盲目模仿向精准化、个性化的运营模式转变。在这一背景下,企业定制AI智能名片微信小程序凭借其独特的智能化、便捷化特性,成为企业构建私域流量池、深化用户关系、实现高效转化的…

【完美解决】正点原子Linux开发板无法联网ping通百度但可以ping通主机和虚拟机,联通了局域网但无法联通互联网,DNS配置问题

问题记录 主机通过共享网络给以太网口想让正点原子的阿尔法Linux开发板连上网,网络配置过程如下: 开发板连接的是eth1口,通过在终端输入以下命令进入网络配置文件。 vi /etc/network/interfaces 将其配置为了以下地址 但是出现了一些问题&…

RAG 入门指南:从零开始构建一个 RAG 系统

本文正文字数约 3300 字,阅读时间 10 分钟。 从零开始构建一个应用可以让我们快速理解应用的各个部分。 这个方法其实非常适用于 RAG。 我在以前的文章中有介绍过 RAG 的概念、原理以及应用等,但其实,亲自动手来构建一个 RAG 系统或许能够…

C语言指针详解(三)目录版

C语言指针详解(三)目录版 1、字符指针变量1.1、字符指针变量的一般应用1.2、常量字符串1.3、常量字符串与普通字符串的区别1.3.1 常量字符串的不可修改性1.3.2 常量字符串的存储 2、数组指针变量2.1、数组指针变量定义2.2、数组指针变量的初始化 3、二维…

图的DFS

LeetCode2368 受限条件下可到达节点的数目 class Solution { public:int dfs(vector<vector<int>>& g,int x,int fa){int sum1;for(int y:g[x]){if(y!fa) sumdfs(g,y,x);}return sum;}int reachableNodes(int n, vector<vector<int>>& edges, …

C语言指针(3)

目录 一、字符指针变量 二、数组指针变量 三、⼆维数组传参的本质 四、函数指针变量 五、typedef 关键字 六、函数指针数组 一、字符指针变量 字符指针char* &符号名 符号名&#xff0c;这都是获取的是首元素地址。 int main() {char a[] "abcdef";cha…

另一棵树的子树 - 力扣(LeetCode)C语言

572. 另一棵树的子树 - 力扣&#xff08;LeetCode&#xff09;&#xff08;点击前面链接即可查看题目&#xff09; 一、题目 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&#xff0c;返回 true &#xff1b;否则&…

机器学习中的关键距离度量及其应用

引言 在当今的数据驱动世界中&#xff0c;机器学习算法扮演着至关重要的角色&#xff0c;它们在图像分类、面部识别、在线内容审核、零售目录优化和推荐系统等多个领域发挥着重要作用。这些算法的核心在于它们能够识别和利用数据之间的相似性。而实现这一点的关键&#xff0c;…

ShardingSphere 内核工作原理

文章目录 内核工作原理配置管控SQL Parser: SQL解析引擎SQL Router- SQL 路由引擎SQL Rewriter : SQL 优化引擎SQL Executor &#xff1a; SQL执行引擎Result Merger&#xff1a; 结果归并 内核工作原理 ShardingSphere的整体架构图是这样的&#xff1a; 配置管控 在进入Shar…

MySQL事务,锁,MVCC总结

mysql中最重要的就是事务&#xff0c;其四大特性让我们维持了数据的平衡&#xff0c;一致。那么事务究竟是什么&#xff0c;与什么相关&#xff0c;他的使用步骤&#xff0c;以及使用过程中我们会遇到什么问题呢&#xff1f;下面我们一起学习交流! 1.MySQL的存储引擎&#xff…

SPIFFS与LittleFS的对gz文件格式的区别

SPIFFS 只能安装在Arduino上。LittleFS支持Arduino IDE和VScode的 PlatformIO。 SPIFFS serveStatic: server.serveStatic("/", SPIFFS, "/") 负责提供 SPIFFS 文件系统中的文件。您可以在 SPIFFS 上放置 .gz 文件&#xff0c;并该方法将自动处理它们。 …

git cz代码提交规范,适用于node14以上

1.效果 3. 在项目中如何添加 3.1 安装(只提供npm安装方式)全局安装 commitizen npm i -D commitlint commitlint/config-conventional commitizen cz-git 3.2 配置模版 在项目的根目录下配置添加文件 commitlint.config.js 并写入如下代码 /** type {import(cz-git).UserCo…

C# 类型转换

隐式&#xff08;implicit&#xff09;类型转换 1.不丢失精度的转换 2.显示&#xff08;explicit&#xff09;类型的转换 有可能丢失精度的转换 使用convert转换 ToString方法&#xff1a;将数值类型转换成字符串型