服务器部署Overleaf

1.配置基本环境

1.1安装docker

1
2
sudo apt-get install docker-ce docker-ce-cli containerd.io
pip install docker-compose

查看版本,检查是否安装成功

1
2
docker --version
docker-compose --version

2.运行容器

2.1拉取镜像

1
docker pull sharelatex/sharelatex

2.2配置Overleaf

1
2
wget https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml
sudo vim docker-compose.yml
1
2
3
4
# 【可选】配置端口
ports: - 80:80
# 【可选】80端口如果被占用要改为别的端口,如5000
ports: - 5000:80
1
2
3
# 【可选】修改各个映射到本地文件路径
volumes:
- /your_path/your_dir:/var/lib/sharelatex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 配置邮件,这个测试好多组合,下面是可以的
SHARELATEX_SITE_URL: http://latex.tool.zlogs.net
# SHARELATEX_NAV_TITLE: Our ShareLaTeX Instance
# SHARELATEX_HEADER_IMAGE_URL: http://somewhere.com/mylogo.png
SHARELATEX_ADMIN_EMAIL: "admin@zlogs.net"

# SHARELATEX_LEFT_FOOTER: '[{"text": "Powered by <a href=\"https://www.sharelatex.com\">ShareLaTeX</a> 2016"},{"text": "Another page I want to link to can be found <a href=\"here\">here</a>"} ]'
# SHARELATEX_RIGHT_FOOTER: '[{"text": "Hello I am on the Right"} ]'

SHARELATEX_EMAIL_FROM_ADDRESS: "robot@zlogs.net"

# SHARELATEX_EMAIL_AWS_SES_ACCESS_KEY_ID:
# SHARELATEX_EMAIL_AWS_SES_SECRET_KEY:

SHARELATEX_EMAIL_SMTP_HOST: "smtp.xxxx.com"
SHARELATEX_EMAIL_SMTP_PORT: "465"
SHARELATEX_EMAIL_SMTP_SECURE: "true"
SHARELATEX_EMAIL_SMTP_USER: "robot@zlogs.net"
SHARELATEX_EMAIL_SMTP_PASS: "my_mail_password_here"
SHARELATEX_EMAIL_SMTP_TLS_REJECT_UNAUTH: "false"
SHARELATEX_EMAIL_SMTP_IGNORE_TLS: "false"
# SHARELATEX_EMAIL_SMTP_NAME: '127.0.0.1'
# SHARELATEX_EMAIL_SMTP_LOGGER: true
SHARELATEX_CUSTOM_EMAIL_FOOTER: "Welcome To https://latex.tool.zlogs.net"

2.3启动

进入docker-compose.yml所在根目录执行

1
2
3
4
5
6
7
docker-compose up -d

# 停止使用命令
# docker-compose down

# 重启
# docker restart sharelatex

2.4.安装完整texlive

  • 进入docker容器
1
docker exec -it sharelatex bash
  • 【可选】换源
1
2
3
4
5
# 清华源
tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/

# 腾讯源
tlmgr option repository https://mirrors.cloud.tencent.com/CTAN/systems/texlive/tlnet/
  • 【可选】更新
1
2
3
4
5
6
7
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh

sh update-tlmgr-latest.sh -- --upgrade

tlmgr update --self --all

# 如果提升 tlmgr: no updates available ; 可能是因为已经更新了,可能是因为源有问题,可能是因为老版本已经不维护更新了
  • 在docker中安装编译所需的完整的texlive
1
2
3
4
5
6
7
8
# 
tlmgr install scheme-full

# 要很长时间,可以放在后台
nohup tlmgr install scheme-full > install.log 2>&1 &

# 查看日志
tail -6 install.log

2.5配置反向代理【可选】

如果第3步修改了映射端口为5000,则可能需要反向代理.

  • 宝塔可能要修改反向配置文件为下面内容,如果直接默认的话,每次加载项目文档会卡卡的,甚至提示XXX加载错误
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#PROXY-START/
location ~* \.(php|jsp|cgi|asp|aspx)$
{
proxy_pass http://127.0.0.1:5200;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
location /
{
proxy_pass http://127.0.0.1:5200;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 3m;
proxy_send_timeout 3m;

add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
proxy_ignore_headers Set-Cookie Cache-Control expires;
add_header Cache-Control no-cache;
expires 12h;
}

#PROXY-END/

2.6创建管理员用户

浏览器打开http://yoursite_address:5000/launchpadhttp://yoursite_address/launchpad,创建Admin账户,

3.配置中文环境

字体安装

3.1寻找字体

  • 字体格式xxx.ttfxxx.otf;其中xxx.fon格式不可用,要删掉
    • windows在C:\windows\fonts目录
    • GitHub上可找到公开的Adobe Song Std字体

3.2复制到镜像root目录

1
2
3
# 所有字体压缩到yourfonts.tar.gz
# 再放到镜像root目录
docker cp yourfonts.tar.gz sharelatex:/root

3.3在容器中安装Windows字体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 进入容器的命令行界面
docker exec -it sharelatex bash

# 通过安装wqy字体同时安装xfont工具
apt-get update
apt-get install xfonts-wqy

# 进入root目录,解压winfonts.tar.gz,并剪切到系统字体目录下
cd ~
tar -zxvf yourfonts.tar.gz
mv yourfonts /usr/share/fonts/
#

# 进入字体目录安装字体
cd /usr/share/fonts/yourfonts

mkfontscale
mkfontdir
fc-cache -fv

# 检查确认中文字体安装成功
fc-list :lang=zh-cn

3.4使用

  • 回到ShareLaTeX网站,创建一个新项目,

  • 使用CTEX宏集(如\documentclass{ctexart})和XeLaTeX编译器,即可生成中文pdf

3.5注意

字体安装方式二

直接安装包,但是无法指定字体,只能默认,而且中文可能混有个别细字体。

1
2
apt-get install  latex-cjk-all
apt-get remove latex-cjk-all

不要使用,可能会出现识别为debain问题,导致无法编译

安装引擎

如果xelatex引擎无法使用,需要重新安装xetex,如下:

1
apt-get install texlive-xetex

安装完整版

上面安装方式可能导致版本不一致,需要换源或者重新安装完整版,可能版本比较旧

1
apt-get install texlive-full

也可以直接改dockerfile里面的docker镜像,直接完整版本。

参考