跳过正文
  1. blog/

Overleaf集成Git&Github

·868 字·
Blog Git Overleaf Latex
Aoidayo
作者
Aoidayo
懒人
目录

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 部署

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

相关文章

单电脑git多用户配置
·732 字
Blog Linux Git
Git 清除.git仓库历史记录中的高存储占用文件
·835 字
Blog Git