从0自建Memos服务教程
前言
之前已经写过一篇博客,【在玩客云上用Docker部署memos】。
但几个月过去,memos进行了大量的更新,托管的docker镜像也从ghcr.io转移到了docker hub,而且经过这段时间的安利,有好几个朋友有兴趣玩memos,想自己部署一个。
所以重新记录一下部署memos的过程,这次不针对玩客云,所有硬件通用。
当然,如果你有基础的英文阅读能力,也有基础的linux操作经验,可以直接看【memos官网的操作手册】
准备
- 一个装了linux的vps,或者是电脑、电视盒子甚至其它电子垃圾
- linux发行版最好选debian,因为我喜欢用debian,😄
- 因为要拖docker镜像,国内的网络环境你懂的,注意配置好docker镜像加速
部署
第一步:安装docker环境
ssh连上debian安装docker。个人建议使用docker-compose方式部署,因为这种方式会有一个配置文件,方便编辑和管理。
sudo apt install docker.io docker-compose
第二步:配置docker镜像加速器(没需求可以跳过)
国内特殊的网络环境,如果不配置docker镜像加速,在拉取镜像的时候那叫一个折磨人。目前的docker国内镜像源,我测过很多,不管是网易云、百度云、上海交大,在拉取memos镜像时都没有效果,最后还是得用阿里云的镜像加速服务。
阿里云的docker镜像加速没有公共的地址,而是针对不同的用户有唯一的地址,所以需要登录自己的阿里云查看。
获取到自己的阿里云镜像加速其地址以后,进入/etc/docker/
目录看下是不是有daemon.json
文件,没有的话新建一个
sudo touch /etc/docker/daemon.json
然后用nano或者vim编辑daemon.json
sudo nano daemon.json
往文档中添加如下内容
{
"registry-mirrors": ["https://<你的加速器地址>.mirror.aliyuncs.com"]
}
最后重启docker即可
sudo systemctl restart docker.service
重启以后,可以执行以下命令确认变更是否生效
sudo docker info
显示结果如图
第三步:编辑memos配置文件
通过docker-compose方式部署memos,需要提前准备一个docker-compose.yml
的配置文件,里面设定安装目录、重启方式、端口号、运行用户等几个细节。
首先在debian系统中找一个自己喜欢的目录,新建文件
touch docker-compose.yml
然后用nano或者vim编辑
nano docker-compose.yml
最后往文件中粘贴以下内容
version: "3.0"
services:
memos:
image: neosmemo/memos:stable
container_name: memos
user: 1000:1000
restart: always
volumes:
- ~/.memos/:/var/opt/memos
ports:
- 5230:5230
配置文件的简单释疑:
image: neosmemo/memos:stable
,指定镜像地址和版本,如果你对memos的版本没有特别指定,用stable
即可,拉取最新的稳定版本。如果你的硬件特殊,比如老旧的arm32/v7,那这里得指定0.15.0
,因为之后的版本官方已经不再支持arm32/v7的cpu架构。container_name: memos
,容器名称,默认是memos,可以根据自己喜好随便改。user: 1000:1000
,这个配置是指定运行memos服务的用户,如果你喜欢直接用root用户一把梭,或者不明白linux的用户权限、组权限,这个配置可以删掉。restart: always
,设定容器的重启策略,比如系统重启以后,容器是否自动重启。volumes:
,指定数据文件的存放位置,默认是~/.memos/
,也就是运行用户的用户目录下,可以根据自己喜好调整。冒号后面的/var/opt/memos
不要动,这是docker容器内的数据目录。ports:
,设定服务的端口号,默认5230。如果要自定义端口,改前一个5230即可,后一个是docker容器内的端口号。
以上各个设定根据自己需求调整了以后,就可以进入最后一步部署了。
第四步:部署
在配置文件docker-compose.yml
的目录下,执行命令
sudo docker-compose up -d
等命令跑完以后,memos就完成部署了。
打开电脑浏览器,地址栏输入http://host_ip:5230
就可以访问自己的memos服务了。
🎉