自建Overleaf
Overleaf免费版有编译时长限制20s,尽管目前的论文并不需要编译这么久,但防患于未然,日后的毕业论文必然是“长篇大论”。
因此摸索着在自己服务器上搭建了overleaf,供自己使用,优点在于:
- 完全免费
- 自主可控
参考了docker官网和overleaf官网的文档,整理了一套完整的流程并根据此流程搭建完成。
以下是部分示例图,99%复刻。
登陆界面

项目界面

1. 安装docker
#更新包管理工具
sudo apt-get update
# 添加Docker软件包源,此处为官方文档内容
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
#安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动Docker
sudo systemctl start docker
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker
2. 安装overleaf-tookit
# 下载官方toolkit
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
# 进入到toolkit目录
cd ./overleaf-toolkit
# 看一下有什么(可选)
ls -l
3. 初始化
# 执行初始化
bin/init
# 看一下(可选)
ls config
4. 配置
# 用nano或vim编辑环境变量文件
nano config/variables.env
# 修改这些变量
OVERLEAF_SITE_URL=http://你的公网IP
OVERLEAF_ADMIN_EMAIL=you@example.com
OVERLEAF_SITE_LANGUAGE=zh-CN
# 启动
# 如果出现网络之类的报错,考虑第5步再执行。
bin/up # 或者 bin/up -d 后台执行
docker compose ps
5. docker镜像加速
# 方法一:镜像站(能自己代理就自己代理,镜像站不稳定)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["此处粘贴镜像站地址,可以多加几个"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://fpl9tepg.mirror.aliyuncs.com"
]
}
EOF
# 方法二: 代理(启用VS Code的Remote Forward,端口转发)
# 新建文件
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
# 写入
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,::1"
systemctl daemon-reload
systemctl restart docker
bin/up -d
6. 初始化
# 创建管理员用户 http:网址/launchpad # 全UI操作
7. 升级到ful-scheme
# 升级
bin/bash
tlmgr install scheme-full
# 保存
cat config/version #6.0.1
docker commit sharelatex sharelatex/sharelatex:6.0.1-with-texlive-full
echo 6.0.1-with-texlive-full > config/version
# 重启服务
systemctl daemon-reload
systemctl restart docker
bin/up -d
至此,全流程结束