#git #markdown #wiki #web-interface #git-branch

app gitpad

一个支持编辑和 Markdown 的 git 网页界面

2 个版本

0.1.1 2021 年 6 月 23 日
0.1.0 2021 年 6 月 22 日

#23#web-interface

MIT 许可证

76KB
2K SLoC

GitPad

一个轻量级的 git 网页界面,具有

  • 编辑支持(创建、编辑、移动和删除文件)
  • Markdown 渲染(针对以 *.md 命名的文件)
  • 支持多用户模式,文件共享和协作编辑

您可以使用以下方式安装 GitPad

$ cargo install gitpad

GitPad 需要从裸 Git 仓库内部启动。例如

$ git init --bare example.git
$ cd example.git/
$ gitpad
Listening on http://127.0.0.1:8000

文件在 /~{branch}/{path} 下提供服务,例如 /~hello/world.md 指的是 world.md 文件在 hello 分支中。默认情况下,GitPad 在单用户模式下,允许用户查看和编辑所有分支(以及创建新分支)。

多用户模式

多用户模式需要您设置一个反向代理,该代理对用户进行身份验证并设置 Username 头。最简单的身份验证机制是 HTTP 基本认证。使用 NGINX,反向代理可以配置如下

server {
    listen 80;
    listen [::]:80;

    server_name notes.localhost;
    client_max_body_size 5M;

    location / {
        auth_basic 'Restricted';
        auth_basic_user_file /etc/nginx/gitpad_passwd;
        proxy_set_header Username $remote_user;

        proxy_pass http://localhost:8000;

        # Or if you start GitPad with --socket /srv/sockets/gitpad.sock
        # proxy_pass http://unix:/srv/sockets/gitpad.sock:/;
    }
}

有关创建 auth_basic_user_file 的说明,请参阅 NGINX 文档

设置完成后,通过使用 -m 标志运行 GitPad 以在多用户模式下启动。

在多用户模式下,每个用户都有自己的 Git 分支,其名称与用户名完全相同。默认情况下,您的分支是私有的,其他用户无法访问您的文件。但是,用户可以通过创建一个 .shares.txt 文件与其他用户共享文件/目录。

配置提交者身份

在单用户模式下,GitPad 仅使用您 git 配置中的提交者身份。

在多用户模式下,GitPad 默认为 {username} <{username}@localhost.invalid>。提交者身份可以通过在 gitpad 分支中创建一个 users.toml 文件来配置,例如以下部分

[johndoe]
name = "John Doe"
email = "[email protected]"

贡献

欢迎反馈、错误报告和建议!

依赖项

~20–34MB
~603K SLoC