aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2022-10-29 08:41:15 -0700
committerMax Resnick <max@ofmax.li>2022-10-29 08:45:29 -0700
commitd0cb5e2318d1859f2dc9027151b4e4f1c973c6a1 (patch)
treee6b0b6cf1a88a773f4f3b84e6949a73621d50a0f /README.md
downloadgo-git-server-d0cb5e2318d1859f2dc9027151b4e4f1c973c6a1.tar.gz
initial commit
Diffstat (limited to 'README.md')
-rw-r--r--README.md19
1 files changed, 19 insertions, 0 deletions
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.