腾讯云中使用ubuntu安装属于自己的overleaf
在自己的云服务器上安装overleaf的需求是从写论文开始的,总担心自己的论文放在一个网站上被泄露,所以想要在自己的服务器上安装自己的overleaf,正好手边有一个云服务器,现在开始。
配置腾讯云
因为使用overleaf的优势就是在不同的设备,不同的地点都可以编辑自己的文档,所以这里我们使用自己的云服务器,选择腾讯云的原因是之前买了腾讯云的服务器,打算干一番大事业,结果也不了了之,现在刚刚好可以用起来,其实其他他的云也差不多的操作,那个便宜用哪个吧。
我想图文并茂的带大家走一下这个流程,所以首先第一步是重装系统,这里因为使用了我自己的服务器,所以即使有什么个人信息,也希望大家不要使用,并提醒我及时马赛克。
登录控制台后,选择我们的服务器



然后确认进行重装系统,中间可能有一些验证过程,这里省略。。。。
重装完成后,会返回控制台的主页面,在控制台页面我们可以发现本机的公网ip,如下图

连接xshell
我们这里使用xshell作为本地的终端工具,当然随便选取一些shell或者直接在网页中使用腾讯云的终端也是可以的,本文面向小白,怎么方便怎么来
新建一个选项卡

名称是选项卡的名称,这里随便填写,主机是我们云服务器的公网ip,这个在上面的配置中已经查看过了

选择左侧栏中的用户身份验证,其中用户名是ubuntu,这个是腾讯云默认的用户名,密码是之前在重置系统时重置的密码。

至此,我们确认一下就链接上了这台云服务器,下次链接就不用这么费劲了,只需要在左侧栏中的所有会话中选择腾讯云即可

打开防火墙
由于我们下面的docker想要使用88端口,这里需要我们打开防火墙
首先是ubuntu的防火墙
sudo ufw allow 88/tcp
然后是打开腾讯云的防火墙

操作顺序由上到下

安装overleaf
先将overleaf项目拉到本地
git clone https://github.com/overleaf/toolkit.git ./overleaf
然后进入overleaf文件夹,并执行具有初始化配置功能的二进制文件:
cd ./overleaf
sudo bin/init
初始化会在 config 文件夹下生成若干配置文件 overleaf.rc,variables.env 和 version,注意!!!在真实安装之前需要先改配置文件,在执行安装程序,和拉取完整版的texlive。
如果你是在远程服务器上搭建,你需要在 variables.env 里面把SHARELATEX_SITE_URL项里的localhost改成yourIP[:port],yourIP是你远程服务器的IP,在腾讯云中这个是腾讯云的内网ip,port在overleaf.rc里默认是80 (若为80访问地址里可缺省),但是我们这里设置为88,因为80端口往往被占用,同时打开服务器防火墙的88端口。重启一下服务(先执行 bin/stop 然后执行 bin/start )
由于 toolkit 使用 docker-compose 作为容器编排器,没有 docker-compose 还需先安装一下:
apt install docker-compose
安装好后执行
sudo bin/up
开始拉取需要的内容

等出现大量的log时使用 ctrl+c 停止,然后执行
sudo bin/start
此时用浏览器打开
http://公网IP:映射的端口/launchpad
就可以看到管理员注册界面,至此overleaf的安装结束
下载完成latex
以上安装的overleaf配套的LaTeX不是完整版,所以需要继续下载。
首先进入容器的bash:
# 将普通用户username加入到docker组中
sudo gpasswd -a $USER docker
# 更新docker组
newgrp docker
# 与容器环境进行交互
docker exec -it sharelatex bash
cd /usr/local/texlive
然后执行以下命令:
# 下载并运行升级脚本
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
sh update-tlmgr-latest.sh -- --upgrade
# 更换texlive的下载源
tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/
# 升级tlmgr
tlmgr update --self --all
# 安装完整版texlive(时间比较长,不要让shell断开)
tlmgr install scheme-full
# 退出sharelatex的命令行界面,并重启sharelatex容器
exit
docker restart sharelatex
注册管理员
这时候,理论上就可以通过
https://latex.xxxxx.com(配置了https)http://latex.xxxxx.com(只有域名)http://yourIP:port(连域名都没有)
来登录网站了,我们登录对应地址加“/launchpad, 比如”https://latex.xxxxx.com/launchpad ,进行管理员账号的注册。
管理普通用户
注册并登录后,管理员账号可以点击右上角的 Admin 图标, 点击弹出的 Mangae Users 图标,输入新用户的邮箱即可注册。注意先前我们没有配置SMTP自动发邮件,所以需要管理员把弹出的注册邀请URL手动发送给用户。用户在拿到邀请URL后,点击进去设置密码,就可以采用邮箱号和密码在 https://latex.xxxxx.com 登录了。
最终我们可以愉快写论文了

相关文章:
腾讯云中使用ubuntu安装属于自己的overleaf
在自己的云服务器上安装overleaf的需求是从写论文开始的,总担心自己的论文放在一个网站上被泄露,所以想要在自己的服务器上安装自己的overleaf,正好手边有一个云服务器,现在开始。 配置腾讯云 因为使用overleaf的优势就是在不同…...
【redisson学习笔记】
1)clone项目 git clone https://github.com/redisson/redisson.git本来想直接用maven编译源码, 却发现各种错误,主要是maven的编译插件版本问题。 2)然后用maven包方式引入 <dependencies><dependency><groupId>org.redisson</gr…...
gurobi属性篇一
1.构造目标函数 (1)一般的写法: 我们常见的目标函数写法通常是定义好式子zf(x,y,...),然后用m.setObjective(z, GRB。MINIMIZE),这样的定义方式比较普遍。 这也是一般的写法。 (2)但还有一种写法…...
【python数据建模】Pandas库
概述 Pandas库主要提供了三种数据结构: (1)Series:带标签的一维数据 (2)DataFrame:带标签且大小可变的二维表结构 (3)Panel:带标签且大小可变的三维数据 Pan…...
Flutter笔记:关于应用程序中提交图片作为头像
Flutter笔记 关于应用程序中提交图片作为头像 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/133418554…...
【C++】C++的类型转换
文章目录 1. C语言中的类型转换2. C中的类型转换2.1 static_cast2.2 reinterpret_cast2.3 const_cast2.4 dynamic 1. C语言中的类型转换 在C语言中,经常会出现一种情况:运算符两边的类型不同,或者形参实参类型不匹配,此时就会发生…...
ahk系列——ahk_v2实现win10任意界面ocr
前言: 不依赖外部api接口,界面简洁,翻译快速,操作简单, 有网络就能用 、还可以把ocr结果非中文翻译成中文、同样可以识别中英日韩等60多个国家语言并翻译成中文,十分的nice 1、所需环境 windows10及其以上…...
linux下端口映射
linux下端口映射 1. 允许数据包转发 echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i [内网网卡名称] -j ACCEPTiptables -t nat -A POSTROUTING -s [内网网段] -o [外网网卡名称] -j MASQUERADE# 例:…...
C++ 迭代器(iterator)
迭代器介绍 迭代器(iterator):容器类型内置的“指针” - 使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另一个元素。 - 有迭代器的类型都拥有 begin 和 end 成员- begin:返回指向第一个元素(或字…...
基于Python3搭建qt开发环境
Python可视化编程相信大部分刚接触都是tkinter,tkinter是Python自带的库,不需要安装第三方库即可使用,在我的Python专栏中也有很多基于tkinter来设计的可视化界面。本篇文章将尝试另外一个Python的可视化编程库(pyqt),与tkinter编…...
Linux常见操作命令(1)
前言:作者也是初学Linux,可能总结的还不是很到位 ♈️今日夜电波:达尔文—林俊杰 0:30━━━━━━️💟──────── 4:06 🔄 ◀️ …...
GEO生信数据挖掘(一)数据集下载和初步观察
检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 GEOquery 简介 安装并加载GEOquery包 getGEO函数获取数据(联网下载) 更换下载数据源 对数据集进行初步观察处理 GEOquery 简介 GEOquery是一个…...
Tensorflow2 GPU 安装方法
一、Tensorflow2 GPU 安装方法 1. 首先安装Anaconda3环境2. 在Anaconda Prompt 中安装tensorflow23. 验证GPU是否可以使用 1. 首先安装Anaconda3环境 https://www.anaconda.com/ 2. 在Anaconda Prompt 中安装tensorflow2 conda update conda conda create -n tensorflow pyt…...
QSS之QLineEdit
QLineEdit我们在开发过程中是经常使用的,一般情况下默认的风格是不适合设计师的要求,本篇介绍QLineEdit的基本qss风格: 1.基本属性设置 QLineEdit{background-color:#FFFFFF;color:#333333;border:none;} 2.悬浮状态设置 QLineEdit:hover…...
在比特币上支持椭圆曲线 BLS12–381
通过使用智能合约实现来支持任何曲线 BLS12–381 是一种较新的配对友好型椭圆曲线。 与常用的 BN-256 曲线相比,BLS12-381 的安全性明显更高,并且安全目标是 128 位。 所有其他区块链,例如 Zcash 和以太坊,都必须通过硬分叉才能升…...
简单讲解 glm::mat4
文章目录 前言一、下载glm库二、基本数学知识1. 三维中的 4 x 4 矩阵2.旋转3. 位移4. 缩放5. 组合 三、行向量或列向量四、总结 前言 glm库是OpenGL的官方数学库,里面内置多种跟几何变换相关的函数,熟练掌握glm库可以省下很多麻烦。 因为最近在项目中主…...
第3章-指标体系与数据可视化-3.1.1-Matplotlib绘图库
目录 3.1 Python可视化 3.1.1 Matplotlib绘图库 1. 线图 2. 饼图 3. 条形图 4. 直方图 5.散点图...
探索视听新纪元: ChatGPT的最新语音和图像功能全解析
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🤖 人工智能 AI: 🧠 Machine …...
华为乾坤区县教育安全云服务解决方案(1)
华为乾坤区县教育安全云服务解决方案(1) 课程地址方案背景客户痛点分析区县教育网概述区县教育网业务概述区县教育网业务安全风险分析区县教育网安全运维现状分析区县教育网安全建设痛点分析 安全解决方案功能概述架构概述方案架构设备选型 课程地址 本…...
《Jetpack Compose从入门到实战》第三章 定制 UI 视图
目录 配置颜色、字体与形状Welcome PageLogin PageHome Page 主题CompositionLocal 配置颜色、字体与形状 -ui.theme.Color.kt val pink100 Color(0xFFFFF1F1) val pink900 Color(0xFF3F2C2C) val white Color(0xFFFFFFFF) val white850 Color(0xD9FFFFFF) val gray Col…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...
yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
