# ngit-grasp Configuration # # Configuration Priority (highest to lowest): # 1. CLI flags (e.g., --domain example.com) # 2. Environment variables (e.g., NGIT_DOMAIN=example.com) # 3. This .env file # 4. Built-in defaults # # Run `ngit-grasp --help` for all CLI options # ============================================================================ # REQUIRED # ============================================================================ # Domain where this instance is hosted (required, used in GRASP validation) # CLI: --domain # No default - must be set # NGIT_DOMAIN= # ============================================================================ # SERVER CONFIGURATION # ============================================================================ # Server bind address (IP:PORT) # CLI: --bind-address
# Default: 127.0.0.1:8080 # NGIT_BIND_ADDRESS=127.0.0.1:8080 # ============================================================================ # RELAY INFORMATION (NIP-11) # ============================================================================ # Owner's npub (optional, for relay info in NIP-11) # CLI: --owner-npub # Default: (none) # NGIT_OWNER_NPUB=npub1... # Relay name shown in NIP-11 information document # CLI: --relay-name # Default: ${domain} grasp relay (e.g., "gitnostr.com grasp relay") # NGIT_RELAY_NAME=My GRASP Relay # Relay description shown in NIP-11 information document # CLI: --relay-description # Default: Git Nostr Relay - a grasp implementation # NGIT_RELAY_DESCRIPTION="A GRASP-compliant Git relay with Nostr authorization" # ============================================================================ # STORAGE # ============================================================================ # Path to store Git repositories # CLI: --git-data-path # Default: ./data/git # NGIT_GIT_DATA_PATH=./data/git # Path to store Nostr relay data # CLI: --relay-data-path # Default: ./data/relay # NGIT_RELAY_DATA_PATH=./data/relay # Database backend for Nostr events # CLI: --database-backend # Options: lmdb, memory, nostrdb # Default: lmdb # - lmdb: LMDB backend (persistent, general purpose) - RECOMMENDED # - memory: In-memory database (fastest, no persistence, uses temp dirs) # - nostrdb: NostrDB backend (persistent, Nostr-optimized) [Not yet implemented] # # Note: When using 'memory' backend, git_data_path and relay_data_path # are automatically set to temporary directories for ephemeral testing. # NGIT_DATABASE_BACKEND=lmdb # ============================================================================ # METRICS # ============================================================================ # Enable Prometheus metrics endpoint at /metrics # CLI: --metrics-enabled # Default: true # NGIT_METRICS_ENABLED=true # Connections per IP before flagging as potential abuse in metrics # (display only, no rate limiting - purely for monitoring visibility) # CLI: --metrics-connection-per-ip-abuse-threshold # Default: 10 # NGIT_METRICS_CONNECTION_PER_IP_ABUSE_THRESHOLD=10 # Number of top bandwidth repositories to track in metrics # CLI: --metrics-top-n-repos # Default: 10 # NGIT_METRICS_TOP_N_REPOS=10 # ============================================================================ # LOGGING # ============================================================================ # Rust log level (not a ngit-grasp config, but useful for debugging) # Options: error, warn, info, debug, trace # RUST_LOG=info # ============================================================================ # FUTURE/PLANNED OPTIONS (not yet implemented) # ============================================================================ # Proactive sync settings (GRASP-02) # NGIT_PROACTIVE_SYNC_ENABLED=true # NGIT_PROACTIVE_SYNC_INTERVAL_SECS=3600 # Archive mode (GRASP-05) # NGIT_ARCHIVE_MODE=false