Memos 搭建

依然是从拾月那里得到的灵感, 拾月微博, Memos是一个数据都属于自己的开源备忘录平台, 之前因为需要从Docker安装, 对此一窍不通暂时搁置, 这次就先从Docker入手.

Docker

ChatGPT

Docker是一个容器平台,让开发者能够轻松地打包、交付和运行应用程序。这些容器是轻量级的、可移植的虚拟化解决方案,它们提供了一个隔离的环境,其中应用程序可以在任何地方以相同的方式运行,无论是开发机、测试环境还是生产环境。

容器(Container)是 Docker 中最基本的单位。它是一个独立、轻量级、可执行的软件包,包含了应用程序及其所有运行时需要的依赖项,如代码、运行时、系统工具、系统库等。容器化技术使得应用程序能够在相同的容器中在不同的环境中运行。

粗略看了一些视频教程, 简单的可以把Docker理解为把安装好的程序文件直接打包, 其中包含运行环境文件, 可以在任何场景下独立运行, 省去多次配置的麻烦.

对于Docker的多种命令及其逻辑关系, 黑马这幅图说得很明白:

Docker命令

Windows平台安装

Install Docker Desktop on Windows下载Window桌面应用, 安装成功后直接在命令提示符中运行

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

安装后可以在本地的 http://<local_ip>:5230上运行, 把<local_ip>替换为自己电脑的本地IPV4地址即可, 或者直接输入localhost:5230也可以.

当然, 为了防止访问被拒绝, 可以去防火墙里面设置把5230的端口打开. 这样就可以在电脑开着的时候在运行服务. 中途电脑死机重启后又无法访问, 应该是需要手动启动Docker服务, 不过本来目标就是部署在云服务器上的, 本地的这些设置就不多做探究了.

云服务器部署

这部分主要参考【好玩儿的Docker项目】10分钟搭建一个碎片化知识卡片管理工具——Memos

  1. 宝塔平台直接点击左侧Docker, 就可以安装Docker, 非常方便.
  2. 依然在终端运行这段代码:

    docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest
  3. 在云服务器的控制台里把5230端口打开, 这样用自己的http://公网ip:5230即可访问.

通过IP端口访问还是不够优雅, 而自己的域名ambre.top既然已经与公网IP完成解析, 何不进一步再把这个域名利用起来呢, 这时也发现拾月的域名也是 memos.skyue.com 这种形式, 文章里解释这种操作需要添加反向代理. 这样其实也更新了自己的观念, 即一个域名可以通过这种设置, 在前面自由添加内容, 实现多种服务.

参考文章中重点介绍了利用Nginx Proxy Manager来设置反向代理, 但我为了方便还是继续用了宝塔面板来设置.

  1. 新建站点: memos.ambre.top, 并在云服务器控制台的域名解析页面, 再添加一条*.ambre.top, 可以再域名前添加任何内容;
  2. 打开新建网站的配置文件, 按照参考文章中注释掉相应内容后, 再添加以下代码:

     location / {
       proxy_pass http://127.0.0.1:5230/;
       rewrite ^/(.*)$ /$1 break;
       proxy_redirect off;
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Upgrade-Insecure-Requests 1;
       proxy_set_header X-Forwarded-Proto https;
     }

    其中http://127.0.0.1:5230/需要调整, 按照以下命令来确认.

    ip addr show docker0
  3. 与之前一样设置SSL和Https, 即可通过 memos.ambre.top 来访问memos服务.

Memos使用

界面上基本承袭自Flomo, 但因为开源可以玩的花样更多一点, 目前我把界面字体改成霞鹜文楷, 背景从Bing获取.

手机端有Moe memos, 我多次用IP地址访问未果, 上述设置完成后直接用域名访问

其他使用中值得一提的点有:

  • 部分支持Markdown格式, 图片直接用markdown格式即可直接加载, 那就不用再占用本地空间了.
  • 可以添加代码块, 勾选框, 但奇怪的是我在Web端无法直接勾选, 已反馈.
  • 标签可以实现Flomo中多层效果, 四到五层都可以, 但是删掉博文后标签还是存在, 从手机客户端删除比较方便
  • 这里介绍了memos支持的特殊格式, 甚至支持LaTex!

Memos更新

上面提到的勾选框无法直接勾选的Bug很快被开发者修正, 我也想马上修正, 一开始尝试按照最新的commit直接找到文件修改代码, 幸亏一开始没有找到文件位置才停止这种做法, 其实并不需要这样, 更不需要等待开发者发布下一个正式版本, 而是直接重新拉取最新版本即可. 当然重要的是把之前的数据做好备份. 我的步骤如下:

  1. 暂停memos程序

    docker stop memos
  2. 备份数据
    暂停memos后, 相应目录下会只有正式数据文件memos_prod.db, 我的文件位置为/root/data/docker_data/memos/.memos, 由于不熟悉Linux命令, 我直接在宝塔面板里把这个文件剪切到别的位置.
  3. 移除旧版本的memos

    docker rm memos
  4. 拉取最新镜像

    docker pull neosmemo/memos:latest
  5. 运行最新镜像

    docker run -it -d \
      --name memos \
      --publish 5230:5230 \
      --volume /root/data/docker_data/memos/.memos/:/var/opt/memos \
      neosmemo/memos:latest \
      --mode prod \
      --port 5230
  6. 把之前的备份文件覆盖掉新形成的数据文件, 并且启动服务

    docker start memos

这样就完成了更新, 目前勾选框也可以征程直接勾选. 今后Typecho要更新的时候也要注意备份的问题, 搞清楚数据主要在那些文件中.

标签: memos, 开源

添加新评论

Ambre Cabin已建成 259 天. 共有 38 篇文章和 1 条评论.