When enabled, changes are automatically committed every 10 minutes if there are unsaved changes.
{#if userName.trim()} Custom value saved. Default would be: {presetUserName} {:else} Will use: {presetUserName} (from your Nostr profile: display_name → name → shortened npub) {/if}
{/if}Your name as it will appear in git commits. Leave empty to use the preset value from your Nostr profile.
{#if userEmail.trim()} Custom value saved. Default would be: {presetUserEmail} {:else} Will use: {presetUserEmail} (from your Nostr profile: NIP-05 → shortenednpub@gitrepublic.web) {/if}
{/if}Your email as it will appear in git commits. Leave empty to use the preset value from your Nostr profile.
Default branch name to use when creating new repositories. This will be used as the base branch when creating the first branch in a new repo.
Environment variables and server settings. Configure these in your environment or process manager.
{#if loadingConfig}Loading configuration status...
{:else if configStatus}Purpose: GitHub Personal Access Token for API authentication
Why needed: Without a token, you're limited to 60 requests/hour per IP. With a token, you get 5,000 requests/hour.
How to set: export GITHUB_TOKEN=your_token_here
How to create: GitHub Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic) with public_repo scope
GIT_REPO_ROOT: Directory where repositories are stored (default: /repos)
GIT_DOMAIN: Domain for git clone URLs (default: localhost:6543)
DEFAULT_BRANCH: Default branch name for new repositories (default: master)
GIT_OPERATION_TIMEOUT_MS: Timeout for git operations in milliseconds (default: 300000 = 5 minutes)
GIT_CLONE_TIMEOUT_MS: Timeout for git clone operations (default: 300000 = 5 minutes)
ALLOW_FORCE_PUSH: Allow force push operations (default: false)
NOSTR_RELAYS: Comma-separated list of Nostr relays for publishing/fetching (default: wss://theforest.nostr1.com,wss://nostr.land)
NOSTR_SEARCH_RELAYS: Comma-separated list of relays for searching (uses extended default list if not set)
NIP98_AUTH_WINDOW_SECONDS: Authentication window for NIP-98 HTTP auth (default: 60 seconds)
TOR_SOCKS_PROXY: Tor SOCKS proxy address (format: host:port, default: 127.0.0.1:9050, set to empty to disable)
TOR_HOSTNAME_FILE: Path to file containing Tor hidden service hostname
TOR_ONION_ADDRESS: Tor .onion address for the service
ADMIN_PUBKEYS: Comma-separated list of admin pubkeys (hex format) with elevated privileges
AUDIT_LOGGING_ENABLED: Enable audit logging (default: true, set to false to disable)
AUDIT_LOG_FILE: Path to audit log file (uses default if not set)
AUDIT_LOG_RETENTION_DAYS: Number of days to retain audit logs (default: 90)
RATE_LIMIT_ENABLED: Enable rate limiting (default: true, set to false to disable)
RATE_LIMIT_WINDOW_MS: Rate limit window in milliseconds (default: 60000 = 1 minute)
MAX_REPOS_PER_USER: Maximum number of repositories per user (default: 100)
MAX_DISK_QUOTA_PER_USER: Maximum disk quota per user in bytes (default: 10737418240 = 10 GB)
MESSAGING_PREFS_ENCRYPTION_KEY: Encryption key for messaging preferences
MESSAGING_SALT_ENCRYPTION_KEY: Encryption key for salt values
MESSAGING_LOOKUP_SECRET: Secret for message lookup operations
ENTERPRISE_MODE: Enable enterprise mode for Kubernetes container-per-tenant architecture (default: false, set to true to enable)
Failed to load configuration status.
{/if}