自建笔记服务器

在印象笔记之后,为知笔记也开始收费了,有道笔记对开发人员记笔记又不是特别友好,所以找一个永不不收费且安全的笔记就变得刚需了,看到了leanote笔记开源了,并且是针对开发人员的一款高体验的笔记,优点如下:

蚂蚁笔记,有极客范的云笔记!
前所未有的文档体验,近乎完美的平台覆盖,支持团队协同,企业级私有云
蚂蚁笔记 = 笔记 + 博客 + 协作 + 私有云

是否心动了?点开本文一起搭建一个属于自己的笔记服务吧!

1.准备服务器

本文是基于Centos 7 x86_64 下安装笔记服务器,因为使用root用户登录,所以接下来的目录都是基于根目录下的 root目录.在/root目录下创建文件夹noteServer:

mkidr noteServer

2.应用服务

在服务器上使用 wegt命令下载二进制文件

64位: https://sourceforge.net/projects/leanote-bin/files/2.4/leanote-linux-amd64-v2.4.bin.tar.gz/download

32位: https://sourceforge.net/projects/leanote-bin/files/2.4/leanote-linux-386-v2.4.bin.tar.gz/download

cd /root/noteServer
mkdir leanote
tar -xzvf leanote-darwin-amd64.v2.0.bin.tar.gz --strip-components 1 -C  ./leanote

配置存储在文件 leanote/conf/app.conf 中。
请务必修改app.secret一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患!其它的配置可暂时保持不变.

3.数据库服务

3.1数据库安装

到 mongodb 官网 下载相应系统的最新版安装包,或者从以下链接下载旧版本:

64位: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz

下载到 /root 下, 直接解压即可:

cd /root/noteServer
mkdir mongodb
tar -xzvf mongodb-linux-x86_64-3.0.1.tgz/ --strip-components 1 -C  ./mongodb

为了快速使用mongodb命令, 可以配置环境变量。编辑 ~/.profile或/etc/profile 文件, 将mongodb/bin路径加入即可:

sudo vim /etc/profile

此处实例使用了vim文本编辑器,你可以使用自己熟悉的编辑器。在/etc/profile中添加以下行,

export PATH=$PATH:/root/mongodb/bin

保存修改后,在终端运行以下命令使环境变量生效:

source /etc/profile

ps: source后只针对当前登录,如果其他窗口则需要重新登录下.

3.2数据库初始化

在/root/noteServer下创建目录notedate

mkdir notedate

用以下命令启动mongod:

nuhup mongod --dbpath /root/noteServer/notedate >/dev/null &

mongorestore -h localhost -d leanote --dir /root/noteServer/leanote/mongodb_backup/leanote_install_data/

执行过后可登录查看
root@ubuntu:~/noteServer# mongo
> show dbs
leanote 0.078GB
local 0.078GB
> use leanote
switched to db leanote
> db.users.find()
{ “_id” : ObjectId(“5368c1aa99c37b029d000001”), “CreatedTime” : ISODate(“2014-05-06T11:04:10.658Z”), “Email” : “admin@leanote.com“, “LeftIsMin” : false, “NoteListWidth” : 266, “NotebookWidth” : 160, “Pwd” : “此处马赛克”, “Theme” : “simple”, “ThirdType” : 0, “ThirdUserId” : “”, “ThirdUsername” : “”, “Username” : “admin”, “UsernameRaw” : “admin”, “Verified” : false, “mdEditorWidth” : 0, “Usn” : 200044, “Logo” : “” }
{ “_id” : ObjectId(“540817e099c37b583c000001”), “CreatedTime” : ISODate(“2014-09-04T07:42:24.064Z”), “Email” : “demo@leanote.com“, “LeftIsMin” : false, “NoteListWidth” : 0, “NotebookWidth” : 0, “Pwd” : “此处马赛克”, “Theme” : “”, “ThirdType” : 0, “ThirdUserId” : “”, “ThirdUsername” : “”, “Username” : “demo”, “UsernameRaw” : “demo”, “Verified” : false, “Usn” : 200006 }

初始数据的users表中已有2个用户:

user1 username: admin, password: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)
user2 username: demo@leanote.com, password: demo@leanote.com (仅供体验使用)

4. 运行笔记服务

我在服务器上启动,由于不能时刻盯着服务是否挂了,所以用守护脚本进行进程守护:
在/root/noteServer下新建watch.sh文件:

#!/bin/bash
. ~/..bashrc
#Get the module dir, mabey it's relative path
NODESERVER_PATH=`dirname "$0"`; export NODESERVER_PATH
#change work directory to module dir.
cd $NODESERVER_PATH
#now work dirtory maybe changed, so get the full path again
NODESERVER_PATH=$(pwd); export NODESERVER_PATH
echo $NODESERVER_PATH
watching()
{
    SidpPs=`ps -ef|grep "$2"|grep -v "grep"|awk '{print $2}'`
    #echo $SidpPs
    if [ "$SidpPs" = "" ]
    then
        echo "$2 restart ..." 
        $NODESERVER_PATH/$2 > /dev/null 2>&1 &
    fi
}
while [ 1 ] 
do
    watching noteServer "leanote/bin/run.sh"
    sleep 1 
    watching noteDB "mongodb/bin/mongod --dbpath /root/noteServer/notedate "
    sleep 1
    sleep 180 #脚本启动完后的轮询时间设置为3分钟
done

接下来,使用 ps -ef |grep noteServer查找已经运行的服务并 kill掉,再在/root/noteServer下执行如下命令

nohup ./watch.sh >/dev/null  &

5.愉快的使用

现在登录服务器所在IP+默认端口号9000(此处可在第二步的配置文件中修改).
在web页面下载客户端
在客户端的登录界面有一个登录自建服务选项填入相关信息即可.

贴一下自己的服务器 note.tangjing.tech
文章目录
  1. 1. 1.准备服务器
  2. 2. 2.应用服务
  3. 3. 3.数据库服务
    1. 3.1. 3.1数据库安装
    2. 3.2. 3.2数据库初始化
  4. 4. 4. 运行笔记服务
  5. 5. 5.愉快的使用
,