# GitPad A lightweight git web interface with: * **editing support** (create, edit, move and remove files) * **Markdown rendering** (for files named `*.md`, requires the `md` feature) * a **multi-user mode** (each user gets their own private branch) You can install GitPad with: ``` $ cargo install gitpad ``` GitPad needs to be started from inside of a bare Git repository. For example: ``` $ git init --bare example.git $ cd example.git/ $ gitpad Listening on http://127.0.0.1:8000 ``` By default GitPad is in single-user mode, serving the branch pointed to by `HEAD`. ## Multi-user mode Multi-user mode requires you to set up a reverse-proxy that authenticates users and sets the `Username` header. Every user gets their own private Git branch, named exactly like their username and served under `/~{username}`. The simplest authentication mechanism is HTTP Basic Auth. With NGINX a reverse-proxy could be configured as follows: ```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; } } ``` For instructions on how to create the `auth_basic_user_file`, refer to the [NGINX documentation](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/). Once you have set this up start GitPad in multi-user mode by running it with the `-m` flag. ## Configuring committer identities In single-user mode GitPad just uses the committer identity from your git config. In multi-user mode GitPad defaults to `{username} <{username}@localhost.invalid>`. Committer identities can be configured by creating a `users.toml` file in the `gitpad` branch, with sections like the following: ```toml [johndoe] name = "John Doe" email = "john@example.com" ``` ## Contributing Feedback, bug reports and suggestions are welcome!