
前言
时间紧任务重 今天只讲重点
蚂蚁笔记是一个开源的笔记软件
缺点是
版本老 官方已停止更新,如有新需求需要自行二次开发
优点是
开源、支持 Win/Linux/Mac/Android/IOS 5系统客户端
一键公开文章为博客 在web端提供公网访问H5 且自带多套主题
之前写过2篇分别是
1. 在物理机直接搭建蚂蚁笔记,基于蚂蚁笔记官方github凯源代码 https://leanote.zzzmh.cn/blog/post/admin/5cac524316199b2e40000046
2. 在Docker中搭建前辈已打包好环境的一条龙快速搭建方案 https://leanote.zzzmh.cn/blog/post/admin/60d2d9ce16199b501c026a96
今天的主题依旧是Docker搭建,区别是用前辈的Docker镜像的另一个分支,NODB版本,也就是镜像里不包含Mongodb,由用户自行另外提供Mongo环境,好处自然是只需要运行一个Mongo就可以提供多个程序使用,好过每个程序自己跑一个Mongo,并且后续的备份和修改数据也来的更容易。
参考
docker hub 地址
https://hub.docker.com/r/axboy/leanote
github地址
https://github.com/axboy/docker-leanote
折腾
MongoDB
首先安装数据库 这里选择docker作者axbox推荐的4.2.7
这里演示的是不设账号密码 任何人都能直连的方法 请勿在公网暴露端口
# 先启动一次mongo
docker run -d -p 27017:27017 \
--name mongo \
mongo:4.2.7
# 宿主机提前准备一个Mongo文件夹,复制镜像data到宿主机
docker cp mongo:data /root/docker/mongo/
# 删除镜像
docker stop mongo
docker rm mongo
# 启动完整镜像,并映射目录到宿主机data
docker run -d -p 27017:27017 \
-e "TZ=Asia/Shanghai" \
-v /root/docker/mongo/data:/data \
--restart=always \
-m 200M \
--oom-kill-disable \
--memory-swap=-1 \
--name mongo \
mongo:4.2.7
根据Leanote Github教程 恢复初始化数据库
首先下载 leanote_install_data 文件夹
https://github.com/leanote/leanote/tree/master/mongodb_backup
然后放到物理机 mongo/data 目录下
再进入docker恢复备份
# 进入容器
docker exec -it mongo bash
# 恢复备份文件到 leanote 数据库
mongorestore -h localhost -d leanote --dir /data/leanote_install_data
恢复完成即初始化数据库成功
Leanote 无DB版
这里才是重点,也是最蛋疼的地方,我学艺不精,卡了2天才跑通,经供参考。
# 先启动一次 这次必不成功 但不重要
docker run -d -p 9000:9000 \
--name leanote \
axboy/leanote:nodb
# 复制容器内data到宿主机
docker cp leanote:/data/leanote /root/docker/
# 先删除容器
docker rm leanote
这里的重点是改配置文件,让leanote环境能连上mongo
修改配置文件 /root/docker/leanote/conf/app.conf
# 内网访问地址 0.0.0.0 代表不限
http.addr=0.0.0.0
http.port=9000
# 公网访问地址 如果你有域名 改成你的域名(后续需要配合nginx反向代理才能真正访问到)
# 如果你没有域名 但有服务器 填http://ip地址 也可以用ip访问
site.url=https://zzzmh.cn
# admin username
adminUsername=admin
# mongdb配置
# 这里要改成mongodb的docker容器名称
db.host=mongo
db.port=27017
# 这里是你mongodb数据库名称
db.dbname=leanote
# 如果mongodb有密码 在这里配置 没有留空白即可
db.username=
db.password=
# 改一个任意64位随机字符串
app.secret=KsZpeVxJbcKJhqemv302JiyFpPJuxkSufclaOJP6r2qhKleCRMFzsyAKStuFEosq
# 多语言改中文
i18n.default_language=zh-cn
# 后面省略 ...
改完配置文件以后,再次启动即可成功连上mongodb
# 内存可以根据你的实际情况给 我给100M用来测试
docker run -d -p 9000:9000 \
--link mongo \
-e "TZ=Asia/Shanghai" \
-v /root/docker/leanote:/data/leanote \
--restart=always \
-m 100M --oom-kill-disable --memory-swap=-1 \
--name leanote \
axboy/leanote:nodb
检验是否已启动成功方法
docker ps -a
# 返回如下
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78913c8skjwe axboy/leanote:nodb "/bin/sh -c 'sh /dat…" 40 seconds ago Up 39 seconds 0.0.0.0:9001->9000/tcp, :::9001->9000/tcp leanote
1230387fwq12 mongo:4.2.7 "docker-entrypoint.s…" 18 hours ago Up 18 hours 0.0.0.0:27017->27017/tcp, :::27017->27017/tcp mongo
# 重点看 axboy/leanote:nodb 这一行 status 这一列
# 如果是 UP xx secends 就是启动成功
# 如果是 Exited (0) xx secends ago 就是启动失败 继续到配置文件和日志里找原因
至此 物理机的9000端口就可以访问蚂蚁服务了 再去 Nginx 反代到公网域名 就可以在公网使用了
修改 Nginx 配置文件/etc/nginx/nginx.conf
server {
listen 443 ssl http2;
# 域名这里填你自己的 我这里随便填了个占位
server_name zzzmh.com;
# 中间省略
...
location / {
proxy_pass http://localhost:9000/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
break;
}
}
测试并重新加载nginx
nginx -t
nginx -s reload
最后访问你的域名
https://域名
如果出现白屏 按F12 出现3个报错 找不到style.css
说明上文的 app.conf 你配置的外网访问域名 与nginx代理的域名不同
改成一样的以后,重启docker docker restart leanote
如果是这个绿色的界面 说明全部搞定 大功告成
END
防止有人不会,我再讲讲怎么用
首次使用先点 Sign in 登录
默认账号密码是 admin abc123
(如果登录出错 八成是mongo配置哪里不对)
登陆以后记得修改密码 (右上角点admin 然后在个人中心进行基本配置)
配置的问题以后再讲 这里只说客户端怎么登录自建服务器
客户端打开以后点登录自建服务器
然后第一行填域名比如 https://zzzmh.cn
第二三行填账号密码,就可以在客户端写笔记了