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

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

转载请注明出处:小锋学长生活大爆炸[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

它将打印如下内容:

    binCHANGELOG.mdconfigdatadoclibLICENSEREADME.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预览。

相关文章:

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

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 背景说明 下载仓库 初始化配置 修改监听IP和端口 自定义网站名称 修改数据存放位置 更换Docker源 更换Docker存储位置 启动Overleaf 创…...

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 中第一次出现的位置。暴力匹…...

Java大师成长计划之第22天:Spring Cloud微服务架构

📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4o-mini模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 随着企业应用的不断扩展&#xff0c…...

瀑布模型VS敏捷模型VS喷泉模型

​目录 ​​1. 瀑布模型(Waterfall Model)​​ ​​2. 敏捷模型(Agile Model)​​ ​​3. 喷泉模型(Fountain Model)​​...

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

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

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

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

Linux 中 open 函数的本质与细节全解析

一、open简介 在 Linux 下,一切皆文件。而对文件的读写,离不开文件的“打开”操作。虽然 C 语言标准库提供了方便的 fopen,但更底层、更强大的是系统调用 open,掌握它能让你对文件系统控制更细致,在系统编程、驱动开发…...

llama.cpp无法使用gpu的问题

使用cuda编译llama.cpp后,仍然无法使用gpu。 ./llama-server -m ../../../../../model/hf_models/qwen/qwen3-4b-q8_0.gguf -ngl 40 报错如下 ggml_cuda_init: failed to initialize CUDA: forward compatibility was attempted on non supported HW warning: n…...

Python Unicode字符串和普通字符串转换

Unicode 是一种字符编码标准,旨在为世界上所有书写系统的每个字符提供一个唯一的数字标识(称为码点)。 码点: 每个 Unicode 字符被分配一个唯一的数字,称为码点表示形式:u 后跟 4-6 位十六进制数&#xf…...

Ansible Roles 是一种用于层次化和结构化组织 Ansible Playbook 的机制。

Ansible Roles 是一种用于层次化和结构化组织 Ansible Playbook 的机制。它通过将变量、文件、任务、模板和处理器等放置在单独的目录中,简化了 Playbook 的管理和复用。Roles 自 Ansible 1.2 版本引入,极大地提高了代码的可维护性和可重用性。 目录结构 一个标准的 Ansibl…...

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

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

Linux基础 -- SSH 流式烧录与压缩传输笔记

Linux SSH 流式烧录与压缩传输指南 一、背景介绍 在嵌入式开发和维护中,常常需要通过 SSH 从 PC 向设备端传输大文件(如系统镜像、固件)并将其直接烧录到指定磁盘(如 /dev/mmcblk2)。然而,设备端存储空间…...

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

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

事件驱动reactor的原理与实现

fdset 集合:(就是说) fd_set是一个位图(bitmap)结构 每个位代表一个文件描述符 0表示不在集合中,1表示在集合中 fd_set结构(简化): [0][1][2][3][4][5]...[1023] …...

大模型训练简介

在人工智能蓬勃发展的当下,大语言模型(LLM)成为了众多应用的核心驱动力。从智能聊天机器人到复杂的内容生成系统,LLM 的卓越表现令人瞩目。而这背后,大模型的训练过程充满了奥秘。本文将深入探讨 LLM 训练的各个方面&a…...

深度解析 MySQL 与 Spring Boot 长耗时进程:从故障现象到根治方案(含 Tomcat 重启必要性分析)

一、典型故障现象与用户痛点 在高并发业务场景中,企业级 Spring Boot 应用常遇到以下连锁故障: 用户侧:网页访问超时、提交表单无响应,报错 “服务不可用”。运维侧:监控平台报警 “数据库连接池耗尽”,To…...

More Effective C++:改善编程与设计(上)

More Effective C: 目录 More Effective C: 条款1:仔细区别pointers和 references 条款2:最好使用C转型操作符 条款3:绝对不要以多态方式处理数组 条款4:非必要不要提供default constructor 条款5:对定制的“类型转换函数”保持警觉 …...

TNNLS-2020《Autoencoder Constrained Clustering With Adaptive Neighbors》

核心思想分析 该论文提出了一种名为ACC_AN(Autoencoder Constrained Clustering with Adaptive Neighbors)的深度聚类方法,旨在解决传统子空间聚类方法在处理非线性数据分布和高维数据时的局限性。核心思想是将深度自编码器(Auto…...

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 // 更接近底层 // 可以绘制高级图形 /…...