零、说明
Overleaf 是现在流行的在线Latex编辑器,它继承了所见即所得、便于合作、版本管理等诸多好处。但是碍于overleaf主站在国外,同时一些团体会有创作内容内容安全性、隐私性的担忧,使用Github上开源的overleaf免费版搭建一个私有的Overleaf服务器成为一个很自然的选择。
本文参考Github上的官方搭建指南,结合自己的一些使用使用经验,介绍如何搭建和使用一个Overleaf服务器。
本文只适用于 Ubuntu 以及泛 Linux 系统下overleaf服务器的配置和安装,且假定读者已经能使用包管理进行一些简单的应用的安装。文中出现的 git
,vim
,docker
等都是老生常谈的工具了,没有请自行安装。
一、安装Overleaf
1. 使用overleaf toolkit安装
Overleaf toolkit 是简易安装和管理overleaf的工具。
首先,把toolkit拉到本地:
1 | git clone https://github.com/overleaf/toolkit.git ./overleaf |
然后进入overleaf文件夹,并执行具有初始化配置功能的二进制文件:
1 | cd ./overleaf |
初始化会在 config
文件夹下生成若干配置文件 overleaf.rc
,variables.env
和 version
,如何配置在下一节说明。
(注意:要先改配置文件,再执行bin/up
和拉取完整版的texlive,因为bin/up
实际上执行了docker run
,所以bin/up
后再改配置文件就于事无补了。详见评论区citrate
君的评论。)
执行具有初始化容器功能的二进制文件 bin/up
。由于 toolkit 使用 docker-compose
作为容器编排器,没有 docker-compose
的同学还需先安装一下:
1 | # apt install docker-compose |
这时,你理应看到 docker
在拉取 sharelatex
, mongo
和 redis
的镜像。拉取完成后这三个容器会被自动打开,会跳出满屏的执行log,这时你按下 CTRL-C
然后再执行 bin/start
就可以让它们后台运行了。
此时你在本地搭建的话,访问 http://localhost/launchpad
理应就有overleaf的网页了。
如果你是在远程服务器上搭建,你需要在 variables.env
里面把SHARELATEX_SITE_URL
项里的localhost改成yourIP[:port]
,yourIP
是你远程服务器的IP,port在overleaf.rc
里默认是80 (若为80访问地址里可缺省),同时打开服务器防火墙的80端口。重启一下服务(先执行 bin/stop
然后执行 bin/start
)然后访问 http://yourIP[:port]/launchpad
,就可以看到网页了。
(再次强调,如果这里你修改了overleaf.rc
,因为这个文件里的参数是容器启动的参数,启动后不可修改的,所以需要删除容器再执行bin/up
)
2. 下载完全版的latex环境
处于节省带宽的考虑,上一步拉取的 sharelatex
镜像是阉割版的,在使用各种库的时候会出现大量奇怪的报错。因此我们需要执行下面的命令来获取完整版的 sharelatex
:
1 | # 2022年5月更新:因为每年4月份texlive官方会更新版本,造成版本不匹配问题,拉取完整latex时候需要先检查texlive版本,然后拉取对应的完整版镜像 |
二、配置Overleaf
1. 常规配置
打开 variables.env
,修改这两项
1 | # 网站的名字 |
打开 overleaf.rc
,下面这里可以修改端口
1 | SHARELATEX_PORT=80 |
其他不动就可以了。当然可以通过改其他配置enable更多功能,只是我这暂时不需要了。
2. HTTPS 反向代理配置
打开 variables.env
,修改SHARELATEX_SITE_URL
为https地址
打开 nginx
的配置文件 nginx.conf
, 添加一个HTTPS server。应评论区要求,添加一个配置案例:
1 | http { |
三、注册管理员用户
这时候,理论上就可以通过
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
登录了。