HI! 作为一个经常和 LaTeX 打交道的人,我深知本地配置 TeX Live 环境有多么令人头疼。

适用于需要写论文, 基于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 实现,非常便捷:

  1. 构建镜像: 使用提供的 Dockerfile 构建包含完整 TeX Live 的镜像。
  2. 一键启动: 使用 docker-compose up -d 启动 Overleaf、MongoDB 和 Redis 三大核心服务。
  3. 初始化 MongoDB 副本集: 部署后,通过一条 docker exec 命令初始化 MongoDB 副本集,确保 Overleaf 的所有功能正常启用。

如果您正计划私有化部署一个稳定、兼容性好且宏包齐全的 Overleaf 环境,欢迎访问我的 GitHub 仓库 xuhe2/sharelatex-ce,查看详细的部署指南和 README 内容。

喜欢的请点一个STAR

希望这个项目能帮助大家更专注于内容创作.

告别 LaTeX 配置地狱:我的 Overleaf (ShareLaTeX-CE) 完整版私有化部署方案的更多相关文章

  1. Genymotion配置及使用教程(最新最完整版附各部分下载地址)

    Genymotion配置及使用教程(最新最完整版附各部分下载地址) FROM:http://blog.csdn.net/beiminglei/article/details/13776013 早都听说 ...

  2. IIS下配置Php+Mysql+zend的图文教程(完整版)

    网上有很多关于PHP在IIS下配置的教程,但都是一些很理性化的东西,我从里面整理出来这个教程 发出来为了方便参考,,有什么问题也可以大家一起交流,,如果有什么不对的地方,请指正.. 下面的教程都是在w ...

  3. MySQL5.6 Replication主从复制(读写分离) 配置完整版

    MySQL5.6 Replication主从复制(读写分离) 配置完整版 MySQL5.6主从复制(读写分离)教程 1.MySQL5.6开始主从复制有两种方式: 基于日志(binlog): 基于GTI ...

  4. rip路由协议 细节分析及实例配置【完整版】

    rip路由协议 细节分析及实例配置[完整版] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从中发现 ...

  5. Android studio gradle配置完整版(转)

    Android studio gradle配置完整版https://my.oschina.net/u/1471093/blog/539075 Android studio 自定义打包apk名 - pe ...

  6. springmvc web.xml和application.xml配置详情(附:完整版pom.xml)

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...

  7. vue-multi-module【多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署】

    基于 vue-cli 2 实现,vue 多模块.vue多项目集成工程 Github项目地址 : https://github.com/BothEyes1993/vue-multi-module 目标: ...

  8. 魔改xxl-job,彻底告别手动配置任务!

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. xxl-job是一款非常优秀的任务调度中间件,轻量级.使用简单.支持分布式等优点,让它广泛应用在我们的项目中,解 ...

  9. ubuntu14.04+sublime3+latex配置

    目的:用题目所说的三个东西写论文. 配置方法:参考 http://blog.csdn.net/bleedingfight/article/details/72810606, 但该博客所提的texliv ...

  10. LATEX配置

    字体: options->options interface->font schems->font FONT_NAME="Times New Roman"FONT ...

随机推荐

  1. leetcode 224

    简介 简易计算器 一时半会儿没写出来,看了官方题解. 感觉思路是遇到 ( 前一个操作符号,入栈,遇到 ) 栈中弹出操作符号 遇到 + 符号为栈顶符号 遇到 - 符号为 栈顶符号的反符号 官方使用栈来保 ...

  2. SciTech-Health-Dental: 铸造冠+锤造冠

    锤造冠: 锤造全冠是应用合金片经冲压而成的壳状全冠修复体.有无缝冠和焊接冠二种, 优点是制作简单方便. 焊接冠: 表面有焊缝,机械性能差,制作不便,已少用. 应用现代焊接与融接科技,能不能重振&quo ...

  3. 深度学习入门(10):卷积神经网络(CNN)

    卷积层和池化层的实现 四维数组 from collections import OrderedDict import numpy as np from torch import nn x = np.r ...

  4. vue + element 中el-table 设置表头固定,固定高度出现空白

    .DialogAirLineList-table { .el-table .success-row { color: #F2FF00 !important; } .el-table .warning- ...

  5. 为什么要有 Buffer Pool?Mysql缓存能否替代Redis?

    查询缓存的作用? 执行查询语句的时候,会先查询缓存.不过,MySQL 8.0 版本后移除,因为这个功能不太实用 开启查询缓存后在同样的查询条件以及数据情况下,会直接在缓存中返回结果.这里的查询条件包括 ...

  6. JQuery通过Ajax发送数据

    JQuery的基础教程 第六章:通过Ajax发送请求 操作案例:通过点击不同的按钮,触发ajax请求,获取不同的数据 html代码: <!DOCTYPE html> <html la ...

  7. MySQL 26 备库为什么会延迟好几个小时

    上一篇文章介绍的场景中,对备库延迟的影响一般是分钟级的.但如果备库执行日志的速度持续低于主库生成日志的速度,那这个延迟就可能成了小时级别.这就涉及今天介绍的话题:备库并行复制能力. 主备流程图: 主备 ...

  8. rest-framework之APIView基本使用及源码分析、Request类源码分析、序列化组件介绍及基本使用、反序列化

    安装djangorestframework 方式一:pip3 install djangorestframework 方式二:pycharm图形化界面安装 方式三:pycharm命令行下安装(装在当前 ...

  9. 请解释一下 ThreadLocal 的工作原理是什么?它是如何为每个线程提供独立的变量副本的?

    基本原理 ThreadLocal 为每个使用该变量的线程提供独立的变量副本,每个线程都可以独立地修改自己的副本,而不会影响其他线程的副本.这样在多线程环境下,各个线程对 ThreadLocal 变量的 ...

  10. 亚洲No.1设计学院作品鉴赏