当前位置:   article > 正文

蚂蚁笔记(leanote)搭建_debian系统中怎么搭建蚂蚁笔记

debian系统中怎么搭建蚂蚁笔记

【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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

【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基础之上,进行了更丰富的包装
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
常见问题
  • 生成的字符都是方块

安装standard PostScript fonts:yum install urw-fonts libXext openssl-devel

  • 中文显示为方块

将 windows下的字体,例如simsun.ttc ,或者msyh.ttf,或者msyhbd.ttf 复制到 linux系统 /usr/share/fonts 下

  • ubuntu 下wkhtmltopdf依赖于X server的解决方案
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【3】制作 leanote docker 镜像
参考链接

leanote 使用 mongodb 存储数据,如果把 mongodb 单独做成一个镜像,初始化数据时比较麻烦,所以最后还是决定把 mongodb 和 leanote 放到同一个镜像里边。
docker容器启动后,必须有一个进程前台运行,这个前台进程结束时docker容器结束,docker stop 时会给前台进程发信号,所以前台进程可以正常结束,而后台进程不会收到结束信号,前台进程结束时后台进程会被强制结束。
如果只是简单的启动 mongodb 和 leanote,mongodb 后台运行,leanote前台运行,结束容器的时候,leanote会正常结束,而mongodb则会非法结束,引起mongodb数据不一致。
其中一个解决办法就是使用supervisor作为前台进程,其他进程作为supervisor的子进程。
  • 1
  • 2
  • 3
  • 4
  • 制作leanote docker镜像
#编写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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 容器启动后的操作
#修改conf/app.conf文件
#修改admin账户密码(初始密码 abc123)
#登录后台修改mongodb Tool 配置
    mongodump path:/root/mongodb/bin/mongodump
    mongorestore path:/root/mongodb/bin/mongorestore
#其他操作
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 优化镜像
    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"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/983278
推荐阅读
相关标签
  

闽ICP备14008679号