git-cgi-server

command module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2018 License: Apache-2.0 Imports: 18 Imported by: 0

README

git-cgi-server

Simple Git Smart HTTP Server (using git-http-backend) written in Go.

What is Git Smart HTTP?

See: https://git-scm.com/book/en/v2/Git-on-the-Server-Smart-HTTP

Features

  • Cross-platform
  • Simple and lightweight
  • Support HTTP authentication (Basic and Digest)
  • Support TLS

Motivation

  • I don't want to open SSH only for Git access.
  • I don't want to use rich HTTP servers (such as Apache, nginx, etc.) only for Git.
  • I don't want to change owner of repositories to the httpd user (such as httpd, www-data, etc.)
  • I want to launch easily without any complex installation and configuration.

Requirement

  • Git (including git-http-backend)

Install

go get github.com/pasela/git-cgi-server

Usage

git-cgi-server [OPTIONS] [REPOS_DIR]

Export all repositories:

git-cgi-server --export-all /path/to/repos

Enable Basic authentication:

git-cgi-server --basic-auth-file=/path/to/.htpasswd --auth-realm=MyGitRepos /path/to/repos

Use TLS:

git-cgi-server --cert-file=/path/to/server.crt --key-file=/path/to/server.key /path/to/repos

See git-cgi-server -h for more options.

Running git-cgi-server behind reverse proxy server

You can also serve git-cgi-server with reverse proxy.

Apache example: /etc/httpd/conf.d/git.conf

# Git Smart HTTP
ProxyPass /git http://localhost:10789/git
ProxyPassReverse /git http://localhost:10789/git
git-cgi-server" \
    --addr=:10789 \
    --digest-auth-file=/path/to/.htdigest \
    --auth-realm=Git \
    --uri-prefix=/git/ \
    --export-all \
    /path/to/repos

License

Apache 2.0 License

Author

Yuki (a.k.a. pasela)

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL