Self-host
You do not need to run infrastructure to use ngit. Self-host only when you want to provide repository storage, a relay, CI, or all three.
Choose the service
| You want to… | Run | Continue |
|---|---|---|
| Host Git objects and a repository-aware Nostr relay | ngit-grasp | Host repositories |
| Execute workflows and publish signed CI results | ngit-ci | Run CI |
| Offer both | both services | Deploy grasp first, then CI |
| Build a compatible hosting service | your own GRASP implementation | Read the GRASP reference |
The components are independent. ngit-ci can serve repositories announced through any compatible provider; ngit-grasp does not require CI.
A sensible production order
- Deploy
ngit-graspand verify its WebSocket relay and Git smart-HTTP paths. - Confirm persistent storage, backups, TLS, access policy, and metrics.
- Decide which repositories and workflow authors you are prepared to trust.
- Add
ngit-ciwith a container or microVM execution boundary.
The generated references contain the exhaustive settings. The overview pages focus on decisions, deployment shape, and verification.
What users see
A public GRASP service can be selected during repository creation:
bash
ngit init --name "My Project" \
--grasp-server grasp.example.com \
--defaultsA CI coordinator is selected independently:
bash
ngit ci request <COORDINATOR-NPUB>Neither choice makes the provider authoritative. Repository refs and collaboration state remain signed Nostr events.