···11+# objgit
22+33+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.
44+55+Notable features of objgit:
66+77+- ssh, http, and git protocol support.
88+- [post-receive hooks](./docs/usage/hooks.md) powered by userspace sandboxed shells and [Kefka](https://xeiaso.net/blog/2026/dancing-mad-sandboxing/).
99+- basic prometheus metrics.
1010+- no authentication whatsoever, if this ends up being actually useful then authentication will be implemented.
1111+1212+## Design tradeoffs
1313+1414+- 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.
1515+- Post-receive hooks are stored in the repository, meaning that hooks are checked out from the repository on push.
1616+- 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.
1717+- This is like very new and not tested in the slightest.
1818+1919+## Future goals
2020+2121+- Integration with Tekton for CI pipelines.
2222+- Some kind of web UI using [the Xe Design System](https://design.within.website).
2323+- Any kind of blogpost.
2424+- Deployment to Kubernetes.
2525+- HTTPS support with TLS termination.