源码编译部署Memos开源项目
前言
我是觉得通过源码部署Memos更灵活一点,虽然通过docker部署确实方便多。
如果你也打算通过源码方式部署Memos,那么请继续往下看。
源码部署
安装Go的环境
验证Go环境
C:\Users\R9000P>go version |
启动Memos后台
下载Memos项目源码到本地,或点击跳转 Memos的Github仓库
git clone git@github.com:usememos/memos.git |
若go下载依赖超时,可执行当前命令后重试
go env -w GO111MODULE=on |
启动Memos后台运行
# 在git clone的项目源码根目录执行 |
--addr(可选)指定当前部署ip环境,不指定默认为 localhost 环境--data指定附件保存位置(如果启用mysql,则默认保存数据库attachment的blob字段下;可在web端登入后设置储存位置为文件系统,则保存当前目录下。)--driver默认是sqllite,这里是指定数据库驱动--dsn指定当前数据库连接配置信息
正常运行会打印启动日志
2026/02/07 15:37:12 INFO background runners started goroutines=10 |
后台服务接口
http://localhost:3001/ |
启动Web端前台
安装依赖
npm i |
启动web端
npm run dev |
前端页面地址
http://localhost:8081/web |
打包
Memos 前端
优先打包前端文件,在构建后台包的时候需要把前端打包
dist文件夹复制到.\memos\server\router\frontend\下,替换默认的空前端文件目录dist
注意: D:\WorkSpace\GitHub\memos\web\vite.config.mts 文件
# 本地环境运行,连接本机环境的memos服务 |
打包
npm run build |
Memos 服务端
win 打包
go build -o memos.exe .\cmd\memos\main.go |
linux 打包
设置环境
set GOARCH=amd64 |
打包构建linux应用
go build -o memos .\cmd\memos\main.go |
还原环境
基于win平台构建linux应用后,需要在构建win平台应用,则需要还原环境(不还原,则win平台go run命令会失败!)
set GOARCH=amd64 |
部署
创建linux服务
vim /etc/systemd/system/memos.service |
文件内容
# /etc/systemd/system/memos.service |
linux上创建用户
sudo useradd -r -s /bin/false memos |
创建目录并授权
sudo mkdir -p /opt/memos /var/lib/memos/data /var/log/memos |
设置可执行权限
chmod u+x /opt/memos/memos |
启动命令
sudo systemctl daemon-reload |
源码部署安全建议
直接屏蔽后台关于账号密码登录接口,防止被爆破登录
在源码 auto_service.go关于用户登录处添加代码,即使用户账户密码输入正确,也不会使其登录。
// just for me ,no need login ,just for push web |
Nginx的配置
server { |
第三方APP
MoeMemos Android 应用(Github仓库地址)
如果是参考我上述的部署方式已经禁用了账户密码登录,这里补充说明如何获取登录令牌。
在本地环境启动Memos后台和前端,但是后台连接的数据库和线上环境保持一致(我是通过openvpn构建的网络,所以我可以从本地环境访问线上DB)。
在本地环境中的web端登录后,创建一个Token给到自己就行了。
参考资料
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Think Note!