告别 LaTeX 配置地狱:我的 Overleaf (ShareLaTeX-CE) 完整版私有化部署方案
HI! 作为一个经常和 LaTeX 打交道的人,我深知本地配置 TeX Live 环境有多么令人头疼。
适用于需要写论文, 基于latex模板的简历编写等期刊. 对于科研人需求更大, 包含了免费的多人协同编写和无限制的编译时间
- 改博客内容基于我的本地部署overleaf服务帮助latex论文编写博客内容进一步自动化和便捷化. 同时解决了兼容性问题.
因此,我基于官方 Docker 镜像,创建了一个完整的私有化部署方案 xuhe2/sharelatex-ce,旨在解决部署中的两大痛点:缺少宏包和硬件兼容性。
痛点一:宏包缺失问题一次解决
官方提供的基础版 Overleaf Docker 镜像往往只包含最基础的 TeX Live 宏包。每当我们引入一个新的 .sty 文件,却发现编译报错,就得手动进入容器安装,非常繁琐。
在我的这个方案中,我在 Dockerfile 构建过程中集成了 完整的 TeX Live 安装。这意味着您部署完成后,几乎可以支持所有主流和非主流的 LaTeX 宏包,彻底告别“缺少文件”的编译错误,开箱即用。
痛点二:老旧硬件的兼容性考量(AVX 问题)
在私有化部署社区中,许多用户反映在不带 AVX 指令集 的老旧服务器或 NAS 上运行 MongoDB 时会失败,导致整个 Overleaf 服务无法启动。这是因为新版 MongoDB 对 CPU 架构有了更高的要求。
为了解决这个兼容性问题,我的镜像方案特意采用了兼容性更好的老版本 MongoDB 和 ShareLaTeX 基础镜像。虽然这牺牲了新版本的一些特性,但保证了它能在最广泛的硬件环境中稳定运行,让您的私有化部署不再受硬件限制。
部署与配置,一步到位
整个部署流程通过 Docker Compose 实现,非常便捷:
- 构建镜像: 使用提供的
Dockerfile构建包含完整 TeX Live 的镜像。 - 一键启动: 使用
docker-compose up -d启动 Overleaf、MongoDB 和 Redis 三大核心服务。 - 初始化 MongoDB 副本集: 部署后,通过一条
docker exec命令初始化 MongoDB 副本集,确保 Overleaf 的所有功能正常启用。
如果您正计划私有化部署一个稳定、兼容性好且宏包齐全的 Overleaf 环境,欢迎访问我的 GitHub 仓库 xuhe2/sharelatex-ce,查看详细的部署指南和 README 内容。
喜欢的请点一个STAR
- 为了防止硬盘故障导致overleaf项目文件丢失, 我还编写了Overleaf项目文件同步工具: olsync博客, 制作了olsync工具辅助文件自动化备份本地.
希望这个项目能帮助大家更专注于内容创作.
告别 LaTeX 配置地狱:我的 Overleaf (ShareLaTeX-CE) 完整版私有化部署方案的更多相关文章
- Genymotion配置及使用教程(最新最完整版附各部分下载地址)
Genymotion配置及使用教程(最新最完整版附各部分下载地址) FROM:http://blog.csdn.net/beiminglei/article/details/13776013 早都听说 ...
- IIS下配置Php+Mysql+zend的图文教程(完整版)
网上有很多关于PHP在IIS下配置的教程,但都是一些很理性化的东西,我从里面整理出来这个教程 发出来为了方便参考,,有什么问题也可以大家一起交流,,如果有什么不对的地方,请指正.. 下面的教程都是在w ...
- MySQL5.6 Replication主从复制(读写分离) 配置完整版
MySQL5.6 Replication主从复制(读写分离) 配置完整版 MySQL5.6主从复制(读写分离)教程 1.MySQL5.6开始主从复制有两种方式: 基于日志(binlog): 基于GTI ...
- rip路由协议 细节分析及实例配置【完整版】
rip路由协议 细节分析及实例配置[完整版] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从中发现 ...
- Android studio gradle配置完整版(转)
Android studio gradle配置完整版https://my.oschina.net/u/1471093/blog/539075 Android studio 自定义打包apk名 - pe ...
- springmvc web.xml和application.xml配置详情(附:完整版pom.xml)
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...
- vue-multi-module【多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署】
基于 vue-cli 2 实现,vue 多模块.vue多项目集成工程 Github项目地址 : https://github.com/BothEyes1993/vue-multi-module 目标: ...
- 魔改xxl-job,彻底告别手动配置任务!
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. xxl-job是一款非常优秀的任务调度中间件,轻量级.使用简单.支持分布式等优点,让它广泛应用在我们的项目中,解 ...
- ubuntu14.04+sublime3+latex配置
目的:用题目所说的三个东西写论文. 配置方法:参考 http://blog.csdn.net/bleedingfight/article/details/72810606, 但该博客所提的texliv ...
- LATEX配置
字体: options->options interface->font schems->font FONT_NAME="Times New Roman"FONT ...
随机推荐
- leetcode 224
简介 简易计算器 一时半会儿没写出来,看了官方题解. 感觉思路是遇到 ( 前一个操作符号,入栈,遇到 ) 栈中弹出操作符号 遇到 + 符号为栈顶符号 遇到 - 符号为 栈顶符号的反符号 官方使用栈来保 ...
- SciTech-Health-Dental: 铸造冠+锤造冠
锤造冠: 锤造全冠是应用合金片经冲压而成的壳状全冠修复体.有无缝冠和焊接冠二种, 优点是制作简单方便. 焊接冠: 表面有焊缝,机械性能差,制作不便,已少用. 应用现代焊接与融接科技,能不能重振&quo ...
- 深度学习入门(10):卷积神经网络(CNN)
卷积层和池化层的实现 四维数组 from collections import OrderedDict import numpy as np from torch import nn x = np.r ...
- vue + element 中el-table 设置表头固定,固定高度出现空白
.DialogAirLineList-table { .el-table .success-row { color: #F2FF00 !important; } .el-table .warning- ...
- 为什么要有 Buffer Pool?Mysql缓存能否替代Redis?
查询缓存的作用? 执行查询语句的时候,会先查询缓存.不过,MySQL 8.0 版本后移除,因为这个功能不太实用 开启查询缓存后在同样的查询条件以及数据情况下,会直接在缓存中返回结果.这里的查询条件包括 ...
- JQuery通过Ajax发送数据
JQuery的基础教程 第六章:通过Ajax发送请求 操作案例:通过点击不同的按钮,触发ajax请求,获取不同的数据 html代码: <!DOCTYPE html> <html la ...
- MySQL 26 备库为什么会延迟好几个小时
上一篇文章介绍的场景中,对备库延迟的影响一般是分钟级的.但如果备库执行日志的速度持续低于主库生成日志的速度,那这个延迟就可能成了小时级别.这就涉及今天介绍的话题:备库并行复制能力. 主备流程图: 主备 ...
- rest-framework之APIView基本使用及源码分析、Request类源码分析、序列化组件介绍及基本使用、反序列化
安装djangorestframework 方式一:pip3 install djangorestframework 方式二:pycharm图形化界面安装 方式三:pycharm命令行下安装(装在当前 ...
- 请解释一下 ThreadLocal 的工作原理是什么?它是如何为每个线程提供独立的变量副本的?
基本原理 ThreadLocal 为每个使用该变量的线程提供独立的变量副本,每个线程都可以独立地修改自己的副本,而不会影响其他线程的副本.这样在多线程环境下,各个线程对 ThreadLocal 变量的 ...
- 亚洲No.1设计学院作品鉴赏