保姆教程—在本地部署最新版Overleaf,并能远程访问

Overleaf是一款在线的协作式LaTeX编辑器,旨在简化文档创建和编辑过程。LaTeX是一种用于科学、数学和技术领域的强大排版系统。Overleaf的特点包括多人协作,用户可以随时随地与同事和同学一起编辑文档,实时预览功能可让用户即时查看编辑结果。还提供多种模板,用于创建论文、报告、演示文稿等,节省时间。编辑器支持高级LaTeX功能,包括数学公式、图表、表格、引用和参考文献。自动编译确保用户立即看到更新后的文档。版本控制功能可追踪不同版本,导出选项允许生成PDF文件或ZIP文件。用户可生成协作链接,无需注册Overleaf账户,也支持私人项目和团队协作,提供免费和付费计划。

概述

开源版本的Overleaf称为"Overleaf Community Edition",简称"Overleaf CE"。它是Overleaf团队推出的开源LaTeX协作编辑器,可让用户在自己的服务器上创建类似Overleaf的在线LaTeX编辑环境。这种自托管方式赋予用户在内部网络或私人服务器上创建、编辑和共享LaTeX文档的完全控制权。

数据隐私和安全性: 在某些情况下,可能对数据隐私和安全性有严格要求,不希望文档和敏感信息存储在第三方云服务上。独立部署Overleaf允许您完全掌握数据存储和访问,确保合规和安全标准。

机构内部部署: 一些大学、研究机构或企业可能需要在内部网络提供LaTeX编辑和协作功能,以支持学术、研究和文档创作。独立部署Overleaf能够满足这一需求,使机构内部用户轻松创建和编辑LaTeX文档。

定制需求: 如果您有特定的定制需求,希望对编辑器界面、功能或工作流程进行个性化定制,独立部署Overleaf提供更大的灵活性,可满足各种需求,实现编辑环境的定制化。

带宽和访问限制: 在某些地区或网络环境中,外部云服务的访问可能受到带宽或访问限制。独立部署Overleaf可为用户提供更流畅的内部网络访问体验。

成本效益: 对于一些组织而言,长期使用第三方云服务可能会导致高昂费用。独立部署Overleaf有助于节省成本,尤其是在大规模使用情况下。

技术支持和控制: 独立部署Overleaf让您在技术层面上更具掌控力,可以根据需要进行维护、升级和修复,与内部技术团队直接合作解决问题。

网络中已经有一些教程,要么安装的Overleaf版本太低,要么遇到的问题没有明确给出解决方法。

准备工作

Docker Desktop安装

Docker是一种开源的容器化平台,它使开发者能够轻松地创建、部署和管理应用程序及其依赖项。它的核心概念是容器,容器是一个独立的、可移植的环境,包含了应用程序及其所有运行时依赖项,如库、配置和环境变量。Docker的优势在于它提供了一种标准化的方式来封装应用程序,使其可以在不同的环境中无缝运行,无论是在开发者的本地计算机上、测试环境中还是生产服务器上。

使用Docker,开发者可以轻松地创建自定义容器镜像,将其分享给团队成员或社区,从而实现开发环境的一致性。容器还能够实现快速部署和水平扩展,使应用程序更具可伸缩性和弹性。此外,Docker生态系统还提供了许多附加工具和服务,如Docker Compose和Docker Swarm,用于简化多容器应用程序的管理和编排。

Docker Desktop是一款用于Windows和macOS操作系统的桌面应用程序,专门设计用于简化Docker容器的开发、测试和部署过程。它提供了一个用户友好的图形界面,使开发者能够轻松地创建、管理和运行容器化应用程序。

通过Docker Desktop,用户可以在本地计算机上构建和运行Docker容器,无需深入了解容器技术的复杂性细节。它还包括了Docker Compose,这是一个用于定义和运行多容器应用程序的工具,以及Kubernetes的集成,可用于更复杂的容器编排和管理。

Docker Desktop还具备自动更新功能,以确保用户始终使用最新的Docker引擎和工具,从而提供更好的性能和安全性。它是一个强大的工具,适用于开发者、测试人员和DevOps团队,可帮助他们在本地环境中快速、方便地构建和测试容器化应用程序,从而加速软件开发周期。

安装Docker Desktop后,在本地对Docker进行可视化的管控,比较方便。

下载安装地址:

www.docker.comwww.docker.com/products/docker-desktop/

安装过程比较简单,此处省略。

部署Overleaf

使用Docker安装Overleaf

1.打开命令行cmd, 拉取 Overleaf 官方开源镜像:

docker pull sharelatex/sharelatex:4.1.1

Overleaf版本参考地址:

https://github.com/overleaf/overleaf/wiki/Release-Notes--4.x.x

由于国内下载比较慢,需要等待挺长时间,可以参照https://www.cnblogs.com/Flat-White/p/17107494.html设置国内的Docker源。

下载过程如下图所示:


2.前往 https://github.com/overleaf/overleaf/blob/main/docker-compose.yml下载 docker-compose.yml 文件到本地;

3.针对4.1.1版本的 overleaf,在Github中的docker-compose.yml 未做更新(https://github.com/overleaf/overleaf/issues/1120),因此需要对下载下来的docker-compose.yml 进行如下修改:

如果不做修改,会导致mongo和sharelatex启动不起来,出现以下类似问题:

(1)dependency failed to start: container for service "mongo" is unhealthy

(2)MongoServerError: Transaction numbers are only allowed on a replica set member or mongos

(1)将image: sharelatex/sharelatex的版本修改为:

image: sharelatex/sharelatex:4.1.1

(2)将mongo部分的配置修改成如下所示:

  mongo:

        restart: always

        image: mongo:4.4

        container_name: mongo

        command: "--replSet overleaf"

        expose:

          - 27017

        volumes:

          - "./mongo_data:/data/db"

        healthcheck:

          test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet

          interval: 10s

          timeout: 10s

          retries: 5

    mongoinit:

        image: mongo:4.4

        # this container will exit after executing the command

        restart: "no"

        depends_on:

          mongo:

            condition: service_healthy

        entrypoint:

          [

            "mongo",

            "--host",

            "mongo:27017",

            "--eval",

            'rs.initiate({ _id: "overleaf", members: [ { _id: 0, host: "mongo:27017" } ] })',

          ]

端口之类的配置按需要进行配置就好,通常默认就好。

4.命令行进入docker-compose.yml 文件所在目录下,然后执行:

在操作系统的命令行工具进行执行;

docker-compose up

执行过程中如下图所示:



5.下载完成后会自动启动compose,执行成功后,如图所示:


6.通过访问http://127.0.0.1/launchpad 可以配置管理员账号;

如果配置了特定的端口号,需要添加端口号进行访问;


7.此时可以通过 http://127.0.0.1/ 来访问本地的 overleaf ;

如果配置了特定的端口号,需要添加端口号进行访问;


8.找个Latex模版(IEEE conference-latex-template_10-17-19)编译试一下,结果出现如下错误:


官方的镜像为了节省带宽,镜像中未含完整版本的TeXLive。

需要继续安装完整版本的TeXLive

TeXLive安装

1.进入到容器sharelatex的命令行界面:

在操作系统的命令行执行

$ docker exec -it sharelatex bash

也可以使用Docker Desktop直接进入

使用Docker Desktop可以双击直接进入,如图所示:



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

如图所示:


8.关闭重启Overleaf:


此时可以正常编译了,如下图所示:


对中文也可以进行编译了,如下图所示:


配置远程访问

在自己的电脑安装后,需要在其他外网环境(图书馆、咖啡馆)也可以访问到,或者需要给到师门同学一起使用,就需要实现远程访问。

一些方法

当前的远程访问实现的方法有:

(1)WireGuard:支持P2P的连接方式,开源,不稳定,经常P2P连接不通;

(2)HeadSacle:开源,部署配置起来太复杂;

(3)蒲公英:购买硬件设备;

(4)。。。。

选择的方法

折腾了几天,各种配置,各种安装,最终还是放弃了上面提到的方法。

使用了https://solopace.doaction.pro/这个产品,简单易用,连接稳定,无需购买硬件,用户体验优秀,免费版本支持2台电脑,要支持更多的电脑费用也可以接受。使用的截图如下:


参考资料

ArchLinux 部署 ShareLaTex 并且配置中文支持

Installing ShareLaTeX

Quick Start Guide

https://zhuanlan.zhihu.com/p/432741178

https://github.com/overleaf/overleaf/wiki/Release-Notes--4.x.x

https://github.com/overleaf/overleaf/issues/1120

https://zhuanlan.zhihu.com/p/656260109

方便易用的企业异地组网工具

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容