leanote 蚂蚁云笔记 源码编译

it2025-03-03  22

写在前面的话

蚂蚁笔记作为一个开源的云笔记,支持多端同步,真让人大爱,遗憾的是太久太久没人维护了。mac客户端使用elctron 开发,时不时内存占用过高,强迫症的我无法接受,只好转向web端了。然后就发现web端默认token两小时过期,这简直无法忍受啊,想着自己动手改一改吧,这一改就停不下来了,先记录一下怎么在本地跑起来 leanote 的源码,接下来有打算和朋友一起重构后端部分,到时候再详细记录一下~

参考了官方的说明:https://github.com/leanote/leanote/wiki/Leanote-source-installation-on-Mac-and-Linux-(En)

环境

mac + docker + golang1.15 + mongo

原本我使用的是最新的 golang image,golang 版本是 1.15.3,但是执行 go install github.com/revel/cmd/revel 时一直报错,我就试了下 1.15 版本,一切都好起来了

安装 mongo,并导入初始化数据

先上命令

docker pull mongo docker run -itd --name mongo -v /localDir:/dockerDir -p 27017:27017 mongo docker inspect mongo docker exec -it mongo /bin/bash mongorestore -h localhost -d leanote --dir /dockerDir/mongodb_backup/

docker pull mongo 拉取最新的 mongo 镜像

docker run -itd --name mongo 是启动一个名为 mongo 的容器

-v /localDir:/dockerDir 是把本地的一个目录映射到容器里,这里做映射是为了把项目的一些初始化数据(数据库、表)加载到容器里,下一步 才能去容器里导入数据

-p 27017:27017 将本地的 27017 端口映射到容器的 27017 端口

mongo最后这个 mongo 是指明启动容器使用的镜像,如果在拉取镜像时指定了 mongo 的版本,那这里也需要加上版本号,例如拉取镜像时执行 docker pull mongo:4.4.1 那这里的 mongo 应该换成 mongo:4.4.1

docker inspect mongo 翻到最下面,大概如下图,查看 mongo 容器对应的 ip,连接 mongo 时会用到

docker exec -it mongo /bin/bash 进入 mongo 容器

mongorestore -h localhost -d leanote --dir /dockerDir/mongodb_backup/leanote_install_data 导入初始化数据,–dir 指定备份数据的目录,这个目录下的数据是leanote提供的,是大把的 json 和 bson 文件

安装 golang

cd localDir wget https://github.com/leanote/leanote-all/archive/master.zip unzip master.zip docker pull golang:1.15 docker run -itd --name golang -v localDir/leanote-all-master/src:/go/src -p 9000:9000 golang:1.15 docker exec -it golang /bin/bash go install github.com/revel/cmd/revel cd /go/src vim github.com/leanote/leanote/conf/app.conf revel run github.com/leanote/leanote

cd localDir 随便本机的哪个目录,你喜欢就好

wget https://github.com/leanote/leanote-all/archive/master.zip unzip master.zip 获取 leanote 源码

unzip master.zip 解压,得到 leanote-all-master 文件夹

docker pull golang:1.15 获取 golang 1.15 的镜像

docker run -itd --name golang -v localDir/leanote-all-master/src:/go/src -p 9000:9000 golang:1.15 启动一个名为 golang 的容器,并映射本地的 localDir/leanote-all-master/src 到 golang 容器的 /go/src 目录,暴露 9000 端口

docker exec -it golang /bin/bash 进入 golang 容器

go install github.com/revel/cmd/revel golang容器里执行此命令安装 revel,如果这里报错,那下面执行代码时也会报错的!

cd /go/src 来到你的项目目录的 src 目录下

vim github.com/leanote/leanote/conf/app.conf 修改一下 mongo 数据库的地址,将 db.host 的值改为 mongo 容器对应的ip

revel run github.com/leanote/leanote 把项目跑起来吧!浏览器访问 127.0.0.1:9000 端口

个人小站欢迎大家的到来~

个人小站欢迎大家的到来~

个人小站欢迎大家的到来~

最新回复(0)