前言
一直以来都是用的 有道云笔记
或者各种 博客
来记自己的笔记,以前对这些云笔记什么的,其实没有那么高的需求。但最近一段时间,随着自己的代码开始写的有点杂的时候,就发现笔记是真的很重要,尤其是有些想法曾经琢磨过,但要用的时候总是想不起来怎么写,就很浪费时间。
虽然,有道
也很好,但就是觉得这些笔记数据放在别人那里总是觉得不舒服。趁年轻,还能折腾,搞个属于自己的笔记服务器来玩一下。
网上都在推荐 Leanote (蚂蚁笔记)。后面查了一下,貌似能够支持 Markdown,还可以私有化部署的,而且还是免费的,好像就只有它。试用了一下,感觉也还 OK。特此记录,已备后查
部署环境
信息 | 说明 |
---|---|
操作系统版本 | Ubuntu 18.04 64位 |
Docker 版本 | 20.10.11 |
服务器配置 | 天翼云 4 核 8G 4M带宽 |
部署步骤
Step 1 创建项目文件夹
cd /home
# 创建项目文件夹
mkdir MyNote
cd MyNote
# 数据文件夹, 用于映射 mongodb 容器内容, 存放笔记
mkdir Data
# 应用文件夹, 用于映射笔记应用的数据
mkdir Leanote
# 安装包文件夹, 主要是二进制文件
mkdir Install
cd Install
# 下载二进制文件包
wget https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
# Dockerfile 部署文件夹, 存放关于 Dockerfile 构建过程所需文件
mkdir Docker
# 解压文件包至 Dokcer 中
cd Docker
tar -zxvf /home/MyNote/Install/leanote-linux-amd64-v2.6.1.bin.tar.gz
Step 2 创建 MongoDB
# 拉取 mongodb 镜像
docker pull monogo
# 运行镜像
docker run -itd --name MyNote_Data --restart=always -p 27017:27017 -v /home/MyNote/Data:/data/db mongo
Step 3 初始化数据
# 复制初始化数据至 MongoDB 中
docker cp /home/MyNote/Docker/leanote/mongodb_backup/leanote_install_data MyNote_Data:/
# 进入 Docker
docker exec -it MyNote_Data /bin/bash
# 还原初始化数据
mongorestore -h localhost -d leanote --drop --dir /leanote_install_data/
# 进入 mongo
mongo
# ---- 以下操作在 mongodb 中进行 ----
# 查看还原效果
> show dbs;
# admin 0.000GB
# config 0.000GB
# leanote 0.001GB
# local 0.000GB
# 退出 mongodb
> exit
# ---- 以上操作在 mongodb 中进行 ----
# 删除初始数据文件夹
rm -rf leanote_install_data/
# 退出 docker
exit
Step 4 设置配置文件
# 打开配置文件
vim /home/MyNote/Docker/leanote/conf/app.conf
找到 # mongodb
, 然后将其对应的字段进行修改
# mongdb
db.host=你的内网 ip # 一定要使用内网ip, 不然 mongodb 暴露在外网将存在安全隐患
db.port=27017
db.dbname=leanote # required
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
并记得修改 app.secret
中的任意字符,然后保存退出
Step 5 创建 Dockerfile
cd /home/MyNote/Docker
touch Dockerfile
# VERSION 0.0.1
# 基于 ubuntu 18.04 创建
FROM ubuntu:18.04
# 作者
MAINTAINER 你的名字 <你的邮箱>
# 复制项目到 Docker
COPY leanote/ /root/leanote/
# 基本环境配置
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo 'Asia/Shanghai' >/etc/timezone && \
chmod +x /root/leanote/bin/run.sh
ENTRYPOINT ["/root/leanote/bin/run.sh"]
EXPOSE 9000
Step 6 创建镜像
cd /home/MyNote/Docker
docker build -t='mynote/server' .
Step 7 运行容器
docker run -itd --name MyNote_Server --restart=always -p 9000:9000 -v /home/MyNote/Leanote/db:/data/db -v /home/MyNote/Leanote/leanote:/data/leanote mynote/server
在服务器里打开 9000
端口就可以访问了。
后记
由于是使用 Docker 来部署的,关于给 MongoDB 新增用的的方法,试了很多次,都失败了,暂时还没找到如何给 MongoDB 新增用户的方法,目前只能是先把 MongoDB 的端口关掉,使其只能在内网被应用服务访问。后期如果找到好的方法再来处理。