是的,overleaf是一个很好的服务,提供了立刻上手就可以编写的latex文章的服务.但是,overleaf会面对latex超时,所以需要付钱的情况,这常出现在编写期刊的论文的情况.
因为时效性,所以,过去的一些操作已经不适用于新版本的overleaf的本地化部署,该博客提供了最新的部署方式指导(以及一些常见问题修复)
部署overleaf服务
官方仓库docker compose yaml部署overleaf服务存在一定的问题,无法连接mongodb数据库
所以,使用官方提供的Overleaf Toolkit,该工具提供了构建好的一些可执行工具帮助部署和使用
requirements
- git
- docker
- docker compose
不会高效地安装docker依赖?可以参考博客[tldr] debian系用户配置使用docker
clone repo
shell
git clone --depth=1 https://github.com/overleaf/toolkit.git ./overleaf-toolkit
--depth=1
的作用是只clone最新一次的内容,这个可以有效地减少需要下载的内容出现了网络问题 ,无法下载,可以试一下github520cli开源项目,使用方式参考博客github520cli解决无法github访问问题
该仓库提供了overleaf需要的一系列工具,文档可以参考官方仓库的README
docker部署
需要三个docker image
- redis
- mongodb
- sharelatex
如果网络问题可以考虑proxy或者国内镜像源,但是sharlatex不在国内的镜像源的白名单里面.
检查bin/
文件夹中的内容,这里面包含了一些通过docker compose运行的可执行文件.
backup-config* doctor* init* rename-env-vars-5-0* shell* up*
dev/ error-logs* logs* rename-rc-vars* start* upgrade*
docker-compose* images* mongo* run-script* stop*
使用
ls
指令检查可执行文件主要需要的文件有
start
,stop
,shell
也可以通过docker compose指令直接启动服务
使用./bin/up
启动服务
使用./bin/stop
停止服务
使用./bin/start
重新启动服务
使用./bin/shell
连接进入容器内部
你可以通过
docker-compose exec -it sharelatex bash
取得类似的效果
启动三个服务,其中,sharelatex耗费最多的时间,每次启动都是需要花费时间的,并且,这个容器内部还包含了nginx服务
安装依赖(解决BUG)
在编写一些latex文档的时候,可能存在依赖缺失的问题,例如[Latex] CTEX解决File "xxx.sty" not found问题
通过检查github issue978得到问题的解决办法,主要是通过更新textlive的方式
该博客中提供了更新的方式
Upgrade from TeX Live 2024 to 2025官方提供了很好的升级textlive版本的方式,其中,推荐快速安装的方式
进入容器
一些的安装和更新操作需要在容器内部进行,所以,先使用./bin/shell
进入容器内部shell
去到临时文件夹开始操作
shell
cd /tmp # working directory of your choice
下载需要的文件
shell
wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
解压
shell
zcat < install-tl-unx.tar.gz | tar xf - # note final - on that command line
前往解压出来的文件夹
shell
cd install-tl-*
这个*需要换成对应的数字
(可选)更换textlive镜像源,参考知乎-更换textlive的镜像源
shell
tlmgr option repository https://mirrors.aliyun.com/CTAN/systems/texlive/tlnet
这个是永久性换源
安装
shell
perl ./install-tl --no-interaction # as root or with writable destination
# may take several hours to run
这个安装过程很漫长,大概有4900个pkg需要安装,下载完成之后安装也需要一定的时间
重启服务
安装全部的服务之后,然后,需要重启服务
只需./bin/stop
然后./bin/start
即可
使用服务
第一次登陆的时候会创建管理员用户,管理员用户再添加其他用户.
后续使用的时候登陆一般用户访问服务即可