【教程】Docker方式本地部署Overleaf

news2025/5/15 13:53:33

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~

目录

背景说明

下载仓库

初始化配置

修改监听IP和端口

自定义网站名称

修改数据存放位置

更换Docker源

更换Docker存储位置

启动Overleaf

创建管理员帐户

创建第一个项目


背景说明

Overleaf又挂了,数据放在别人手里真是不靠谱。反正Overleaf是开源的,所以自己搭建一个。

Overleaf Status

教程来自官方:toolkit/doc/quick-start-guide.md at master · overleaf/toolkit · GitHub

下载仓库

首先,让我们将这个git存储库克隆到你的机器上:

git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit

接下来让我们进入这个目录:

cd ./overleaf-toolkit

让我们看一下存储库的结构:

ls -l

它将打印如下内容:

    bin
    CHANGELOG.md
    config
    data
    doc
    lib
    LICENSE
    README.md
  • README.md文件包含一些关于项目的有用信息
  • doc目录包含使用该工具包所需的所有留档
  • config目录将包含本地配置文件(我们稍后将创建)
  • bin目录包含管理背面实例的脚本集合

初始化配置

让我们通过运行bin/init来创建本地配置:

bin/init

现在检查config/目录的内容

ls config
# overleaf.rc     variables.env     version
这是将与之交互的三个配置文件:
  • overleaf.rc:主要的顶级配置文件
  • variables.env:加载到docker容器中的环境变量
  • version:要使用的docker映像的版本
  • 默认情况下,工具包使用免费的社区版
  • 默认情况下,overleaf使用texlive,并且宏包是不全的

修改监听IP和端口

./config/overleaf.rc中,需要修改以下字段:

OVERLEAF_LISTEN_IP=0.0.0.0 # 监听所有的IP
OVERLEAF_PORT=8000         # 默认是80端口

自定义网站名称

./config/variables.env文件中,修改:

OVERLEAF_APP_NAME="Overleaf Instance"
OVERLEAF_SITE_URL=xxx
OVERLEAF_NAV_TITLE="Overleaf Instance"
OVERLEAF_ADMIN_EMAIL=mail@xxx.site

修改完配置文件之后,需要重新build才可以应用配置。

sudo bin/down 
sudo bin/up

修改Mongo版本

MongoDB 官方从 5.0 开始引入的硬件限制,强制要求支持 AVX,无法通过任何软件方法绕过。所以需要降低版本。

./config/overleaf.rc中,需要修改以下字段:

MONGO_VERSION=4.4

修改数据存放位置

./config/overleaf.rc中,需要修改以下字段:

更换Docker源

可以看这篇:【教程】最新可用!Docker国内镜像源列表_docker镜像源-CSDN博客

推荐:https://docker.1panel.live

更换Docker存储位置

可以看这篇:【教程】Docker更换存储位置-CSDN博客

启动Overleaf

该工具包使用docker compose来管理docker容器。该工具包提供了一组脚本来包装docker compose,并处理大部分细节。

可以先检查一下是否存在隐性问题:

sudo bin/doctor

然后让我们启动docker服务:

sudo bin/up

# 后台运行:
# sudo bin/up -d 

应该看到docker容器的一些日志输出,表明容器正在运行。如果在终端按CTRL-C,服务将关闭。可以通过运行bin/start再次启动它们(而不附加到日志输出)。更一般地说,如果发现脚本没有涵盖你的用例,可以运行bin/docker-compose来直接控制docker compose系统。

创建管理员帐户

  1. 在浏览器中,打开http://localhost/launchpad。应该会看到一个包含电子邮件和密码字段的表单。用想用作管理员帐户的凭据填写这些凭据,然后单击“注册”。
  2. 然后单击链接进入登录页面(http://localhost/login)。输入凭据。登录后,将被带到欢迎页面。
  3. 单击页面底部的绿色按钮开始使用。

创建第一个项目

  1. 在http://localhost/project页面上,将看到一个按钮,提示创建第一个项目。单击按钮并按照说明进行操作。
  2. 然后,你应该被带到新项目,在那里将看到一个文本编辑器和一个PDF预览。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2376143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3337|3335. 字符串转换后的长度 I(||)

1.字符串转换后的长度 I 1.1题目 3335. 字符串转换后的长度 I - 力扣(LeetCode) 1.2解析 递推法解析 思路框架 我们可以通过定义状态变量来追踪每次转换后各字符的数量变化。具体地,定义状态函数 f(i,c) 表示经过 i 次转换后&#xff0…

PHP黑白胶卷底片图转彩图功能 V2025.05.15

关于底片转彩图 传统照片底片是摄影过程中生成的反色图像,为了欣赏照片,需要通过冲印过程将底片转化为正像。而随着数字技术的发展,我们现在可以使用数字工具不仅将底片转为正像,还可以添加色彩,重现照片原本的色彩效…

字符串检索算法:KMP和Trie树

目录 1.引言 2.KMP算法 3.Trie树 3.1.简介 3.2.Trie树的应用场景 3.3.复杂度分析 3.4.Trie 树的优缺点 3.5.示例 1.引言 字符串匹配,给定一个主串 S 和一个模式串 P,判断 P 是否是 S 的子串,即找到 P 在 S 中第一次出现的位置。暴力匹…

基于.Net开发的网络管理与监控工具

从零学习构建一个完整的系统 平常项目上线后,不仅意味着开发的完成,更意味着项目正式进入日常运维阶段。在这个阶段,网络的监控与管理也是至关重要的,这时候就需要一款网络管理工具,可以协助运维人员用于日常管理&…

Python并发编程:开启性能优化的大门(7/10)

1.引言 在当今数字化时代,Python 已成为编程领域中一颗璀璨的明星,占据着编程语言排行榜的榜首。无论是数据科学、人工智能,还是 Web 开发、自动化脚本编写,Python 都以其简洁的语法、丰富的库和强大的功能,赢得了广大…

易学探索助手-个人记录(十)

在现代 Web 应用中,用户体验的重要性不断上升。近期我完成了两个功能模块 —— 语音播报功能 与 用户信息修改表单,分别增强了界面交互与用户自管理能力。 一、语音播报功能(SpeechSynthesis) 功能特点 支持播放、暂停、继续、停…

学习51单片机01(安装开发环境)

新学期新相貌.......哈哈哈,我终于把贪吃蛇结束了,现在我们来学stc51单片机! 要求:c语言的程度至少要到函数,指针尽量!如果c语言不好的,可以回去看看我的c语言笔记。 1.开发环境的安装&#x…

SpringAI

机器学习: 定义:人工智能的子领域,通过数据驱动的方法让计算机学习规律,进行预测或决策。 核心方法: 监督学习(如线性回归、SVM)。 无监督学习(如聚类、降维)。 强化学…

lua 作为嵌入式设备的配置语言

从lua的脚本中获取数据 lua中栈的索引 3 | -1 2 | -2 1 | -3 可以在lua的解释器中加入自己自定的一些功能,其实没啥必要,就是为了可以练习下lua

ERP系统源码,小型工厂ERP系统源码,CRM+OA+进销存+财务

ERP系统源码,小型工厂ERP系统源码,ERP计划管理系统源码,CRMOA进销存财务 对于ERP来说,最为主要的作用就是能够强调企业的计划性,通过以业务订单以及客户的相关需求来作为企业计划的基础,并且还能够对企业现…

基于EFISH-SCB-RK3576/SAIL-RK3576的矿用本安型手持终端技术方案‌

(国产化替代J1900的矿山智能化解决方案) 一、硬件架构设计‌ ‌本安型结构设计‌ ‌防爆防护体系‌: 采用铸镁合金外壳复合防爆玻璃(抗冲击能量>20J),通过GB 3836.1-2021 Ex ib I Mb认证 全密闭IP68接口…

配置文件介绍xml、json

#灵感# 常用xml, 但有点模棱两可,记录下AI助理给我总结的。 .xml XML(eXtensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言。它与 HTML 类似,但有以下主要特点和用途&#xf…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-D. 扩展插件列表(PostGIS/PostgREST等)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 附录D. PostgreSQL扩展插件速查表一、插件分类速查表二、核心插件详解三、安装与配置指南四、应用场景模板五、版本兼容性说明六、维护与优化建议七、官方资源与工具八、附录…

Qt笔记---》.pro中配置

文章目录 1、概要1.1、修改qt项目的中间文件输出路径和部署路径1.2、Qt 项目模块配置1.3、外部库文件引用配置 1、概要 1.1、修改qt项目的中间文件输出路径和部署路径 (1)、为解决 “ 输出文件 ” 和 “ 中间输出文件 ”全部在同一个文件夹下的问题&am…

【Liblib】基于LiblibAI自定义模型,总结一下Python开发步骤

一、前言 Liblib AI(哩布哩布 AI)是一个集成了先进人工智能技术和用户友好设计的 AI 图像创作绘画平台和模型分享社区。 强大的图像生成能力 :以 Stable Diffusion 技术为核心,提供文生图、图生图、图像后期处理等功能&#xff…

CCF第七届AIOps国际挑战赛季军分享(RAG)

分享CCF 第七届AIOps国际挑战赛的季军方案,从我们的比赛经历来看,并不会,相反,私域领域问答的优秀效果说明RAG真的很重要 历经4个月的时间,从初赛赛道第1,复赛赛道第2,到最后决赛获得季军&…

【Cesium入门教程】第七课:Primitive图元

Cesium丰富的空间数据可视化API分为两部分:primitive API面向三维图形开发者,更底层一些。 Entity API是数据驱动更高级一些。 // entity // 调用方便,封装完美 // 是基于primitive的封装// primitive // 更接近底层 // 可以绘制高级图形 /…

【5分钟学Docker】Docker快速使用

目录 1. 概述 2. 基本操作 2.1. 镜像操作 2.2. 容器操作 2.3. 运行操作 2.4. 镜像保存 2.5. 镜像分享 3. 高级操作 4. 挂载 4.1. 目录挂载 4.2. 卷映射 1. 概述 Docker 镜像有镜像名称和TAG 2. 基本操作 2.1. 镜像操作 查看镜像 docker images docker image ls …

opencv 一些简单的设置

输出当前程序启动的路径 可能会出现 🔧 设置 C17 标准(解决 std::filesystem 报错) 在 VS 中,右键项目 → 属性。 选择左边的 “C/C” → “语言” 找到 C语言标准(C Language Standard)选项。 设置为&…

监控易运维管理软件:架构稳健,组件强大

在当今的信息化时代,运维管理对于企业的稳定运营至关重要。一款好的运维管理软件,不仅能够帮助企业高效管理IT基础设施,还能提升运维效率,降低运维成本。今天,我要给大家介绍的,就是我们公司自主研发的监控…