Myles
921 字
5 分钟
Memos无服务器部署
2023-05-13

前言#

前几天网上冲浪发现个宝藏开源项目 Memos——A lightweight, self-hosted memo hub. Open Source and Free forever1.

我理解为一个拥有社交属性的备忘录,提供了与好朋友分享一些奇思妙想的平台。并且颜值超高!

因为它是通过 Docker 部署的,就可以把它挂载到软路由上,然后通过 ZeroTier 构建虚拟局域网,将终端设备添加进来,这样不需要购买服务器一样可以随时随地使用 Memos。

在 openWrt docker 中部署#

在 ubantu 系统中,Ctrl+Alt+T打开终端链接软路由

ssh [email protected]

创建 memos 文件夹并进入

mkdir memos -p
cd memos

docker 部署2

docker run -d \
  --init \
  --name memos \
  --publish 5230:5230 \
  --volume ~/.memos/:/var/opt/memos \
  ghcr.io/usememos/memos:latest

输入命令查看是否部署成功

docker logs memos

至此 memos 已经部署成功了。我们可以通过局域网 192.168.2.1:5230 访问它。初次进入默认语言为英文,可以在 Settings>>Preferences>>Language 中选择简体中文。

值得一提的是 Memos 集成了 ChatGPT 的功能只需在设置>>系统>>OpenAI: API Key 中填写自己的 Key 便可使用。

chatgpt

ZeroTier 创建虚拟局域网#

仅仅通过局域网访问达不到我们的需求,此时借助于免费强大的内网穿透工具 ZeroTier。进入ZeroTier 官网,点击 Sign Up 注册账号,注册成功自动跳转到个人中心,此时点击黄色按钮Create A Network创建虚拟局域网络,然后点击进入配置。如图

zerotier

>>Settings#

  • Basics中 (记住 Netwok ID!!!待会会用)Name 输入框设置网络名称(可选),Access Control 单选框选择 Private。
  • Advanced中 IPv4 Auto-Assign 中选择自己喜欢的网段

此时已经完成了基础功能的设置,下面进行终端配置。

openWrt 配置#

如果你刷的固件中自带的有 zerotier 插件那么就非常简单。只需要进入 openwrt 后台管理地址,找到 zerotier 在 ZeroTier Network ID 中填入刚才创建的虚拟局域网的 Network ID。

如果没有需要进行如下设置3

  1. 终端连接 openwrt 安装 zerotier

    ssh [email protected]
    opkg update
    opkg install zerotier
  2. 创建配置文件

    mkdir -p /etc/zerotier
    uci set zerotier.openwrt_network=zerotier
    uci add_list zerotier.openwrt_network.join='你的Network ID'
    uci set zerotier.openwrt_network.enabled='1'
    uci set zerotier.openwrt_network.config_path='/etc/zerotier'
    uci commit zerotier
  3. 启动

    /etc/init.d/zerotier enable
    /etc/init.d/zerotier start
  4. 浏览器进入 openwrt 后台管理地址

  • 依次点击>>网络>>接口>>“添加新接口”。

  • 名称自定义,协议选不配置协议,设备选 z 开头的适配器。点击“创建接口”按钮。createLan

  • 创建成功在上方会出现选项卡,点击“防火墙设置”,在“创建/分配防火墙区域”选择“lan”,点击保存然后一定要保存并应用!!!

  • 回到后台管理界面依次点击>>网络>>防火墙>>“通信规则”

  • 名称自定义,协议选 UDP,源区域选任意区域,目标区域选设备,目标端口填 9993。保存并应用firewallRule

  • 重启 openWrt

    reboot

    至此就完成 openwrt 的 zerotier 配置。

ZeroTier 权限授权#

进入zerotier 个人中心,就可以在刚才创建的网络的 Members 中看到所有加入进来的终端设备,此时只有软路由一个。

>>Members#

  • 点击Auth单选框授权
  • Name/Description填写信息以便区分不同终端设备
  • Managed IPs中记住软路由的 IP 地址,这也是外网访问地址。

终端配置#

zerotier 下载地址,找到对应的安装包下载并安装(Windows、Android、IOS 等)。添加 Network,然后设置里填入 Network ID。由于都是图形化操作界面,使用很简单就不过多赘述。

参考#

Footnotes#

  1. Memos 官网说明

  2. Memos 官方文档Docker 部署

  3. OpenWrt 安装 ZeroTier

Memos无服务器部署
https://blog.panda74.fun/posts/share/memos-docker/
作者
Panda74
发布于
2023-05-13
许可协议
CC BY-NC-SA 4.0