写在前面的话

蚂蚁笔记作为一个开源的云笔记,支持多端同步,真让人大爱,遗憾的是太久太久没人维护了。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 端口

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

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

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

leanote 蚂蚁云笔记 源码编译相关推荐

  1. vc6可编译的 linux 源码,Linux 下源码编译FFMEG

    1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...

  2. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  3. 5单个编译总会编译全部_玩转Android10(五)源码编译开发中常用命令

    源码开发编译中,熟练掌握常用命令,可以提高开发工作效率.Android源码中,将相关的命令分为如下几类: 1.初始化源码编译环境 初始化编译环境,为后续提供如lunch.make.xxgrep.god ...

  4. mono和monodevelop源码编译安装

    之所以用源码编译的方式安装mono和monodevelop,是因为通过yum安装的mono不是最新版本,而且monodevelop不能建 asp.net MVC3的工程. 而且通过源码安装,可以进一步 ...

  5. nginx源码编译、负载均衡及模块的扩展

    1.nginx源码编译 实验环境: iptables和selinux关闭 redhat6.5 nginx:test1: 172.25.1.11 [root@test1 ~]# ls nginx-1.1 ...

  6. mac通过tree源码编译安装tree

    通过tree源码编译安装  下载源码:curl -O ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz  解压源码:tar xzvf tree-1.6 ...

  7. 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...

  8. Nginx 源码编译安装

    Nginx 源码编译安装环境 Centos7 Nginx1.8.1    下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http: ...

  9. 基本lnmp平台的搭建(源码编译)

    lnmp :linux ,nginx ,mysql ,php 系统环境:rhel6.0    selinux and iptables disabled  (这里我们都只用源码编译的方式) 1 ste ...

最新文章

  1. 从ADAS到无人驾驶 关键技术有哪些
  2. 052_Drawer抽屉
  3. leetcode 239. Sliding Window Maximum | 239. 滑动窗口最大值(单调栈,窗口内最大最小值更新结构)
  4. C语言实用算法系列之学生管理系统_单向链表外排序_堆内数组存储链表节点指针
  5. 使用split_size优化的ODPS SQL的场景
  6. 初入C++(二)类和对象,构造函数,析构函数
  7. kdd数据集_learning from imbalanced data sets—第一章——KDD与数据科学概述
  8. js学习小计5-零宽断言
  9. matlab ode 初值,关于ODE45初值问题和erf函数的问题
  10. PHP in_array 函数,解决大量数据判断in_array的效率慢,in_array 效率优化
  11. 企业邮箱登录入口首页是哪个,公共电子邮箱怎么申请注册?
  12. 【iOS】网络操作与AFNetworking
  13. Giv Svn Branch 操作
  14. iOS之App转让-别告诉我你还不知道!
  15. Flutter成都开发者线下交流会实录
  16. java文件传输(JAVA文件传输的好处)
  17. Unity简单商城系统,用SQLite数据库保存/加载数据
  18. 关于使用JCreator编译后无法运行的解决方法
  19. 误操作,U盘被dispart命令删除分区了怎么恢复?
  20. 西安邮电大学《面向对象与C++程序设计》PTA上机期末考试试题(随机)

热门文章

  1. IDEA社区版搭建Tomcat服务器并创建web项目
  2. 大厂必考深度学习面试题及参考答案
  3. PMP考试通过有多简单
  4. createCaptureSession()
  5. WEB、WEB标准、W3C的理解
  6. accumulate的用法
  7. case、casex、casez的区别
  8. 20230308-二维数组的长度
  9. 2008中国无线互联网细分领域排行榜
  10. 群晖wordpress如何连接mysql,「全网首发」群晖wordpress二级目录下实现IP加端口访问教程...