惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
博客园 - Franky
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
IT之家
IT之家
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
S
SegmentFault 最新的问题
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
B
Blog RSS Feed
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 司徒正美
The Cloudflare Blog
博客园_首页
博客园 - 聂微东
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
Memos 一个开源且免费的自托管知识库 - 少数派
2022-10-20 · via 少数派

Hi 大家好呀!我叫 Ask Term 。这是我来少数派写的教程系列文章的第一篇,给大家带来一个开源知识库 Memos 的部署教程,小伙伴们也许会问 Memos 什么?那么我就把官方对 Memos 的定义引用一下:

An open source, self-hosted knowledge base that works with a SQLite db file.

如何还是不太清楚这个是干嘛用的,那么体验一下官方的 Demo,体验过的小伙伴一定会觉得这不就是 Flomo 吗?确实,这算是非官方 Flomo 的开源替代品,鉴于 Memos 的开源特性你可以随意的部署在自己的服务器上去使用。

Memos 的部署也很简单,一条 Docker 命令就能启动,但是对于不熟悉 Docker 的小伙伴或许还是有些难度的,为此我写了这篇入门级的教程,让小伙伴能够轻松完成 Memos 的部署。

Flomo 和 Memos 的功能对比

对比FlomoMemos
收费方式免费有限制开源自托管
API 接口Pro 版免费使用免费开放
每日回顾Pro 版支持支持
微信输入支持不支持

通过对比我认为 Memos 除了在微信输入上欠缺了一点,在其它方面是胜过 Flomo 的,虽然不能够原生的支持微信输入,但是 Memos 官方开放了 API 接口,通过这个接口去连接个人的微信服务号或许可以实现微信输入的功能,网上也有类似通过 Telegram 进行输入的教程。

🔞注意:本次的部署环境为: Ubuntu 22.04.1 LTS

Docker 的安装

附上 Docker 官方部署文档(如果需要更详细的安装流程,请参考官方文档)

如果已经存在旧版本的 Docker并且想要卸载请执行卸载命令(非必要)

sudo apt-get remove docker docker-engine docker.io containerd runc

设置存储库

更新 apt 包索引并安装包以允许apt通过 HTTPS 使用存储库:

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg lsb-release

添加 Docker 的官方 GPG 密钥:

 sudo mkdir -p /etc/apt/keyrings

 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

使用以下命令设置存储库:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker 引擎

更新 apt 包索引,安装最新版本的 Docker Engine、containerd 和 Docker Compose

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

验证 Docker 运行情况

Active: active (running)running 时说明 Docker 运行正常

systemctl status docker.service

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-10-14 13:28:11 CST; 42s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 16345 (dockerd)
      Tasks: 8
     Memory: 21.7M
        CPU: 318ms
     CGroup: /system.slice/docker.service
             └─16345 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

当进行到这一步骤的时候说明你的 Docker 服务已经成功安装了,离 Memos 的成功安装已经很近了。下面在跟随我完成 Memos 的部署吧!

仓库地址: https://github.com/usememos/memos

创建存储卷

我们要先在服务器创建一个目录用来存储 Memos 数据。

root@localhost:~# mkdir memos

然后需要将创建的目录挂载到docker的容器里,我们先查看一下memos 的路径,下面启动 Memos 的时候需要指定此路径。

root@localhost:~/memos# pwd
/root/memos

运行容器

只需要一条命令就能够启动 Memos 容器:

root@localhost:~/memos# docker run -d --name memos -p 5230:5230 -v /root/memos/:/var/opt/memos neosmemo/memos:latest

这条命令的参数的意思是: 将容器内的 5230 端口映射到宿主机的 5230 端口上,同时将容器内 /var/opt/memos路径下的内容挂载到宿主机的 /root/memos 路径下,路径映射的好处是防止容器被误删导致数据丢失。

查看容器运行状态

root@localhost:~/memos# docker ps -a
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS          PORTS                                       NAMES
e257ff3e213b   neosmemo/memos:latest   "./memos --mode prod…"   50 seconds ago   Up 48 seconds   0.0.0.0:5230->5230/tcp, :::5230->5230/tcp   memos

当我们看到容器状态是 Up 的时候说明我们已经成功部署好了 Memos 服务,只需要在浏览器访问 127.0.0.1:5230 就可以开的 Memos 的初始页面了。

体验 Memos

初次次打开 Memos 时我们满怀好奇,此时需要我们提供邮箱和一个密码来生成管理员账号。

初始页面

有了管理员账号后就可以体验完整的 Memos 服务了,

首页

Memos 的数据存储在本地 /root/memos/路径下名为 memos_prod.db的文件,每次升级前请做好备份。

但是目前我们也只能通过内网访问该服务,如果我们没有公网 IP 又该如何实现可以 Memos 的公网访问呢?这就引出了一个技术——内网穿透,下一个教程就教大家两种常用的内网穿透方式,一个是花费 1 元就可以实现两条可用的隧道,另一个是通过购买云主机部署内网穿透服务来实现自定义更强的方案。

到此本教程就该结束了,本人笨嘴拙腮写不出情文并茂的句子,不足的地方还望见谅。