通过阿里云server配置属于自己的云笔记leanote


tags: Leanote Server Tips

写在前面

有了服务器, 能做的事情就相当多了, 话不多说, 配置一个云笔记应用先. 检索一遍之后, 发现现在主流的云笔记定制是通过一个叫leanote(中文:蚂蚁笔记)的程序完成的, 虽然要花钱, 但那是对用他们公式的服务器来说的, 自己配置的话不花钱可定制性还特别高, 下面来看看. 服务器配置部分参考1,2.

配置前的准备

客户端

mac或安卓端安装一下leanote客户端, 之后要用.

brew install leanote --cask

安卓的话客户端直接在官方GitHub下载. 也可以通过CSDN下载.

其实直接在浏览器访问也可以, 但是总觉得应该有一个客户端方便一些.

服务器端

服务器端需要通过wget下载, 但是太慢了(因为代理出了一些问题), 这里我先下载到本地, 然后通过scp命令上传到Ubuntu服务器端.

在服务器端我还是将其放在了/opt/leanote/目录下, 命令如下:

# 在物理机:
scp ~/Downloads/leanote-linux-amd64-v2.6.1.bin.tar.gz root@<公网IP>:/opt
# 在服务器:
cd /opt
tar zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
cd leanote
ls
app  bin  conf  messages  mongodb_backup  public

接下来安装一下非关系型数据库MongoDB:

sudo apt-get install mongodb

新建默认的文件夹为数据库位置:

mkdir -p /data/db

开启服务

sudo systemctl enable mongodb
sudo systemctl start mongodb
sudo systemctl status mongodb

状态:

● mongodb.service - An object/document-oriented database
     Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-11-14 21:38:44 CST; 9min ago
       Docs: man:mongod(1)
   Main PID: 39145 (mongod)
      Tasks: 24 (limit: 4432)
     Memory: 146.9M
     CGroup: /system.slice/mongodb.service
             └─39145 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

可以看到配置文件的位置为/etc/mongodb.conf, 这个文件之后要更改一下, 加入权限.

配置服务器端

端口

因为经常需要操作开启和关闭端口, 这里我配置了防火墙端口开放的快捷指令:

alias addtcp='func_tcp() { firewall-cmd --zone=public --add-port=$1/tcp --permanent && iptables -I INPUT -ptcp --dport $1 -j ACCEPT; };func_tcp'

alias addudp='func_udp() { firewall-cmd --zone=public --add-port=$1/udp --permanent && iptables -I INPUT -pudp --dport $1 -j ACCEPT; };func_udp'

alias reufw="firewall-cmd --reload"

alias port_status='func_port_status() { sudo netstat -tunlp | grep $1 && sudo iptables -L -n --line-numbers | grep $1; }; func_port_status'

这样的话需要开启8000端口的TCP访问就直接addtcp 8000, 然后reufw即可.

查看端口的开放情况也类似, 例如我这里想查看9000端口的情况:

$ port_status 9000
tcp6       0      0 :::9000                 :::*                    LISTEN      33083/leanote-linux
12   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9000 ctstate NEW,UNTRACKED

上面算是一个题外话, 下面步入正题.

先进入阿里云后台管理界面, 开启端口9000, 然后用上面的命令开启防火墙的TCP/9000端口, 操作完成后进入leanote文件夹.

MongoDB数据库的配置

导入初始数据:(路径记得改)

mongorestore -h localhost -d leanote --dir /opt/leanote/mongodb_backup/leanote_install_data/

需要调整一下数据库的内容, 为leanote这个数据库配置一下管理员的用户名以及密码3, 因为默认的MongoDB安装之后没有用户名密码机制, 不太安全.

首先查看一下MongoDB的版本, mongo --version, 显示:

MongoDB shell version v3.6.8
git version: 8e540c0b6db93ce994cc548f000900bdc740f80a
OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
allocator: tcmalloc
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

是V3, 那么就通过下面的命令插入用户名以及密码信息:

# 首先切换到leanote数据库下
> use leanote;
# 添加一个用户root, 密码是abc123
> db.createUser({
    user: 'root',
    pwd: 'abc123',
    roles: [{role: 'dbOwner', db: 'leanote'}]
});
# 测试下是否正确
> db.auth("root", "abc123");
1 # 返回1表示正确

用户添加好后, 开启权限验证, 将上面提到的配置文件/etc/mongodb.conf中的auth = true解注释.

然后重新运行下mongod, 如下:

sudo systemctl restart mongodb

在mongod的终端按ctrl+c即可退出mongodb.

leanote配置

vi /opt/leanote/conf/app.conf, 然后修改:

# You Must Change It !! About Security!!
app.secret=xxx

在上面还有一条配置为:

site.url=http://localhost:9000 # or http://x.com:8080, http://www.xx.com:9000

这里修改成你的公网IP也可以.

之后就是数据库的用户名密码:

db.username=root # if not exists, please leave it blank
db.password=abc123 # if not exists, please leave it blank

这时候当你要访问MongoDB数据库, 就需要通过下面的命令来完成:

mongo -u root -p abc123 --authenticationDatabase leanote

否则会报错.

配置守护进程

因为在退出终端会话之后进程资源会被回收, 我们将不能通过公网IP访问云笔记, 那么就需要创建一个守护进程(daemon), 在关闭终端之后还能访问该服务, 下面用了1的方法. 在Linux上创建守护进程的方法还有很多, 大家可以自行学习.

# 在自启动目录中创建脚本
sudo vi /etc/init.d/leanote.sh

写入如下内容:

#!/bin/bash
bash /opt/leanote/bin/run.sh

然后设置执行权限:

sudo chmod 755 /etc/init.d/leanote.sh

最后设置开机启动项:

sudo update-rc.d leanote.sh defaults

查看一下执行情况:

$ ps aux |grep leanote
root       33069  0.0  0.0   9572  3256 ?        Ss   10:32   0:00 /usr/bin/bash /opt/leanote/bin/run.sh
root       33083  0.0  0.4  27528 18876 ?        Sl   10:32   0:05 /opt/leanote/bin/leanote-linux-amd64 -importPath github.com/leanote/leanote
root       37336  0.0  0.0   9032   656 pts/1    S+   20:01   0:00 grep --color=auto leanote

修改网页显示(optional)

这个部分不是非要去改的, 但是毕竟是自用, 注册这个选项也确实不再需要了, 这部分内容也参考了1.

vi /opt/leanote/app/views/home/index.html
# 注释掉下面一行
!<-- <a class="btn btn-default btn-primary" href="/register">{{msg . "register"}}</a> -->

然后:

vi /opt/leanote/app/views/home/login.html
# 注释
<!--
<p class="text-muted text-center"><small>{{msg . "hasAcount"}}</small></p>
{{if .openRegister}}
         <a href="/register" class="btn btn-default btn-block">{{msg . "register"}}</a>
         {{msg . "or"}}
 {{end}}
 -->

最后:

cd /opt/leanote/app/views/home/
mv  register.html register_close.html

这样就没有注册了.

到这里, 恭喜你, 关于服务器端的配置就告一段落了. 下面在客户端上看看效果.

客户端

这里先以网页版为主, 应用程序使用起来跟网页都是一样的.

  • 修改一下admin的密码, 在个人中心->账户信息->密码 处进行修改.
  • 更改一下头像等信息(optional).

一个示例:

通过阿里云server配置属于自己的云笔记leanote_第1张图片

ref


  1. ubuntu20.04蚂蚁笔记(leanote)的使用_yaoyaohyl的博客-CSDN博客_leanote ubuntu; ↩︎ ↩︎ ↩︎

  2. Home · leanote/leanote Wiki (github.com); ↩︎

  3. QA · leanote/leanote Wiki (github.com); ↩︎

你可能感兴趣的:(Linux,Mac_Config,Cloud,Server,Config,阿里云,mongodb)