阿里云服务器部署ShareLaTex(Overleaf)

阿里云服务器部署ShareLaTex(Overleaf)

使用docker在服务器上部署ShareLaTex,这里服务器使用阿里云的ECS,操作系统为ubuntu16.04

0.准备工作

将apt的下载源换位国内镜像,在这里不再赘述

1.安装docker

首先卸载旧版本的docker

sudo apt-get remove docker docker-engine docker.io containerd runc

安装依赖

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

添加 GPG 密钥

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add –

设置 docker 仓库

sudo add-apt-repository \
     "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
     $(lsb_release -cs) stable"

安装 docker-ce

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

更换国内镜像源(这里推荐用阿里的镜像)

sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://c6j7pq1p.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

2.部署overleaf

拉取ShareLaTeX镜像

docker pull sharelatex/sharelatex

创建挂载目录

mkdir ~/sharelatex	# 在用户目录下创建sharelatex、mongo_data、redis_data文件夹(这里使用的是root用户)
mkdir ~/mongo_data
mkdir ~/redis_data
cd ~/sharelatex	# 进入sharelatex文件夹

配置挂载目录

pip install docker-compose	#安装docker-compose
#下载docker-compose.yml配置文件:
curl -O https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml

sudo vim docker-compose.yml	#使用vim修改配置文件:

修改以下内容

# 避免端口重复(若80端口占用,可以使用其他端口,例如使用5000端口:- 5000:80)
    ports:
        - 80:80

# 修改本地挂载目录
    volumes:
        - /root/sharelatex:/var/lib/sharelatex

# 修改mongo和redis的本地挂载目录
mongo:
    volumes:
        - /root/mongo_data:/data/db
redis:
    volumes:
        - /root/redis_data:/data

创建并运行容器

docker-compose up -d
  • 此时创建了三个容器sharelatexmongoredis。输入docker ps查看

安装完整texlive

# 进入容器
docker exec -it sharelatex bash

# 进入texlive默认安装目录
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.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/

# 升级tlmgr
tlmgr update --self --all

# 更新字体缓存
luaotfload-tool -fu

# 安装完整版texlive(时间一两个小时左右,不要让shell断开)
tlmgr install scheme-full

# 退出sharelatex的命令行界面并重启
exit
docker restart sharelatex

安装中文字体

  • 将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
#此时会出现已经安装的中文字体

重启服务

docker restart sharelatex

创建账号

  • 浏览器访问服务器公网IP http://182.xx.xx.xx/launchpad 建立管理员账号(如果不是设置的80端口则需要加上端口号:http://182.xx.xx.xx:5000/launchpad)
  • 通过管理员账号可以继续注册普通用户账号
    阿里云服务器部署ShareLaTex(Overleaf)_第1张图片

尝试过配置邮件发送,但似乎并没有成功,在这里也不再介绍,如果有解决了的朋友欢迎留言指教 ( ⊙ o ⊙ )

你可能感兴趣的:(服务器相关)