当前位置: 首页 > news >正文

linux部署overleaf服务器

一、基本介绍

如果你们团队有超过4g内存和15g以上硬盘空间的linux服务器,可以在linux服务器上部署overleaf环境,从而可以拥有更加稳定的overleaf环境,可供整个团队使用。
官方文档:
https://github.com/overleaf/toolkit/blob/master/doc/quick-start-guide.md

二、环境要求

内存:至少4g
硬盘:至少15g
提前安装docker
最好拥有sudo权限(如果输入命令时出现permission denied,可以使用sudo命令)

三、部署

3.1 下载overleaf-toolkit

overleaf-toolkit 是官方提供的服务器搭建项目,下载:

git clone --depth=1 https://github.com/overleaf/toolkit.git ./overleaf-toolkit && cd ./overleaf-toolkit

下载后生成的文件夹:

  • doc 文件夹中是更详细的说明文档
  • config 文件夹中是配置文件
  • bin 文件夹包含一些命令,包括后续的up(启动)和stop(停止)

3.2 生成配置文件

# 生成配置文件
bin/init# 检查
bin/doctor

之后会生成三个文件:

overleaf.rc  variables.env  version

修改overleaf.rc

# 存放数据的主文件夹
OVERLEAF_DATA_PATH=/data/overleaf/data# 0.0.0.0 表示接受来自任意 ip 的访问
OVERLEAF_LISTEN_IP=0.0.0.0# 此处为linux监听的端口,一般设为80即可
OVERLEAF_PORT=80# 此处为linux的ip和设置的端口,便于后续在内网其他电脑上直接访问
OVERLEAF_SITE_URL=http://a.b.c.d:port

overleaf.rc其余内容无需改动

启动

bin/up 是对 docker-compose 命令的封装,它俩的用法是一样的。下面三个命令选其中一个即可:

bin/up -d # 后台运行
bin/docker-compose -d
bin/up # 临时启动

它会创建三个容器,一个 docker 网络

docker ps -a
CONTAINER ID   IMAGE                         COMMAND                  CREATED          STATUS                   PORTS                  NAMES
13a5d9a62ffd   sharelatex/sharelatex:5.2.1   "/sbin/my_init"          32 minutes ago   Up 7 minutes             0.0.0.0:5207->80/tcp   sharelatex
56b2f2e95ad1   redis:6.2                     "docker-entrypoint.s…"   32 minutes ago   Up 8 minutes             6379/tcp               redis
93fe60ddccee   mongo:6.0                     "docker-entrypoint.s…"   33 minutes ago   Up 8 minutes (healthy)   27017/tcp              mongodocker network ls
NETWORK ID     NAME               DRIVER    SCOPE
4f1fdade7e94   bridge             bridge    local
d147463e297d   host               host      local
343b1468a006   none               null      local
4a117aceb573   overleaf_default   bridge    local

3.3 安装texlive

首先找一个你认为最快的CTAN镜像源:CTAN镜像源

# 进入容器
bin/shell# 查看版本
tlmgr --version
# 更换镜像源,我用腾讯云的镜像
tlmgr option repository http://mirrors.cloud.tencent.com/CTAN/systems/texlive/tlnet
# 查看
tlmgr option show repository
# 先更新
tlmgr update --self --all # 安装完整的包,要花挺长一段时间,尽量选速度快的源
tlmgr install scheme-full# 重启容器
bin/stop 
bin/start

四、登录和使用overleaf

现在可以在内网其他电脑上通过上述设置的ip和端口访问overleaf

4.1 创建管理员

在内网其他电脑上的浏览器输入网址创建管理员:

http://a.b.c.d:port/launchpad

再登录:

http://a.b.c.d:port/login

其他团队成员第一次登录时需要管理员帮助注册,界面如下:点击右上角“admin”-“manage users”
在这里插入图片描述
出现注册界面:
在这里插入图片描述
将其中localhost改成上述ip和port即可

如果想自动将localhost转成ip和port,请参考章节五

五、overleaf注册链接问题

5.1 修改docker-compose.yml文件

如果此时处于容器内,即,状态如下:
在这里插入图片描述
输入命令“exit”退出容器

在overleaf-toolkit文件下如果没有docker-compose.yml,自己新建一个,可以参照如下写docker-compose.yml文件:

services:sharelatex:image: sharelatex/sharelatex:5.5.4restart: unless-stoppeddepends_on:- mongo- redisports:- "0.0.0.0:port:80"volumes:# - ./config:/etc/overleaf#- sharelatex_data:/var/lib/sharelatex- sharelatex_data:/var/lib/overleafenvironment:#- OVERLEAF_MONGO_URL=mongodb://mongo/sharelatex- OVERLEAF_MONGO_URL=mongodb://mongo:27017/sharelatex?replicaSet=rs0- OVERLEAF_REDIS_HOST=redis- OVERLEAF_SITE_URL=http://a.b.c.d:portmongo:image: mongo:6.0restart: unless-stoppedcommand: ["--replSet", "rs0", "--bind_ip_all"]volumes:- mongo_data:/data/dbredis:image: redis:6restart: unless-stoppedvolumes:- redis_data:/datavolumes:sharelatex_data:mongo_data:redis_data:

在config文件夹新建setting.js文件,其中内容:

module.exports = {siteUrl: "http://a.b.c.d:port",overleaf: {siteUrl: "http://a.b.c.d:port"},sharelatex: {siteUrl: "http://a.b.c.d:port"}
};

六、测试

在内网其他电脑上测试latex编译情况,使用最小测试代码:

\documentclass{article}
\usepackage{caption}
\begin{document}
Hello, Overleaf CE!
\end{document}

测试成功界面:
在这里插入图片描述

七、编译时缺少宏包

overleaf搭建成功之后,无法编译在其他环境上能够成功编译的tex文件,报错:

This compile didn’t produce a PDF. This can happen if: There is an unrecoverable LaTeX error. If there are LaTeX errors shown below or in the raw logs, please try to fix them and compile again. The document environment contains no content. If it’s empty, please add some content and compile again. This project contains a file called output.pdf. If that file exists, please rename it and compile again. LaTeX Error: File caption.sty' not found. The compiler cannot find the file you want to include. Make sure that you have uploaded the file and specified the file location correctly.

7.1 安装单个包

# 进入容器
docker ps  # 找到 overleaf/sharelatex 或 overleaf/overleaf 容器名/ID
docker exec -it <container_name> bash# 用tlmgr安装缺包
tlmgr update --self
tlmgr install caption
# 如果你的项目还缺别的包,一次性多装:
# tlmgr install caption titlesec enumitem float wrapfig fancyhdr siunitx etoolbox ...

7.2 升级texlive从而安装多个包

tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
tlmgr update --self
tlmgr update --all

7.3 安装中文包

# 更新 tlmgr & 宏包索引
tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
tlmgr update --self
tlmgr update --all# 安装中文相关宏包(含 ctex/xeCJK/CJK 等)
tlmgr install collection-langchinese# 安装 Fandol 字体(TeX Live 自带的开源中文字体,ctex 默认可用)
tlmgr install fandol# 拉丁字体(Latin Modern + TeX Gyre)
tlmgr install lm tex-gyre# (推荐)中文宏包集合 + Fandol 字体
tlmgr install collection-langchinese fandol# (可选)安装其它常用包
tlmgr install xecjk ctex zhnumber cjkutf8 unicode-math

测试中文内容:

\documentclass{ctexart}
\begin{document}
中文测试:你好,Overleaf!
\end{document}

测试成功界面:
在这里插入图片描述

http://www.dtcms.com/a/353810.html

相关文章:

  • 深度学习(鱼书)day12--卷积神经网络(后四节)
  • 动态规划:硬币兑换(有趣)
  • 嵌入式-定时器的时基单元,自制延迟函数-Day21
  • Python常见设计模式1: 创建型模式
  • 【git】P1 git 分布式管理系统简介
  • linux安装docker compose
  • 企业如何构建全面的高防IP防护体系?
  • 【GPT入门】第60课 openCompose实践图文介绍指南
  • 【GM3568JHF】FPGA+ARM异构开发板 使用指南:USB接口
  • IBMS-建筑内分散的子系统(如 BA、安防、消防、能源、电梯等)进行数据互联、功能协同与智能管控
  • Linux--->网络编程(TCP并发服务器构建:[ 多进程、多线程、select ])
  • 动态规划:青蛙跳台阶
  • 红外对管模块传感器讲解
  • Spring Boot 多环境配置
  • HTML5入门学习
  • Linux下解压RAR文件到指定目录的完整指南
  • 学习设计模式《二十四》——访问者模式
  • 当传统金融遇上AI智能:一个开源AIStock系统的深度技术解析
  • net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) nginx转发记录
  • 核心篇(下):Transformer 架构详解(程序员视角・实战版)
  • 从源码看浏览器弹窗消息机制:SetDefaultView 的创建、消息转发与本地/在线页通用实践
  • 2.渗透-.WEB运行原理-ZBlog安装(进一步理解数据库)
  • 深度学习——优化函数
  • Fast R-CNN论文研读整理记录
  • Lambda 表达式
  • 【菜狗学三维重建】TSDF三维重建隐式表达详细解释——20250413
  • pandas常用方法
  • 人工智能和机器学习如何改善机器人技术
  • 【VSCode】VSCode为Java C/S项目添加图形用户界面
  • YOLOv8-SMOT:一种高效鲁棒的实时小目标跟踪框架:基于切片辅助训练与自适应关联