【1】下载安装服务端
【2】leanote导出PDF
【3】制作 leanote docker 镜像
【1】下载安装服务端
参考链接
###下载地址
https://sourceforge.net/projects/leanote-bin/files/
###安装 MongoDB,Leanote 依赖 MongoDB 作为数据存储
cd /home
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz
tar -xzvf mongodb-linux-x86_64-3.0.1.tgz
mkdir -p /data/db #创建用于存储的文件夹目录
vim /etc/profile #配置 MongoDB 的环境变量
export PATH=$PATH:/home/mongodb-linux-x86_64-3.0.1/bin
source /etc/profile
mongod --bind_ip localhost --port 27017 --dbpath /data/db/ --logpath=/var/log/mongod.log --fork #启动 MongoDB
###安装 Leanote
cd /home
wget https://iweb.dl.sourceforge.net/project/leanote-bin/2.4/leanote-linux-amd64-v2.4.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.4.bin.tar.gz
vim app.conf #编辑 Leanote 配置文件,
#修改app.secret= 项(官方说明文档里说用户必须要修改,要不然会有安全问题,随便改改就好),为:
app.secret=qcloud666
#修改site.url
mongorestore -h localhost -d leanote --dir /home/leanote/mongodb_backup/leanote_install_data/ #导入初始化数据
nohup /bin/bash /home/leanote/bin/run.sh >> /var/log/leanote.log 2>&1 & #启动 Leanote 服务
###通过访问 http://<您的 CVM IP 地址>:9000 就可以了使用自己的笔记本。
初始化账户: admin
初始化密码: abc123
【2】leanote导出PDF
Leanote 蚂蚁笔记 自建私人云服务简单流程 Centos 7.4
Centos 7 安装 Wkhtmltopdf
###导出PDF需安装wkhtmltopdf
#wkhtmltopdf下载地址
https://github.com/wkhtmltopdf/wkhtmltopdf/releases/
wget --no-check-certificate "https://github-production-release-asset-2e65be.s3.amazonaws.com/271714/3f90e5d2-6e42-11e8-9f4a-7d8d6460a726?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200416%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200416T060910Z&X-Amz-Expires=300&X-Amz-Signature=a46ac21285c3d69e7f1413c952a1fc73a3954fe7d6d62366106210e8e7797553&X-Amz-SignedHeaders=host&actor_id=25061151&repo_id=271714&response-content-disposition=attachment%3B%20filename%3Dwkhtmltox-0.12.5-1.centos7.x86_64.rpm&response-content-type=application%2Foctet-stream" -O wkhtmltox-0.12.5-1.centos7.x86_64.rpm
#安装,centos7.4下默认安装路径就是/usr/local/bin/wkhtmltopdf
rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
find / -name wkhtmltopdf
#测试wkhtmltopdf
/usr/local/bin/wkhtmltopdf http://www.baidu.com ./test.pdf
###ubuntu 安装wkhtmltopdf
sudo apt-get update
sudo apt-get install xvfb
sudo apt-get install wkhtmltopdf
sudo pip install pdfkit #pdfkit,在wkhtmltopdf基础之上,进行了更丰富的包装
安装standard PostScript fonts:
yum install urw-fonts libXext openssl-devel
将 windows下的字体,例如simsun.ttc ,或者msyh.ttf,或者msyhbd.ttf 复制到 linux系统 /usr/share/fonts 下
qt.qpa.screen: QXcbConnection: Could not connet to display
Cloud not connect to any X display
#解决方案
#在 xvfb(X virtual framebuffer)中运行wkhtmltopdf, xvfb能够直接处理图形化功能,给应用程序提供一个虚拟的X server。
sudo apt-get install xvfb
#在xvfb中运行wkhtmltopdf
xvfb-run wkhtmltopdf $source $destination
【3】制作 leanote docker 镜像
参考链接
leanote 使用 mongodb 存储数据,如果把 mongodb 单独做成一个镜像,初始化数据时比较麻烦,所以最后还是决定把 mongodb 和 leanote 放到同一个镜像里边。
docker容器启动后,必须有一个进程前台运行,这个前台进程结束时docker容器结束,docker stop 时会给前台进程发信号,所以前台进程可以正常结束,而后台进程不会收到结束信号,前台进程结束时后台进程会被强制结束。
如果只是简单的启动 mongodb 和 leanote,mongodb 后台运行,leanote前台运行,结束容器的时候,leanote会正常结束,而mongodb则会非法结束,引起mongodb数据不一致。
其中一个解决办法就是使用supervisor作为前台进程,其他进程作为supervisor的子进程。
#编写Dockerfile文件
FROM registry.cn-hangzhou.aliyuncs.com/shuangmu/supervisor:1.0
MAINTAINER shuangmu<120156206@qq.com>
COPY init.sh /root/init.sh
COPY mongodb.ini /etc/supervisord.d/
COPY leanote.ini /etc/supervisord.d/
COPY leanote-linux-amd64-v2.6.1.bin.tar.gz /root/
COPY mongodb-linux-x86_64-3.2.9.tgz /root/
COPY wkhtmltox-0.12.5-1.centos7.x86_64.rpm /root/
COPY simsun.ttc /usr/share/fonts/
RUN mkdir -p /root/db/ && \
cd /root && \
tar -xvf /root/mongodb-linux-x86_64-3.2.9.tgz && \
tar -xvf /root/leanote-linux-amd64-v2.6.1.bin.tar.gz && \
mv /root/mongodb-linux-x86_64-3.2.9 /root/mongodb && \
yum -y update && yum install -y fontconfig freetype libX11 libXext libXrender libjpeg libpng openssl xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 && yum clean all && \
rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm && \
mkdir -p /root/conf_bak && \
cp /root/leanote/conf/* /root/conf_bak && \
chmod a+x /root/init.sh && \
chmod a+x /root/leanote/bin/run.sh
EXPOSE 9000
CMD ["/usr/bin/supervisord"]
#编写supervisor文件
vim mongodb.ini
[program:mongodb]
command=/root/mongodb/bin/mongod --dbpath /root/db
vim leanote.ini
[program:leanote]
command=/bin/bash -c "/root/init.sh && /root/leanote/bin/run.sh"
#init.sh初始化数据库。通过判断是否存在文件/root/db/already-init-db来确定是否需要初始化数据库。数据库初始化时创建该文件。leanote的初始数据存放于/root/leanote/mongodb_backup/leanote_install_data/目录下
#!/bin/bash
#set -m
# 如果数据库未初始化,则初始化数据库
if [ ! -f "/root/db/already-init-db" ] ; then
touch /root/db/already-init-db
/root/mongodb/bin/mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/
fi
# 如果配置文件不存在,则复制配置文件
if [ ! -f "/root/leanote/conf/app.conf" ] ; then
cp /root/conf_bak/* /root/leanote/conf/
fi
#生成镜像
docker build -t leanote:2.6.1 --rm --no-cache .
#运行容器
docker run --name leanote -d -v /etc/localtime:/etc/localtime:ro -v /docker/leanote/db:/root/db -v /docker/leanote/conf/:/root/leanote/conf/ -v /docker/leanote/files:/root/leanote/files -p 9000:9000 leanote:2.6.1
#修改conf/app.conf文件
#修改admin账户密码(初始密码 abc123)
#登录后台修改mongodb Tool 配置
mongodump path:/root/mongodb/bin/mongodump
mongorestore path:/root/mongodb/bin/mongorestore
#其他操作
FROM registry.cn-hangzhou.aliyuncs.com/shuangmu/supervisor:1.0
MAINTAINER shuangmu<120156206@qq.com>
COPY init.sh /root/init.sh
COPY mongodb.ini /etc/supervisord.d/
COPY leanote.ini /etc/supervisord.d/
RUN yum -y update && yum install -y wget fontconfig freetype libX11 libXext libXrender libjpeg libpng openssl xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 && yum clean all && \
wget http://172.18.0.1:8081/leanote_build/leanote-linux-amd64-v2.6.1.bin.tar.gz -O /root/leanote-linux-amd64-v2.6.1.bin.tar.gz && \
wget http://172.18.0.1:8081/leanote_build/mongodb-linux-x86_64-3.2.9.tgz -O /root/mongodb-linux-x86_64-3.2.9.tgz && \
wget http://172.18.0.1:8081/leanote_build/wkhtmltox-0.12.5-1.centos7.x86_64.rpm -O /root/wkhtmltox-0.12.5-1.centos7.x86_64.rpm && \
wget http://172.18.0.1:8081/leanote_build/simsun.ttc -O /usr/share/fonts/simsun.ttc && \
mkdir -p /root/db/ && \
cd /root && \
tar -xvf /root/mongodb-linux-x86_64-3.2.9.tgz && \
tar -xvf /root/leanote-linux-amd64-v2.6.1.bin.tar.gz && \
mv /root/mongodb-linux-x86_64-3.2.9 /root/mongodb && \
rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm && \
rm -f /root/leanote-linux-amd64-v2.6.1.bin.tar.gz && \
rm -f /root/mongodb-linux-x86_64-3.2.9.tgz && \
rm -f /root/wkhtmltox-0.12.5-1.centos7.x86_64.rpm && \
mkdir -p /root/conf_bak && \
cp /root/leanote/conf/* /root/conf_bak && \
chmod a+x /root/init.sh && \
chmod a+x /root/leanote/bin/run.sh
EXPOSE 9000
CMD ["/usr/bin/supervisord"]