一款轻量级的开源笔记服务软件

news/2024/12/23 20:21:50/

大家好,我是兔兔,一位写作爱好者,今天分享的内容是,如何搭建一个开源的、隐私优先的轻量级笔记服务应用。

不知道大家是否有这样的需求:

1、自己想搭建一个个人的学习笔记文档,既要自己看也可以单独分享给外部人员阅读。

2、有自己的产品,想搭建一款私域流量的交流平台,例如腾讯的兔小巢就是一款很不错的工具。

在很久之前,也分享过几款类似这样的软件的工具,不过都是以文章的形式,并没有评论、独立的附件、并且在编写文章时流程复杂等功能,今天分享的这款软件就能很好的解决这些痛点。

感兴趣的同学,欢迎关注我,将为你分享更多免费、实用的学习办公工具。

Memos是什么

Memos 是一个开源的轻量级笔记服务应用,它为用户提供了一个随时记录思绪和想法的私密空间,同时它支持私有化部署,这意味你可以完全掌控你的数据和隐私,同时它还提供了直观的分享功能,让你可以轻松地与他人协作和分享笔记

Memos的特点

1、开源且永久免费:Memos 是一款开源的应用,永久免费使用。它鼓励创造力,让您的想法得以充分发挥,不受任何限制。

2、自托管部署:使用 Docker,可以在几秒钟内设置好 Memos,获得数据和隐私的完全控制权,提供了极大的灵活性和可扩展性。

3、纯文本与 Markdown 支持:Memos 坚持采用纯文本格式,摒弃了繁琐的富文本编辑,同时支持 Markdown,让您以极简主义的方式记录和分享笔记

4、自定义与轻松分享:Memos 提供直观的自定义和分享功能,使你能够轻松地与他人合作和分享笔记,促进信息交流。

5、RESTful API支持:Memos 还提供了强大的 RESTful API,让您能够与第三方服务进行集成,开启全新的应用可能性。

6、支持多用户,且允许设置可见范围:Memos 提供了多用户支持,这意味着可以与团队成员或朋友共享笔记,并轻松地管理多个用户帐户。而且,Memos 允许设置笔记可见范围,确保您的笔记只对登录用户、自己或全部可见。这一功能极大地增强了协作和隐私保护的灵活性。

7、支持资源库的形式存储各类文件:除了纯文本笔记,Memos 还支持资源库的形式存储各类文件。这意味着您不仅可以记录文字内容,还可以轻松地上传、存储和共享图片、音频、文档等多种文件类型。无论是项目资料、创意灵感还是照片集,Memos 都能满足你的多样化需求。

8、支持多种存储,以及多种类型的单点登录:Memos 提供多样化的后端存储选项,包括数据库、S3 和本地存储,确保您能够根据需求选择最适合的存储方式,为您的数据提供灵活性和可扩展性。此外,Memos 还支持多种类型的单点登录,如 Github、Gitlab、Google 等,同时还允许您自定义其他认证方式,为用户提供了便捷的登录和身份验证方式,从而平衡了安全性和便利性的需求。

9、支持图片、链接、嵌入式代码等方式分享笔记:Memos 提供了多种富有创意的笔记分享方式,包括图片、链接以及嵌入式代码等。这意味着您可以以更生动和多样的方式分享您的笔记内容。无论是展示精美图片、分享有用链接,还是嵌入代码示例以便他人参考,Memos 都为分享增添了更多的生动性和趣味性。

在整体使用之后,基于个人的体验,对比其他的很多同类开源产品,个人觉得这几点蛮不错的。通过单点登录,可以对接到自己的业务系统支持RESTful API可以和自己的业务系统集合能够将私有内容设置为公开分享

如何安装

在了解该软件有和特点后,我们就开始来搭建体验一下吧。该软件提供使用docker搭建Rainbond搭建,具体更为详细的介绍,可以通过官网文档了解,memos官网地址

我这里演示就直接使用docker搭建,比较方便一点。直接复制下面的命令到你的终端工具,即可完成安装。

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos ghcr.io/usememos/memos:latest

1、–name:是容器的名称,你可以修改为其他的名字。

2、-p: 是本机和容器之间的端口映射,如果你本地的5230端口没有被其他的程序使用,可以不用修改。

3、-v:是做一个磁盘挂载,就容器内的数据与你宿主机做一个映射,既能实现文件共享,也能保证数据的安全性。

上面的命令,可以不用修改参数,直接复制到终端就可以运行起来了。

等安装完成之后,使用下面的命令,查看是否安装成功,如果STATUS列对应的值是runing或者是Up xxx则表示安装成功。

kert@kertdeMac-mini ~/p/w/open_resource (master)> docker ps
CONTAINER ID   IMAGE                           COMMAND     CREATED         STATUS         PORTS                    NAMES
810e1f9a4611   ghcr.io/usememos/memos:latest   "./memos"   3 minutes ago   Up 3 minutes   0.0.0.0:5230->5230/tcp   memos

最后打开浏览器,在地址栏输入http://127.0.0.1:5230就可以进入到系统。

如何使用

当浏览器输入之后,默认进入到下面的界面,会进入系统的初始化阶段。输入对应的账号和密码就会创建相应的账号,该账号是整个系统的超级管理员,使用超级管理员你可以针对系统做一些额外的配置,添加内部成员等等操作。

登录进去之后,你会看到下面的界面。左侧是整个功能区,中间是内容展示区,右侧是系统的数据汇总区。
然后我们在里面随便添加一些内容,我这里做了一些简单的内容添加,最终的效果如下。

整体的功能体验下来,也非常的简单,属于一款轻量级,并且功能也能够满足我们基本的需求。也是非常推荐大家使用的一款开源文档类工具。

不足之处

虽然这款工具不管是功能上,还是操作上都非常不错,当然也有不足的地方。我在使用之后,大致总结了这几点:

1、在对内容评论之后,对于评论内容的展示并不够友好,当你点击评论,会自动跳转页面到该评论的主页,并不会在当前页进行层级结构的展示。

2、文件存储虽然支持多种方式,如数据库、本地和S3存储,前面两者到很简单,但S3的配置较为蛮烦一些,如果想使用国内的云存储,例如腾讯的OSS、阿里的OSS、七牛云的OSS,就不能够直接支持。

3、对于标签的创建很别扭,要创建标签并非是单独有一个创建页面,而且是通过特定的语法创建标签,并且创建的标签也会自动显示到内容区域,感觉这个地方有点怪怪的。

最后关于menos的功能和使用体验,就跟大家分享到这里了。希望本文分享的这款工具对大家有所帮助。


http://www.ppmy.cn/news/1557555.html

相关文章

Scrcpy:安卓投屏神器介绍及详细使用步骤

目录 一、Scrcpy简介 1.1. 基本概述 1.2. 主要功能 1.2.1. 屏幕镜像 1.2.2. 操作控制 1.2.3. 视频录制和截图 1.2.4. 无线连接 1.2.5. 多设备连接 二、使用场景 2.1. 开发调试 2.2. 游戏录制 2.3. 教学演示 2.4. 远程协助 三、安装与配置 3.1. 安装Scrcpy 3.1.…

GoTime#34期 Pachyderm, Provenance, Data Lakes

本篇内容是根据2017年2月份#34 Pachyderm, Provenance, Data Lakes音频录制内容的整理与翻译 Joe Doliner 加入了节目,谈论使用 Pachyderm 管理数据湖、数据容器、溯源(provenance) 以及其他有趣的 Go 项目和新闻。 Erik St. Martin: 大家好,欢迎收听新…

Qt有哪些读取文件的方式

1. 使用 QFile 和 QTextStream(文本文件读取) 适用于纯文本文件,按行或整体读取。 示例代码:逐行读取 QFile file("example.txt"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {QTextStream in(&fi…

C# 面试中常见递归算法

前言 今天我们主要总结一下C#面试中常见递归算法。 C#经典十大排序算法(完结) C#递归算法计算阶乘的方法 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。180…

[Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算

在计算机图形学和着色器编程中,矢量运算是核心的数学工具之一。矢量用于描述空间中的位置、方向、速度等各种物理量,并在图形变换、光照计算、纹理映射等方面起着至关重要的作用。本篇文章将详细讲解矢量和标量之间的乘法与除法、矢量的加法与减法、矢量的模与单位矢量、点积…

自动呼入机器人如何实现自动化学习?

自动呼入机器人如何实现自动化学习? 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 自动呼入机器人的自动化学习是其智能化和持续改进的核心驱动力。通过不断从用户交互中获取新知识,并…

【集合】Java 8 - Stream API 17种常用操作与案例详解

文章目录 Java8 Stream API 17种常用操作与案例详解1. collect():将流中的元素收集到集合中2. filter():根据条件过滤流中的元素3. map():元素映射为另一个值4. forEach():对流中的元素执行操作5. flatMap():将流中的元…

CSS Grid 布局:属性及使用详解

CSS Grid 布局:属性及使用详解 一、CSS Grid 布局的基础概念二、主要的 CSS Grid 属性1、display: grid / display: inline-grid声明 Grid 容器2、grid-template-columns / grid-template-rowsGrid 容器中列和行的尺寸3、 grid-template-areas命名布局区域4、gap/ g…