overleaf在线版限制很多,好在开源,准备在本地Docker部署,网上翻了翻,似乎本地部署并非易事,我也尝试了一下,发现直接使用docker-compose拉官方最新镜像部署的确问题很多,不过最终还是完美解决。
一、拉取Overleaf Toolkit 工具包
将工具包克隆下来:
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
进入目录:
cd overleaf-toolkit
二、初始化配置
bin/init
此时config文件夹下生成了三个配置文件。
三个配置文件的作用:
- overleaf.rc:顶级配置文件
- variables.env:加载到 docker 容器中的环境变量
- version:使用的 docker 镜像版本
1、修改overleaf.rc文件
将:
SHARELATEX_LISTEN_IP=127.0.0.1
改为:
SHARELATEX_LISTEN_IP=0.0.0.0
其它配置保持默认即可。
variables.env中可以自定义邮件服务
# SHARELATEX_EMAIL_SMTP_HOST=smtp.qq.com
# SHARELATEX_EMAIL_SMTP_PORT=587
# SHARELATEX_EMAIL_SMTP_SECURE=false
# SHARELATEX_EMAIL_SMTP_USER=wrm244@qq.com
# SHARELATEX_EMAIL_SMTP_PASS=hizmpfrpvmdkbbae
2、修改lib目录下的docker-compose.base.yml
vim docker-compose.base.yml
将
- "${SHARELATEX_LISTEN_IP:-127.0.0.1}:${SHARELATEX_PORT:-80}:80"
改为:
- "10808:80"
这样就可以通过外部端口10808访问服务。
注意:很多博主在这里都把镜像修改为自己改过的,我这里不对镜像做任何调整,就使用官方的镜像。
然后执行以下命令,启动服务:
bin/up
现在会看到来自 docker 容器的一些日志输出,表示正在拉取镜像,后续会自动运行容器。如果在终端上按下Ctrl+c,服务将关闭。您可以通过命令
bin/start
来重新启动它们(不附加到日志输出)。
正常不会报错,浏览器访问:http://ip:10808就能出现登录界面。
三、TeXLive安装
如果你直接开始使用,那么大概率会出现编译问题。
因为官方的镜像为了节省带宽,镜像中未含完整版本的TeXLive,所以要继续安装 TeXLive。
1、进入到容器sharelatex的命令行界面:
docker exec -it sharelatex bash
2、进入到sharelatex容器的文件夹:
cd /usr/local/texlive
3、下载更新文件:
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh --no-check-certificate
4.执行更新操作:
sh update-tlmgr-latest.sh -- --upgrade
5.为了提高更新速度,配置国内更新源:
tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/
6.执行更新操作:
tlmgr update --self --all # luaotfload-tool -fu
7.执行安装操作:
tlmgr install scheme-full
安装过程较慢,应该要安装4000多个包,耐心等待完成。
8.关闭重启Overleaf:
ctrl+c结束刚才起的容器,然后执行命令重启容器:
bin/start
四、配置管理员
在浏览器中,打开 http://ip:10808/launchpad,设置管理员邮箱和密码,然后进入首页登录账号
新建项目,输入:
\documentclass[UTF8]{ctexart}
\begin{document}
\rmfamily
\Huge 我正在使用Overleaf v2
\end{document}
发现已经可以编译中文了,手工。
参考:
Docker部署Overleaf包含中文字体与全套texlive镜像_docker overleaf-CSDN博客
保姆教程—在本地部署Overleaf - 知乎 (zhihu.com)
OverLeaf v2 的入门及中文编辑 - LaTeX工作室 (latexstudio.net)
overleaf的中文设置 - 简书 (jianshu.com)