本地部署搭建自己的overleaf

目录

为啥要这么折腾

  • 回来内地,每次用overleaf都卡出翔;
  • overleaf在线版本不太支持xeLatex编译器,编译速度太慢;
  • 不付费情况下,在线版本的overleaf协作有限,部署搭建自己的overleaf在实验室同一个网络环境下都可以协作;

环境准备

在VMware虚拟机中安装Ubuntu 20.04 LTS版本,安装过程略。

在Ubuntu虚拟机中已经安装好了docker和docker-compose,ip地址为192.168.116.129。

安装overleaf

首先将overleaf项目从github拉至本地

git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit

进入该项目:

cd ./overleaf-toolkit

以下命令都在该目录下进行;

初始配置

项目映射地址和端口设置

vim ./config/overleaf.rc

更改内容如下:

# SHARELATEX_LISTEN_IP=127.0.0.1 这样只能在虚拟机中访问overleaf服务
SHARELATEX_LISTEN_IP=0.0.0.0 # 这样可以在虚拟机外部访问overleaf服务
SHARELATEX_PORT=80 # 想映射的端口,默认的80端口常常被占用

中文支持

vim ./config/variables.env

添加如下内容进行中文支持:

SHARELATEX_SITE_LANGUAGE=zh-CN

编译器改成xeLatex

touch ./config/docker-compose.override.yml
vim ./config/docker-compose.override.yml

内容如下:

services:
    sharelatex:
        environment:
            - PATH=/usr/local/texlive/2023/bin/x86_64-linux:$PATH

path需要根据自己启动的容器里面安装的texlive的地址进行修改!

启动项目

bin/up

此时正在拉取镜像,可以等出现大量的log时使用 ctrl+c 停止,然后执行

bin/start

此时,使用 docker ps中,可以看到启动了三个容器:

hugo@hugo-virtual-machine:~/overleaf/overleaf-toolkit$ docker ps
CONTAINER ID   IMAGE                         COMMAND                  CREATED          STATUS                    PORTS                                                  NAMES
8a0e1151eb89   sharelatex/sharelatex:4.1.1   "/sbin/my_init"          46 minutes ago   Up 22 minutes             0.0.0.0:80->80/tcp                                     sharelatex
48138bb688e5   redis:6.2                     "docker-entrypoint.s…"   2 hours ago      Up 26 minutes             6379/tcp                                               redis
72bc2fc60316   mongo:4.4                     "docker-entrypoint.s…"   2 hours ago      Up 26 minutes (healthy)   27017/tcp                                              mongo

此时就可以在本地使用overleaf了:

在本地打开 http://localhost:80/launchpad 或者在windows下打开 http://192.168.116.129:80/launchpad 创建管理员账号。应该能看到管理员注册界面,至此overleaf的安装结束。

下载完整texlive包

以上安装的overleaf配套的LaTeX不是完整版,所以需要继续下载。

首先进入容器的bash:

docker exec -it sharelatex bash
# 或者执行./bin/shell也可以进入sharelatex

然后在容器中执行:

cd /usr/local/texlive
# 下载并运行升级脚本
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
sh update-tlmgr-latest.sh -- --upgrade

# 更换texlive的下载源
tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/

# 升级tlmgr
tlmgr update --self --all

# 安装完整版texlive(时间比较长,不要让shell断开)
tlmgr install scheme-full

# 退出sharelatex的命令行界面,并重启sharelatex容器
exit

重启docker服务:

docker restart sharelatex

安装其他

docker exec -it sharelatex bash

在sharelatex容器中执行:

apt update
# 安装字体
apt install --no-install-recommends ttf-mscorefonts-installe fonts-noto texlive-fonts-recommended tex-gyre fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra fonts-noto-unhinted fonts-texgyre
# 安装pygments
apt install python3-pygments
# 安装beamer之类的
# https://packages.ubuntu.com/search?mode=filename&suite=bionic&section=all&arch=any&keywords=beamer+example+tex&searchon=contents
apt install texlive-latex-recommended
apt install texlive-latex-extra
# 安装英文字体
echo "yes" | apt install -y --reinstall ttf-mscorefonts-installer
# 安装中文字体
apt install -y latex-cjk-all texlive-lang-chinese texlive-lang-english
cp fonts/* /usr/share/fonts/zh-cn/
cd /usr/share/fonts
fc-cache -fv # 更新字体缓存
fc-list :lang=zh-cn
fc-match Arial

配置Shell Escape

vim /usr/local/texlive/2023/texmf.cnf

在底下添加一行 shell_escape = t,然后退出容器。

接下来再次打开https://192.168.116.129:80/project即可开始玩耍

20230912172407

XeLaTeX编译

部分论文模板使用了XeLaTeX,通常定义了RequireXeTeX相关指令,并且有些使用了Makefile文件。

在ShareLaTeX和Overleaf平台中,默认使用latexmk -xelatex指令编译XeLaTeX,但是往往不成功。

# 安装xetex基础环境
apt install -y texlive texlive-xetex texlive-latex-base texlive-latex-recommended
# 安装模板相关扩展
apt install -y texlive-latex-extra texlive-science texlive-pictures texlive-bibtex-extra

参考链接

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦