部署Leanote 蚂蚁笔记

319 阅读2分钟

选择leanote的原因

Leanote 虽然最后一次更新是在 2018 年,但其开源特性使得部署和维护成本较低。由于客户信息及服务器信息等极为重要,若放在公网的笔记平台,会存在信息泄露风险,因此选择本地部署。如果采用本地的 word、excel 保存并放入 svn 上也是一种方式,但在检索文件内部信息时不够灵活。而部署 Leanote 后,不仅可以作为部门内部的知识库,方便分享和检索,还能极大地提高信息管理的效率和安全性。

环境

mongodb

nginx

参考

github.com/leanote/lea…

官方的文档;很多问题都可以从中找到解决方式

下载

github.com/leanote/lea…

或者

leanote.org/#download

image

部署

安装mongodb

具体参考:mongodb在linux下的部署

恢复mongodb数据

/opt/leanote/mongodb_backup
# 恢复数据
mongorestore -h localhost -u admin -p P@ssw0rd --authenticationDatabase admin -d leanote --dir leanote_install_data 

mongodb创建用户

mongosh 

use leanote
db.createUser({user:"leanote", pwd:"1234567Aa.",roles:[ { role: "dbOwner", db: "leanote" }]})

mongodb删除用户 (记录一下命令)

db.dropUser("leanote")

修改密码

db.updateUser("usertest",{pwd:"changepass1"});

编辑app.conf

vi /opt/leanote/conf/app.conf

修改mongodb的用户名密码 并保存

image

注意:

  • mongodb中的密码不要有特殊字符,否则无法连接。但是客户端可以连接,有可能还有别的设置方式。
  • site.url 不要填写localhost 或者 127.0.0.1 ; 需要填写服务器的ip;否则图片同步会有问题
  • i18n.default_language=zh-cn 改为中文

启动

cd /opt/leanote/bin
nohub bash run.sh &

image

启动成功

编写快捷启动脚本,start.sh stop.sh

start.sh

#!/bin/bash
echo "开始启动"
export PYTHONUNBUFFERED=1
nohup bash bin/run.sh > log/leanote.log 2>&1 &
echo "启动结束"

stop.sh

#!/bin/bash

process_id=$(ps -ef | grep leanote | grep -v "grep" | awk '{print $2}')
if [[ ! -z "$process_id" ]]
then
    echo "杀死进程:[$process_id]"
    kill -9 $process_id
else
    echo "进程id是空的"
fi

mongodb的备份与恢复

编写脚本(备份leanote)

# 示例

#!/usr/bin/env bash

DATE=`date +%Y_%m_%d` #获取当前系统时间
DAYS=3 #DAYS=3代表删除3天前的备份,即只保留最近3天的备份
TAR_BAK="mongod_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
mongodump -d leanote -u=leanote -p=1234567Aa. -o /opt/leanote-bak/$DATE --authenticationDatabase=leanote
cp -r /opt/leanote/files /opt/leanote-bak/$DATE
tar -zcvf /opt/leanote-bak/$TAR_BAK /opt/leanote-bak/$DATE
rm -rf /opt/leanote-bak/$DATE
find /opt/leanote-bak/ -mtime +$DAYS -delete
# 防止以外,另一台服务器也传一份
sshpass -p 123456 scp -r -o StrictHostKeyChecking=no /opt/leanote-bak/$TAR_BAK ccdc@10.0.99.115:/home/ccdc/leanote-bak/
sshpass -p 123456 ssh -o StrictHostKeyChecking=no ccdc@10.0.99.115 "find /home/ccdc/leanote-bak/ -mtime +3 -delete"

添加定时任务,每天备份一次

vi /etc/crontab

image

systemctl restart crond.service

leanote自带的备份与恢复

admin用户登录后,去后台管理中配置 mongodump,mongorestore 工具的位置

image

就可以备份与恢复了。 这里备份的是mongodb数据; files文件不会备份。

配置pdf导出

QA · leanote/leanote Wiki (github.com)