From 95c2851bfa543c3485942a45c526550c6335c2c9 Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Fri, 29 May 2026 01:04:48 -0400 Subject: [PATCH] docs: add README Signed-off-by: Xe Iaso --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6b51e99 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# objgit + +An experiment in storing git repositories in object storage. You probably don't need this. This is a proof of concept and doesn't really have a lot of uses yet. + +Notable features of objgit: + +- ssh, http, and git protocol support. +- [post-receive hooks](./docs/usage/hooks.md) powered by userspace sandboxed shells and [Kefka](https://xeiaso.net/blog/2026/dancing-mad-sandboxing/). +- basic prometheus metrics. +- no authentication whatsoever, if this ends up being actually useful then authentication will be implemented. + +## Design tradeoffs + +- All repos are stored in object storage, making the local filesystem irrelevant at the cost of making storage operations a bit more latent compared to the local filesystem. +- Post-receive hooks are stored in the repository, meaning that hooks are checked out from the repository on push. +- Right now all s3fs reads are completely buffered in memory before billy can use them, theoretically this means that the size limit for files is 2Gi. +- This is like very new and not tested in the slightest. + +## Future goals + +- Integration with Tekton for CI pipelines. +- Some kind of web UI using [the Xe Design System](https://design.within.website). +- Any kind of blogpost. +- Deployment to Kubernetes. +- HTTPS support with TLS termination. -- 2.51.2