Olgitbridge #
Olgitbridge: Overleaf Git Bridge
鉴于 Overleaf 开源版本无法集成 git,在 github 上逛了一圈发现还是olgitbridge最好用,本篇博客做部署和使用的相关介绍。
😋github 上的介绍 / 机翻过来作为参考
另一个 Overleaf git 桥。这个方法允许你通过 git 在 Overleaf 社区版(CE)或 Pro 服务器上拉取和推送更改,就像官方 Overleaf SaaS 宣布中展示的一样。只需使用 git clone http://your.server.invalid/
,你的项目 ID 可以从你的 Overleaf 实例中查看。 这个 gitbridge 使用 Overleaf 的 web API 来同步更改。这意味着它不需要运行在与 Overleaf 相同的服务器上。实际上,建议在另一台服务器上运行它,以便可以直接使用 https 端口 443。 请注意,与云版本不同,这个桥不使用实时更改操作,任何通过 git 修改的文件都会在在线编辑器中导致“此文件已被外部修改”的中断。
A.部署 #
使用 DockerFile 部署
- 1、clone 代码 chazeon/olgitbridge: Overleaf git bridge, fork of https://gitlab.com/axkibe/olgitbridge with support for the Overleaf v4 frontend
- 2、修改 config.js,创建 data 文件夹
- 3、修改 dockerfile 与 src/server.js,构建 image
2、修改 config.js
// overleaf server
// 修改为我们的overleaf server ip + port
config.olServer = "http://192.168.10.4:9999";
// used if all the working directories in one place
// must be absolute path ending with '/'
config.baseDir = "/var/olgitbridge/data/";
创建 data 文件夹 /var/olgitbridge/data/,以便后续挂载
3、修改 dockerfile,构建 image 3.1、dockerfile
FROM node:18.14.2-slim
WORKDIR /var/olgitbridge/
COPY . .
RUN apt-get update && apt-get upgrade -y && apt-get install --no-install-recommends git ca-certificates -y && apt-get clean
RUN npm install
RUN git config --global user.email "[email protected]" && git config --global user.name "Overleaf Git Bridge"
RUN mkdir -p /var/olgitbridge/data
EXPOSE 5000
ENTRYPOINT [ "node", "src/server.js" ]
构建
docker build -t olgitbridge:latest -f Dockerfile .
值得注意的是,这里设置的 git user,将会被作为后续你 pull / push overleaf latex 时的 user 使用,这里推荐可以改成自己的
RUN git config --global user.email "[email protected]" && git config --global user.name "Overleaf Git Bridge"
另外,如果使用自己的 user,可以顺手修改 src/server.js
// await git.save( count, project.padDir, 'synced by olgitbridge' );
await git.save(count, project.padDir, "synced with olgitbridge by your name");
3.2、docker run v1,仅仅挂载 data 目录
docker run -d --name olgitbridge \
-v ./data:/var/olgitbridge/data
-p 5000:5000 \
--restart unless-stopped \
olgitbridge:latest
docker run -d --name olgitbridge -v ./data:/var/olgitbridge/data -p 5000:5000 --restart unless-stopped olgitbridge:latest
3.3、docker run v2,挂载 olgitbridge 整个源码目录
3.4、检查命令
docker logs -f olgitbridge # 看日志
docker ps # 看是否在跑
docker exec -it olgitbridge sh # 进容器
B.使用 #
1、直接使用 git 拉取
git clone http://localhost:5000/<project-id>
- project-id 在 overleaf 对应文档的网页后缀中可得
2、拉取完成后 origin 仓库
➜ git remote -v
origin http://localhost:5000/694b4ac659ee1b0088f18f2d (fetch)
origin http://localhost:5000/694b4ac659ee1b0088f18f2d (push)
3、添加 github 仓库
git remote add gh xxx
# 可得
➜ git remote -v
gh [email protected]:Username/xxx.git (fetch)
gh [email protected]:Username/xxx.git (push)
4、使用
# 与overleaf互相同步
git pull
git push
# 相应的、与gh同步
git pull gh
git push gh