Overleaf搭建

2020.9

Overleaf简介

overleaf是一个在线latax写论文的神器,不用配置本地环境,浏览器访问即可实时编译,而且其提供多人协作功能,但是官网具有诸多限制,例如空间等,且安全性等因素不能保证,所幸其已在github进行开源,我们可以在自己的服务器通过docker进行部署。

Docker安装

有关docker的入门可以参考阮一峰先生的博文。这里笔者参考docker官网安装教程尝试了在ubuntu 18,ubuntu 20,macos上进行了分别部署,均未遇到坑,在此不再赘述。

可以通过以下命令查看是否安装成功:

docker version

Overleaf安装

  1. 拉取最新的overleaf服务器版本

    docker pull sharelatex/sharelatex
  2. 在用户目录~下,新建以下文件夹

    mkdir ~/sharelatex/ ~/sharelatex/sharelatex_data/ ~/sharelatex/mongo_data/ ~/sharelatex/redis_data/
  3. 下载docker-compose.yml文件到~/sharelatex/文件夹下

    curl -O https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml
  4. 修改docker-compose.yml配置文件

    # 避免端口重复,默认80端口,但是笔者的80端口开放给了apache,因此这里修改为5000
    # 端口号:80
    ports:
        - 5000:80
    
    # 修改本地挂载目录
    volumes:
        ~/sharelatex/sharelatex_data:/var/lib/sharelatex
    
    # 添加升级texlive需要的环境变量,主要是添加2018目录到2017前面,目的是为了防止后面安装完整版texlive时出现错误
    # 【这里原博主有写,但是我添加以后好像并没有什么效果,不添加也是可以的】
    environment:
        - PATH: /usr/localsbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/texlive/2018/bin/x86_64-linux:/usr/local/texlive/2017/bin/x86_64-linux
    
    # 下面选项设置ShareLaTeX的显示样式
    SHARELATEX_APP_NAME: Our ShareLaTeX
    SHARELATEX_NAV_TITLE: Our ShareLaTeX Instance
    SHARELATEX_HEADER_IMAGE_URL: http://somewhere.com/mylogo.png
    SHARELATEX_LEFT_FOOTER: '[{"text": "Powered by <a href=\"https://www.sharelatex.com\">ShareLaTeX</a> 2016"},{"text": "Another page I want to link to can be found <a href=\"here\">here</a>"} ]'
    SHARELATEX_RIGHT_FOOTER: '[{"text": "Hello I am on the Right"} ]'
    
    # 修改mongo和redis的本地挂载目录
    # mongo
    volumes:
        ~/sharelatex/mongo_data:/data/db
    # redis
    volumes:
        ~/sharelatex/redis_data:/data

    这里附上我的docker-compose.yml文件

  5. 进入~/sharelatex启动docker-compose.yml

    docker-compose up -d
  6. 由于默认安装的是最小版本 TeXLive,如果要安装完整包,执行

    docker exec sharelatex tlmgr install scheme-full
  7. 第一次启动镜像后,浏览器访问 localhost:port/launchpad 页面设置管理员账号

  8. 客户机可以在浏览器通过ip:port访问

Last updated