首页 > 其他分享 >【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务

【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务

时间:2024-11-10 11:45:49浏览次数:3  
标签:Overleaf 手把手 overleaf ECS https 服务器 docker

【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务


目录

文章目录


1. 前言简介

对于很多Latex重度爱好者,Overleaf可能是无法拒绝的软件。最近免费版Overleaf调整限制在线协同编辑项目和用户数,还是会带来一些不便,对团队协助效率有影响。然而,面对付费版本每年199 $的会员费,不少人多少还是有些纠结和肉疼。

考虑到多人协作通常在论文撰写期间,尤其是各大会议投稿前的某个相对短暂的时间段,实际全年使用时间有限,那么是否有一个比较好的方法能够即免费,又体验上无差异地使用Overleaf呢? 为此,笔者近日实践了一把,趟过网上已有文章的各种坑,亲测有效,给大家介绍一种如何0元购畅快使用阿里云ECS搭建私有Overleaf论文写作服务的方法。
在这里插入图片描述
在这里插入图片描述

2. 部署ECS服务器

[1] 注册阿里云账号并进入免费试用网页

  • https://free.aliyun.com/
    在这里插入图片描述

[2] 选择“云服务ECS免费试用(个人版)”, 创建ECS实例

  • 进入ECS规格选择,官方体验版本是2核(vCPU)2GB,实测发现在拉去overleaf更新文件时,容易出现资源不足的问题,不建议选择。笔者建议选择的是: 2核(vCPU) 8GiB, 亲测各种拉去数据都毫无障碍,非常给力! 如果使用配置面板里面没有,那么优先先选择 “2核(vCPU) 4GiB” , 操作系统 Ubuntu, 搭配宝塔工具。 至于免费地域,按照自己所在城市,就近原则即可,实际差异并不大,关键看哪里有ECS免费资源。

ECS服务器配置:
- Ubuntu 22.04 64位
- 宝塔Linux面板
在这里插入图片描述

  • 备注:如果使用上面选择的 “2核(vCPU) 4GiB” 实例在后面搭建过程中有拉取数据卡顿问题(原因是下载或者写入速度超过配置),参考本文后面的如何修改ECS实例配置章节。

  • ECS实例创建好后,会跳转到云服务器ECS的管理界面 (https://ecs.console.aliyun.com/home), 在这里执行对ECS服务器的网络安全配置、系统登陆、服务器的开停等操作。
    在这里插入图片描述
    [3] 点击左侧 “实例”,找到自己的ECS服务器,然后 选择 “远程登陆”, 按照提示输入账号与密码。
    在这里插入图片描述
    注意:

    • 【1】选择 Workbench原创链接,后面操作界面比较友好
    • 【2】初始登陆的账号是root, 密码如果不知道,可以按照页面提示,选择重置密码,在线修改,然后重新登陆即可。
      在这里插入图片描述
      输入账号登陆
      在这里插入图片描述
      重置密码:
      在这里插入图片描述
      [4] 登陆成功后,如果你看到的界面如下,那么恭喜你,已经顺利完成ECS服务器的创建和登陆操作!
      在这里插入图片描述

[5] 更新系统的docker与 docker-compose

apt update
apt install -y docker-compose

注意: 我们需要更新的是 “docker-compose”, 一些网上文章错误写成 “ docker-composer”, 这是不正确,需要留意!
在这里插入图片描述在这里插入图片描述
至此,ECS服务器的准备工作,完成,没有多余动作!

3. 安装Overleaf服务

[1] 在workspace文件夹下创建 overleaf-toolkit文件夹,便于后续服务器管理

cd workspace && mkdir overleaf-toolkit

在这里插入图片描述
创建完成后:
在这里插入图片描述

[2] 下载Overleaf官方提供的Toolkit安装工具包:

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

执行结果:

Cloning into './overleaf-toolkit'...
remote: Enumerating objects: 2292, done.
remote: Counting objects: 100% (1018/1018), done.
remote: Compressing objects: 100% (263/263), done.
remote: Total 2292 (delta 846), reused 834 (delta 747), pack-reused 1274 (from 1)
Receiving objects: 100% (2292/2292), 846.29 KiB | 1.87 MiB/s, done.
Resolving deltas: 100% (1505/1505), done.

在这里插入图片描述

[3] 生成overleaf服务配置,并设置服务端口
首先,生成服务配置文件:

./bin/init

使用 bin/init 指令来进行初始化的配置文件生成,运行完该指令之后应该会创建出三个配置文件,分别是:config/overleaf.rc,config/variables.env 以及 config/version,分别对应 Overleaf 容器的配置, docker 的环境配置以及选用的 Overleaf 的 docker 镜像。

接着,修改配置文件。

  • (1) overleaf.rc 文件中我们需要注意的几个配置:

OVERLEAF_PORT 指的是运行 Overleaf 的容器要选择曝露的端口,默认是 80 端口但如果有要使用 Nginx
反向代理的需求的话则需要自选一个端口(不常用的就行); SIBLING_CONTAINERS_ENABLED 这个配置真的巨坑,默认的话是
true 但如果没有购买官方的 Server Pro 的话请直接修改成 false,因为这个功能很大程度上依赖于官方提供给 Server
Pro 用户的镜像,如果不调到 false 的话极有可能出现编译失败的情况;

其他的则可以按需进行修改,详细可参考官方 Github
的介绍:https://github.com/overleaf/toolkit/blob/master/doc/overleaf-rc.md?spm=a2c6h.12873639.article-detail.10.5a3369458NLdVU&file=overleaf-rc.md

  • (2) variables.env文件主要都是一些 Overleaf 程序上的配置,如 OVERLEAF_NAV_TITLE 等就是网页上导航栏的标题,不修改也不会出大问题。

  • (3)version 文件一般初次部署默认不用修改;

注意
如果你当前的ECS服务器没有部署其他服务,那么参考上面的配置,基本没有问题。但是如果有其他服务部署,那么可能存在80端口被占用的问题,那么建议更换下端口号。

[4] 部署 overleaf服务
在overleaf-toolkit文件夹里面,执行下面的命令,先测试下看看overleaf服务是否能够正常启动:

./bin/up

这时候,系统会调用 docker-compose 帮我们创建所需要的容器,并且可以看到输出了很多的日志信息。
在这里插入图片描述
然后,我们可以直接通过日志信息或者到浏览器访问:
http://服务器IP:Overleaf端口 查看是否运行成功。
比如:http://12.121.121.12:80
在这里插入图片描述
服务器IP查询:
在这里插入图片描述
注意,如果连接不成功,那么可能的原因有几种:

  • 1) 端口配置问题,查看下是否80端口已经被其他应用占用,如果是,那么换一个端口;

  • 2)ECS服务器的安全策略限制,导致无法连接,那么更新下安全策略
    在这里插入图片描述

  • 3)防火墙设置,导致80端口无法连接,那么更新下防火墙配置

如果运行成功的话应该能够正常访问,我们就可以按下 Ctrl+C 终止运行,并且使用命令:

./bin/start

让程序进入后台长期运行,之后我们可以通过指令:

docker stats

来观察服务运行的情况
docker stats

4. 更新TexLive包

在这一步之前,虽然我们能够使用overleaf服务,但是编译tex文件会出现问题。这是因为TexLive包没有更新。

首先,我们创建一个docker container, 运行如下命令:

docker exec -it sharelatex bash

这样直接进入到 sharelatex这个容器环境。

接着,我们需要更新下容器的源更新为阿里云的镜像源(参考:https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.12873639.article-detail.11.5a3369458NLdVU),同时设置我们的 TexLive Manager 的源也改成阿里云的源:

tlmgr option repository https://mirrors.aliyun.com/CTAN/systems/texlive/tlnet

更新下daemon.json文件,非常关键,否则后面可能遇到下面的更新问题

ERROR: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

在这里插入图片描述

sudo vim /etc/docker/daemon.json

在daemon.json里面补充如下内容:

{
“registry-mirrors”: [“https://docker.211678.top”,“https://docker.1panel.live”,“https://hub.rat.dev”,“https://docker.m.daocloud.io”,“https://do.nark.eu.org”,“https://dockerpull.com”,“https://dockerproxy.cn”,
“https://docker.awsl9527.cn”]
}

然后保存文件。

最后,直接执行下面的命令,更新texlive:

tlmgr install scheme-full

此步骤需要的时间较长,并且容易造成 IO 飙升, ECS服务器如果是2Gib版本,通常会在这一步执行过程中,进入假死状态,导致无法操作。4Gib和8Gib版本,通常没有问题,直接通过。

  • 进入安装状态
    在这里插入图片描述
  • 安装过程中,CPU, MEM的情况
    在这里插入图片描述
  • 安装完成画面:
    在这里插入图片描述

待得安装完成后,可运行 exit 退出容器的 shell,并运行:

cat config/version

获取当前的version信息,接着

docker sharelatex/sharelatex:[version]-with-texlive-full
echo [version]-with-texlive-full > config/version

将容器刻录成镜像,防止重启重建时需要再次重新安装 TexLive 完整版,
至此完整版 TexLive 即安装完成。

5. XeLaTex修复

网上文章介绍说XeLaTex镜像是破损的,需要进行更新,这个没有特别验证,就直接更新了下,比较简单,代码如下:

docker exec -it sharelatex bash
apt update
apt install -y texlive-xetex texlive-latex-extra texlive-science

6. 中文字体支持

这一步看个人需求,如果是面向学术写作,这一步实际并不太重要,因为文章通常是用英文写的。

需要中文支持的同学,可以参考下面步骤。注意:本人没有亲测,不保证是否有坑!

1、将Windows机的中文字体复制到host机,Windows机的字体储存在C:\windows\Fonts,目录,这里复制到host机的/root/Fonts目录:

# 进入Fonts目录

 cd Fonts/ 

# 删除其中的.fon字体文件(否则可能会报错) 

 rm -r *.fon 

# 返回上层目录并打包 

 cd .. 

 tar -zcvf winfonts.tar.gz Fonts/ 

# 把压缩文件传到sharelatex容器的root目录下

 docker cp winfonts.tar.gz sharelatex:/root 

# 进入容器的命令行界面 

 docker exec -it sharelatex bash 

# 通过安装wqy字体同时安装xfont工具 

 apt-get install xfonts-wqy 

# 进入root目录,解压winfonts.tar.gz,并移动到系统字体目录下 

 cd ~ 

 tar -zxvf 

 winfonts.tar.gz mv Fonts usr/share/fonts/ 

# 进入字体目录安装字体 

 cd usr/share/fonts/Fonts 

 mkfontscale 

 mkfontdir 

 fc-cache -fv 

# 检查确认中文字体安装成功 

 fc-list :lang=zh-cn 

#此时会出现已经安装的中文字体



2、重启服务

 docker restart sharelatex

7. overleaf账号管理

[1] 管理员账户
使用浏览器,访问:
http://ECS-IP: 端口/launchpad 建立管理员账号
比如:http://127.0.0.1:80/launchpad

如果已经注册好,那么会跳转到管理员登陆界面。
例如: http://127.0.0.1/login (这里的IP,就是你的ECS对外公网IP)
在这里插入图片描述

[2] 建立普通用户账号
以管理员身份操作,选择 ”Manage User“,增加其他用户的邮箱信息,然后会得到一个修改密码的连接。
在这里插入图片描述
在这里插入图片描述
将这个修改密码的链接,发给你的伙伴,他们按照提示登陆并设置密码,就可以与你一同使用overleaf服务了。

注意:

  • 这里有一个坑点,之前我们没有修改overleaf的配置,这时候在Set Password Url里面,出现的还是http://overleaf.example.com, 实际需要替换为你的服务器IP信息,即: http://ECS-IP.

至此,Overleaf服务已经完成部署工作,可以愉快地去邀请你的小伙伴一起写论文了。
在这里插入图片描述

8. 致谢

本文创作所使用的ECS服务器为阿里云提供的免费ECS,感谢阿里云!

有需要的朋友,可以使用下面链接,体验免费版本或者购买ECS的双十一优惠:
免费ECS链接:https://free.aliyun.com/
在这里插入图片描述

双十一活动链接:https://www.aliyun.com/activity/1111/2024
在这里插入图片描述


后记

如果觉得我的博客对您有用,欢迎三连击 (点赞、收藏、关注和评论) 不迷路,我将持续为您带来计算机人工智能前沿技术(尤其是AI相关的大语言模型,深度学习和计算机视觉相关方向)最新学术论文及工程实践方面的内容分享,助力您更快更准更系统地了解 AI前沿技术

标签:Overleaf,手把手,overleaf,ECS,https,服务器,docker
From: https://blog.csdn.net/fyf2007/article/details/143648561

相关文章

  • 手把手教你搭建Windows+YOLO11+CUDA环境,以EMA注意演示如何改进YOLO11, 训练自定义数据
    YOLOv11目标检测创新改进与实战案例专栏文章目录:YOLOv11创新改进系列及项目实战目录包含卷积,主干注意力,检测头等创新机制以及各种目标检测分割项目实战案例专栏链接:YOLOv11目标检测创新改进与实战案例文章目录YOLOv11目标检测创新改进与实战案例专栏前言本......
  • 使用API 来进行Huawei ECS的开关机
    UseAPItoshut-downorstart-upHuaweiCloudECShttps://support.huaweicloud.com/intl/zh-cn/api-ecs/ecs_02_0301.htmlGetX-Subject-Tokenforauthorizationhttps://iam.ae-ad-1.g42cloud.com/v3/auth/tokensWegonnausePostmanfortestpurpose,ofcourseyo......
  • 手把手教你线上申请“营业性演出许可证”
    营业性演出主要分为三大类:文艺表演团体、演出经纪机构、演出场所经营单位。目前最普遍的应用场景是直播,这个对应的是演出机构经营许可证,因此本文就以“演出经纪机构”举例,给大家科普营业性演出许可证办理攻略。一、线上申请流程1、访问“全国文化市场技术监管与服务平台准入......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对校园疫情大学生防控出入系统等问题,对校园疫情大学生防控出入系统进行研究分析,然后开发设计......
  • 计算机毕业设计项目推荐,高校学生社团管理系统 00498(开题答辩+程序定制+全套文案 )上万
    摘要随着计算机科学技术的日渐成熟,人们已经深刻地认识到了计算机在各个领域中发挥的功能的强大,计算机已经进入到了人类社会发展的各个领域,并且发挥着十分重要的作用。目前学校学生社团的管理是一项系统而复杂的工作,它需要一个团队互相配合、分工协作。在该领域,传统的手工存取......
  • IT监控(进阶篇):运维监控系统手把手部署教学
    前言:注:系统需必须是centos7.4-7.9或redhat7.4-7.9且无其他业务的,不存在nginx、php、mysql、perseusZ_server、ansibles、postgresql等软件,否则一些脚本探测到已安装则会跳过配置文件的修改导致后续安装的系统功能异常。top#查看系统配置最低要求CPU8核心以上,内存8G以上。df-hl......
  • 手把手教你编写自定义Categraf插件
    本文分享自天翼云开发者社区《手把手教你编写自定义Categraf插件》,作者:任****佳Categraf是一个监控采集Agent,类似Telegraf、Grafana-Agent、Datadog-Agent,希望对所有常见监控对象提供监控数据采集能力,采用All-in-one的设计,不但支持指标采集,也希望支持日志和调用链路的数据采......
  • 手把手教你学simulink(8.37)--基于Simulink的电机仿真实例
    目录基于Simulink的电机仿真实例1.创建Simulink模型2.构建模型3.连接模块4.设置参数5.运行仿真6.结果分析示例模型图总结基于Simulink的电机仿真实例Simulink是MATLAB中的一个图形化仿真工具,广泛用于控制系统、信号处理、通信系统等领域。下面是一个基于......
  • 手把手教你学pcie(12.17)--实现一个PCIe设备与用户空间应用程序之间的DMA数据传输
    目录基于PCIe的DMA数据传输项目实例1.环境搭建2.FPGA设计3.驱动开发4.用户空间应用程序开发5.调试6.总结实现一个PCIe设备与用户空间应用程序之间的DMA数据传输。这个例子将包括环境搭建、FPGA设计、驱动开发、用户空间应用程序开发和调试等环节。基于PCIe的D......
  • 第六届国际科技创新学术交流大会(IAECST 2024) 2024 6th International Academic Excha
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus大会时间:2024年12月6-8日大会地点:中国-广州三、大会介绍在“十四五”规划的宏伟蓝图中,创新被......