前言

在B站上看到程序羊(CodeSheep)自己搭建了云笔记,感觉挺好玩儿的就想着自己动手试试,结果差点就逝世了,看着别人搞10分钟不到就搞好了,自己搞了两天,哎呦喂。

1. 环境准备

  1. PicGo:https://github.com/Molunerfinn/PicGo/releases, 上传图片到图床的工具(目前无法将gitee作为图床了,我是买了腾讯云对象存储,一年10元不到)
  2. 云服务器,或者自己的虚拟机
  3. MongoDB:https://www.mongodb.com/try/download/enterprise,版本号最好选择4.0,一方面4.0+的里面没有mongorestore等,还需要自己从这里下载复制(压缩包中bin目录下全部文件)过来,另一方面是添加用户后,后面在leanote的配置文件中配置用户密码会出错,因为最新版本添加了严格的权限验证,怎么解决没有百度出来
  4. leanote:http://leanote.org/#download

2. 资料参考

  1. 羊哥视频教学:https://www.bilibili.com/video/BV1w3411N7zM?spm_id_from=333.337.search-card.all.click
  2. leanote官方安装文档:https://github.com/leanote/leanote/wiki/Leanote-%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B----Mac-and-Linux,最好按照文档一步一步来,别直接先给数据库添加用户,我就是跳着来,结果最后leanote正常启动了,但是访问页面就是没数据
  3. MongoDB数据库添加用户:https://github.com/leanote/leanote/wiki/QA#%E5%A6%82%E4%BD%95%E7%BB%91%E5%AE%9A%E5%9F%9F%E5%90%8D

3. Leanote 二进制版详细安装教程 Mac and Linux

官方文档真的很详细,根据步骤来,十有八九错不了。

3.1 下载leanote

# 将leanote压缩包上传到自己熟悉的目录下,我放的是:/usr/local/leanote
# 解压
tar -xzvf leanote-darwin-amd64.v2.0.bin.tar.gz

3.2 安装mongodb

# 根据上文链接下载压缩包到自己熟悉的目录下,我放的是:/usr/local/mongodb
# 解压
tar -xzvf mongodb-linux-x86_64-3.0.1.tgz

3.3 添加环境变量(可有可无)

# 先进入MongoDB的bin目录下
pwd   #显示当前目录路径,将此路径添加到环境变量中
vim /etc/profile
# 直接键入 i 进入插入模式,在最后一行加入
export PATH=$PATH:(pwd出来的路径)
# 敲一下Esc键,然后依此输入  :wq,敲回车保存并退出
# 使环境变量生效
source /etc/profile

3.4 启动MongoDB

创建三个文件夹,配置文件、数据库数据存储、日志文件

首次启动

mongod --dbpath 创建的data路径  # 出现好长一段代码后说明启动成功了
# 因为这不是后台启动,需要另开一个窗口,在另一个窗口输入: mongo,即可进入交互程序

导入初始数据
Ctrl+C退出交互程序后,输入mongorestore -h localhost -d leanote --dir /home/user1/leanote/mongodb_backup/leanote_install_data/,即将leanote的初始数据导入到MongoDB中
注意:
这一步可能会出现mongorestore不具备执行权限,开启权限请另行百度,如果你使用的是xftp等工具的话,直接右键更改权限即可,yum install net-snmp这个命令不执行的话,可能也会报错,具体错误找不到辽。
查看数据

$> mongo
> show dbs # 查看数据库
leanote 0.203125GB
local   0.078125GB
> use leanote # 切换到leanote
switched to db leanote
> show collections # 查看表
files
has_share_notes
note_content_histories
note_contents

3.5 配置leanote

leanote的配置存储在文件 conf/app.conf 中。

请务必修改app.secret一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患!

3.6 运行leanote

注意: 在此之前请确保mongodb已在运行!

# cd 进入leanote的bin目录下
nohup bash run.sh & #后台运行

运行成功可通过日志最后会出现正在监听9000端口

3.7 体验leanote

输入网址:http://ip:9000,即可登录访问自己的云笔记,管理员账号为admin,密码为:abc123

4. 后续安全事项

因为MongoDB初始时没有添加用户,任何人都可以访问,这样数据内容就存在很大安全隐患,因此我们要给leanote数据库添加用户,并在leanote的配置文件中添加配置的用户跟密码

4.1 给leanote添加用户

# 关掉leanote
ps -ef | grep leanote
kill -9 leanote进程id# 进入MongoDB交互界面
mongo
use leanote # 切换数据库
db.createUser({user: '用户名',pwd: '密码',roles: [{role: 'dbOwner', db: 'leanote'}]
});db.auth("用户名","密码") #权限验证,返回1代表验证成功
Ctrl+C # 退出交互界面
# 关掉MongoDB
ps -ef | grep mongo # 查找MongoDB进程号
kill -9 进程id

4.2 创建mongodb启动的配置文件

在conf文件夹下创建mongo.conf

dbpath=/usr/local/mongodb/data # 数据库文件目录
logpath=/usr/local/mongodb/logs/mongo.log# 日志存放目录
port=27017 #端口
fork=true # 守护进程,后台运行
auth=true # 开启身份验证
bind_ip=0.0.0.0 # 允许远程访问,如果为127.0.0.1则只能本地访问,后续可以打开该配置,通过compass访问数据库,但要注意配置权限

4.3 重新启动mongodb

mongod -f /usr/local/mongodb/conf/mongo.conf   # 最后是配置文件的路径

4.4 修改leanote的配置文件


以下配置文件仅供参考,只需要在自己的配置文件中添加用户名跟密码即可

#------------------------
# leanote config
#------------------------http.addr=0.0.0.0 # listen on all ip addresses
http.port=9000site.url=http://localhost:9000 # or http://x.com:8080, http://www.xx.com:9000# admin username
adminUsername=admin# mongdb
db.host=127.0.0.1
db.port=27017
db.dbname=leanote # required
db.username= # 用户名,如果没有则空着
db.password= # 密码,如果没有则空着
# or you can set the mongodb url for more complex needs the format is:
# mongodb://myuser:mypass@localhost:40001,otherhost:40001/mydb
# db.url=mongodb://root:root123@localhost:27017/leanote
# db.urlEnv=${MONGODB_URL} # set url from env. eg. mongodb://root:root123@localhost:27017/leanote# You Must Change It !! About Security!!
app.secret= 自己的配置文件中会有的#
#--------------------------------
# revel config
# for dev
#--------------------------------
app.name=leanote
http.ssl=false
cookie.httponly=false
cookie.prefix=LEANOTE
cookie.domain= # for share cookie with sub-domain
cookie.secure=false
session.expires=3h # 3 hour. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
format.date=2006-01-02
format.datetime=2006-01-02 15:04:05 # 必须这样配置
results.chunked=falselog.trace.prefix = "TRACE "
log.info.prefix  = "INFO  "
log.warn.prefix  = "WARN  "
log.error.prefix = "ERROR "# The default language of this application.
i18n.default_language=en-usmodule.static=github.com/revel/modules/static[dev]
mode.dev=true
results.pretty=true
watch=truemodule.testrunner = # github.com/revel/modules/testrunnerlog.trace.output = stderr
log.info.output  = stderr
log.warn.output  = stderr
log.error.output = stderr[prod]
mode.dev=false
results.pretty=false
watch=falsemodule.testrunner =log.trace.output = off
log.info.output  = off
log.warn.output  = %(app.name)s.log
log.error.output = %(app.name)s.log

4.5 重新启动leanote

# cd 进bin目录
nohup bash run.sh &

5. 总结

这次走了不少弯路:

  • 下载安装MongoDB时,4.0+版本以上没有mongorestore等文件,在使用时还要给mongorestore设置权限(777)
  • 一开始给mongodb设置了用户,然后迁移备份,一个是在执行迁移命令时:mongorestore -h localhost -u 用户名 -p 密码 -d leanote --authenticationDatabase admin --dir /usr/local/leanote/leanote/mongodb_backup/leanote_install_data
    不加authenticationDatabase admin会报错,另一个是迁移成功后,leanote也成功启动了,但是访问会出现500服务器异常,然后又重新跟着官网来了一遍(严格按照官网步骤,小白)就OK了
  • 最后使通过nginx的stream流来进行一个代理,目前还没搞好,配置文件首行导入stream模块后报无法识别SSL啥的,以后再说,这个也不是很必要。

为羊哥点赞,利用云服务器搭建私人云笔记相关推荐

  1. 利用云服务器搭建hadoop集群

    利用云服务器搭建hadoop集群 测试连接 一. Linux配置 二. 3台服务器免密码登录 1. 三台机器生成公钥与私钥: 2. 拷贝公钥到同一台机器 3. 复制第一台机器的认证到其他机器 4. 通 ...

  2. Chevereto图床搭建 | 利用云服务器搭建免费图床完整教程

    前言: 手里有台香港阿里云机器,不知道干什么好,干脆拿来做些小实验,呆在家里防疫都已经快长毛了...博客上的图片本来是托管在阿里云OSS上的,但是感觉管理起来不是很方便.而且本来很好用的 SM.MS ...

  3. 利用云服务器搭建网站

    基本步骤: 1.开通一台云服务器ECS 选择: ①计费方式:    按量  或包年包月     (通常是有很便宜的专门提供给学生的云服务器) ②规格:  CPU核数和内存大小 ③操作系统: Windo ...

  4. 如何利用云服务器搭建个人网站

    去阿里云进入官网 aliyun.com 注册账号 小林同学在这里用阿里云演示,大家也可以去腾讯云.百度云注册等大型知名企业,步骤雷同,看个人喜欢 注册完,完善个人信息,进行实名认证 主页面 点击 最新 ...

  5. Lsky Pro+云服务器搭建私人图床

    准备 Ubuntu云服务器(已安装宝塔),并解析一个域名主机记录 Lsky Pro官方仓库下载lsky-pro.zip Picgo官方仓库下载PicGo-Setup-x.x.x-x64.exe并安装 ...

  6. 阿里云服务器搭建私人云盘seafile

    cd进入根目录 执行下面的指令 yum install wget -y wget https://raw.githubusercontent.com/helloxz/seafile/master/in ...

  7. 如何搭建战神冰雪传奇手游 从零开始学习游戏架设,玩转云服务器,如何利用云服务器搭建一款属于自己的传奇手游

    服务器配置:2核4G/1M以上配置 服务器系统:Windows Server 2008 R2 x64 注:不想买服务器的可以用VM虚拟机学习搭建,虚拟机是不能联网的,只能本地单机个人体验! 所需工具: ...

  8. 利用腾讯云服务器搭建owncloud个人网盘

    天天在家学习,都要学傻了,无意间想到弄个私人网盘玩玩,就立马去腾讯买了个服务器来玩玩,下面给大家介绍如何利用云服务器搭建一个个人网盘,非常简单,新手也能半个钟配置完. 我服务器的系统是CentOS7 ...

  9. 自建网站教程!如何用云服务器搭建个人网站?

    不同建站方式适合哪些群体? 如何利用云服务器搭建个人网站? 今天,教你一些关于建立网站的知识! 1.建站有哪些方式? 建网站主要有两种方式,一种是自主建网站,一种是直接买网站模板. 自主建站的优势在于 ...

  10. 怎样把本地文档共享至服务器上,利用云服务器共享本地文件

    利用云服务器共享本地文件 内容精选 换一换 当您成功创建私有镜像后,镜像的状态为"正常",您可以使用该镜像创建服务器实例或云硬盘,也可以将镜像共享给其他帐号,或者复制镜像到其他区域 ...

最新文章

  1. TotoiseSVN的基本使用方法
  2. 成功解决TypeError: Encoders require their input to be uniformly strings or numbers. Got [‘float‘, ‘int‘,
  3. 【独家】去哪儿网PRD兵法秘籍大公开,火爆课程精彩直击!
  4. pipreqs------查找python项目依赖并生成requirements.txt
  5. transformer论文解读_【论文解读】ICLR2020 | 深度自适应Transformer
  6. 服务:OracleDBConsoleorcl [Agent process exited abnormally during initialization]
  7. UI设计师必备|Map name切图命名规范
  8. 记录自己的gitlab搭建之旅
  9. python 在window 系统 连接并操作远程 oracle 数据库
  10. Must read C++ book list
  11. c++实现吃豆子游戏
  12. MATLAB小波图像融合处理
  13. 【CSS应用篇】——CSS如何实现渐变背景
  14. jpg转bmp c语言 linux,C++_C语言实现BMP转换JPG的方法,本文实例讲述了C语言实现BMP转 - phpStudy...
  15. Shader光照模型-高光反射
  16. java接收任意键继续_正确实现“按任意键继续”功能
  17. VC++线程中不能用updatedata()的解决办法
  18. 求职经验丨应届毕业生,如何找到一份程序员工作呢?
  19. python为啥爬取数据会有重复_利用Python来爬取“吃鸡”数据,为什么别人能吃鸡?...
  20. java格式话时间报错java cannot format given object as a date

热门文章

  1. 方剂学(综合练习)题库【1】
  2. html字数统计,html页面字数统计
  3. 双系统卸载ubuntu
  4. 解决win10系统alt+tab切换程序不显示程序缩略图问题
  5. ACL2021_Lexicon Enhanced Chinese Sequence Labelling Using BERT Adapter
  6. Android地图跑步项目,通过Weex 300行代码开发一款简易的跑步App
  7. 对接携程供应商php加密解密类
  8. 使用SpotBugs/FindBugs进行代码检查
  9. 联想微型计算机改win76,联想ideacentre一体机改win7详细教程
  10. std::binary_serach, std::upper_bound以及std::lower_bound