[Docker] 基于 Leanote 搭建私有笔记服务器的经历

前言

一直以来都是用的 有道云笔记 或者各种 博客 来记自己的笔记,以前对这些云笔记什么的,其实没有那么高的需求。但最近一段时间,随着自己的代码开始写的有点杂的时候,就发现笔记是真的很重要,尤其是有些想法曾经琢磨过,但要用的时候总是想不起来怎么写,就很浪费时间。

虽然,有道 也很好,但就是觉得这些笔记数据放在别人那里总是觉得不舒服。趁年轻,还能折腾,搞个属于自己的笔记服务器来玩一下。

网上都在推荐 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 的端口关掉,使其只能在内网被应用服务访问。后期如果找到好的方法再来处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值