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

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
Engineering at Meta
Engineering at Meta
量子位
A
About on SuperTechFans
阮一峰的网络日志
阮一峰的网络日志
Recent Announcements
Recent Announcements
博客园 - 司徒正美
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
腾讯CDC
Jina AI
Jina AI
C
Check Point Blog
H
Help Net Security
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
爱范儿
爱范儿
I
InfoQ

eallion's Blog

春假清明自驾游 Ubuntu 25.10 安装和配置 秋假 彩礼 2025 博客变化 预制菜 联邦礼仪之一 重拾写博客的乐趣 少儿 TED - 时间管理大师 n8n 之同步博客到 Mastodon n8n 之备份 Mastodon 嘟文 如何备份 Mastodon Docker 部署 Mastodon NAS 折腾记 Windows 11 安装软件 博客排版 - 挤压中文标点符号 Hugo 博客集成 Mastodon 独立博客自省问卷 15 题 Chrome 插件更新:网址净化器 在 Hugo 中使用 Shiki 炒菜万能公式 uBlacklist 订阅合集 读《中文互联网正在加速崩塌》 CSS 和 JS 实现博客热力图 受灾小记 那,他吃什么?! Mastodon 同步到 Memos Hugo 外部链接跳转提示页面 联邦宇宙及 Mastodon 简介 2024 博客变化
Memos 简介
Charles Chin · 2022-11-06 · via eallion's Blog

# 前言

DEMO: https://memos.eallion.com

我从接触独立博客开始,就一直在博客的子栏目中部署了一个类似 嘀咕 的微博客。
最初的作用是备份 QQ 空间、Twitter 和微博等。
最早用到的微博客程序是 PageCookery。甚至有点怀念……

现在在独立博客圈少部博主中流行的这种“B 言 B 语”,最早来源于少数派上的一篇文章—— 《保卫表达:用后端 BaaS 快速搭建专属无点赞评论版微博——b 言 b 语》,“B 言 B 语”也叫“废话胶囊”。

由此也衍生出了:

目前以上版本均可使用,不过可能有些版本的使用成本有点高。

今天要介绍的是另一个能提供类似功能的应用—— Memos
Memos 自己对标的竞品是 Flomo,我们是不是把它用歪了?

# 部署 Memos

前置条件:

  1. 一台 VPS 服务器或本地电脑(或 Docker SaaS 平台)
  2. 一点点 WebStack 技能(Docker、Nginx)

安装docker-compose-plugin插件后,docker compose命令可以去掉中间的"-",Docker Compose V1 版本已经结束生命周期。

暂时不建议把 Memos 部署到网站二级目录,如: https://example.com/memos
而应该部署到一个二级域名,如: https://memos.example.com

  1. 新建 docker-compose.yml

一般在准备用于 Memos 的域名的目录下新建docker-compose.yml文件:

cd /www/wwwroot/memos.example.com
vim docker-compose.yml

输入以下内容:

version: "3.0"
services:
    memos:
        image: neosmemo/memos
        container_name: memos
        volumes:
            - ./memos/:/var/opt/memos
        ports:
            - 5230:5230
        restart: always
  1. 启动 Memos

启动 Memos

等待镜像拉取完成,Memos 就运行在服务器的5230端口了。
此时,打开http://127.0.0.1:5230就能访问 Memos 了。
如果有公网 IP,那就打开IP+端口,如:http://119.29.29.29:5230
用域名反代 IP 见下文第 4 点。
常用的命令有:

docker compose up -d
docker compose down
docker compose pull
docker compose up -d --force-recreate
  1. 升级 Memos

参考: https://memos.eallion.com/m/5454

Memos 官方提供的升级命令

docker-compose down && docker image rm neosmemo/memos:latest && docker-compose up -d

会导致 Memos 在升级期间掉线,因为 down 了,特别是境内服务器网速不好的情况下,掉线时间会随着 pull 时间无限延长。

最新版 Docker 升级 Memos 的命令有改进空间:

docker compose pull && docker compose up -d --force-recreate

但是如果用了镜像加速服务,因为缓存的原因也可能有 pull 不到最新镜像的问题。

  1. Nginx 反代

如果打算对互联网提供 Memos 访问服务,就需要反代 Memos,一般都是用 Nginx,反代5230端口即可。

location ^~ /
{
    proxy_pass http://127.0.0.1:5230;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    add_header X-Cache $upstream_cache_status;
    # cache
    add_header Cache-Control no-cache;
    expires 12h;
}

一些主机管理面板提供可视化反代设置,那更简单。

  1. 备份数据

在第 1 步中的docker-compose.yml文件中,

    volumes:
      - ./memos/:/var/opt/memos

这段就是数据持久化配置,如果不做数据持久化,Docker 容器重启后,所有 Memos 都会消失。
:”冒号前面的内容是物理宿主机上的目录,例子中对应的目录为:

/www/wwwroot/memos.example.com/memos

需要备份的数据是此目录下的memos_prod.db文件,是一个 SQLite 数据库文件,Memos 的所有设置、用户信息、附件和 Memos 都保存在这个文件中。
官方提供的示例中,数据卷为家目录/home/username下的.memos目录,是一个隐藏目录,注意对比。

# Memos Awesome

# 一点点建议

  1. 发图尽量把图片传到第三方图床,(至少近期版本)别上传到 Memos 资源库。
  2. 附件也一样别传到 Memos 资源库,可以传到第三方网盘,贴上分享链接。
  3. 备份memos_prod.db数据库遵循两地三中心原则,多处备份,且是单向的。
  4. 如果你意识不到数据对你有多珍贵或重要,用 SaaS 服务即可,不用自建。
  5. 没有那么多人来看你的 Memos,自娱自乐即可。