From d0cb5e2318d1859f2dc9027151b4e4f1c973c6a1 Mon Sep 17 00:00:00 2001 From: Max Resnick Date: Sat, 29 Oct 2022 08:41:15 -0700 Subject: initial commit --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..8fbd96e --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# go-git-server + +`go-git-server` is an experimental web server that provides authentication and authorization for git repositories. + +## Design + +Initially `go-git-server` wraps the built-in git-http-backend CGI process. This is done to provide complete compatibility out of the box. In the future a native go backend could be created but there's no compelling story to re-write the backend. + +Authentication is done using a token that is generated by the server and is a fixed length 28 with the full 255 character range vs the normal ASCII range. The secret is then base64 encoded. Potentially in the future an OAuth token or client side TLS could be implemented. + +Authorization is implemented using [casbin.](https://github.com/casbin/casbin) Casbin allows for a flexible authorization models that can potentially provide some extensive controls. + +## Focus + +The current focus is for a single user and CI user(s) and intends to become self hosted as soon as possible. The focus is to simplify ongoing maintance and hosting simplicity. It's specifically designed for running in kubernetes. + +## Why + +Tools like gitea are great, but they require things like a DBMS. This increases hosting comlexity and maintenance especially for small teams or single user bases. -- cgit v1.2.3