You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Silberengel 23df37fff6 fix cli sync and refine commit workflow 3 weeks ago
docs fix cli sync and refine commit workflow 3 weeks ago
gitrepublic-cli@daafc006e7 added push-all to the cli 3 weeks ago
k8s revamp tutoral and ReadMe documentation 3 weeks ago
nostr fix cli sync and refine commit workflow 3 weeks ago
scripts fix cli sync and refine commit workflow 3 weeks ago
src fix cli sync and refine commit workflow 3 weeks ago
static bug-fixes 3 weeks ago
.dockerignore bug-fixes 3 weeks ago
.gitignore enter over a splash page, to encourage login 4 weeks ago
.npmignore setup separate repos 3 weeks ago
Dockerfile fix file management and refactor 3 weeks ago
LICENSE update docs 3 weeks ago
README.md revamp tutoral and ReadMe documentation 3 weeks ago
docker-compose.yml fix file management and refactor 3 weeks ago
docker-entrypoint.sh fix file management and refactor 3 weeks ago
package-lock.json fix swagger 3 weeks ago
package.json setup separate repos 3 weeks ago
svelte.config.js bug-fixes 4 weeks ago
tsconfig.json initial commit 4 weeks ago
vite.config.ts pass announcement 3 weeks ago

README.md

GitRepublic

A decentralized, Nostr-based git server that enables git repository hosting and collaboration using Nostr events. Repositories are announced via NIP-34, and all operations (clone, push, pull) are authenticated using NIP-98 HTTP authentication.

Quick Start

Web Interface

  1. Start the server: npm run dev
  2. Open browser: http://localhost:5173
  3. Connect NIP-07 extension (Alby, nos2x, etc.)
  4. Visit /signup to create your first repository

Command Line Interface

# Install
npm install -g gitrepublic-cli

# Set your Nostr private key
export NOSTRGIT_SECRET_KEY="nsec1..."

# Setup (configures credential helper and commit hook)
gitrep-setup

For complete CLI documentation and all available commands, run:

gitrep --help

Documentation

Complete documentation is available in the docs directory:

Key Topics

Components

GitRepublic consists of three main components:

  1. Web Interface - Full-featured web application for browsing, editing, and managing repositories
  2. Command Line Interface (CLI) - Git wrapper and API client for command-line operations
  3. REST API - Complete API for programmatic access

All three interfaces use the same underlying Nostr-based authentication and repository management system.

Installation

Development

git clone https://github.com/silberengel/gitrepublic-web.git
cd gitrepublic-web
npm install
npm run dev

Production

See deployment documentation in the docs directory.

API Access

All API endpoints are documented in OpenAPI format. Access the API documentation at:

  • Development: http://localhost:5173/api/openapi.json
  • Production: https://your-domain.com/api/openapi.json

Use NIP-98 authentication for all write operations.

Server Administration

For server administrators and DevOps engineers:

Deployment Modes

GitRepublic supports two deployment modes:

  • Lightweight Mode (default): Single container deployment with application-level security
  • Enterprise Mode: Kubernetes-based multi-tenant deployment with complete isolation

See Deployment Modes Documentation for detailed comparison.

Enterprise Mode (Kubernetes)

For production multi-tenant deployments with maximum security and isolation:

  • Enterprise Mode Setup Guide - Complete Kubernetes deployment guide
    • Container-per-tenant architecture
    • Network isolation with Kubernetes Network Policies
    • Resource quotas and limits
    • PersistentVolume per tenant
    • Ingress configuration
    • Monitoring and troubleshooting

Configuration

Key environment variables for server configuration:

  • ENTERPRISE_MODE: Enable enterprise mode (true/false)
  • GIT_REPO_ROOT: Path to store git repositories (default: /repos)
  • GIT_DOMAIN: Domain for git repositories (default: localhost:6543)
  • NOSTR_RELAYS: Comma-separated Nostr relays
  • MAX_REPOS_PER_USER: Maximum repositories per user (default: 100)
  • MAX_DISK_QUOTA_PER_USER: Maximum disk quota per user in bytes (default: 10737418240 = 10GB)
  • RATE_LIMIT_ENABLED: Enable rate limiting (default: true)
  • AUDIT_LOGGING_ENABLED: Enable audit logging (default: true)

See the deployment modes documentation and enterprise mode guide for complete configuration details.

License

MIT