- Update all route documentation comments - Update README, env.example, and starter-docs - Update install.sh
140 lines
4.0 KiB
Plaintext
140 lines
4.0 KiB
Plaintext
# ============================================
|
|
# Cashumints.space API Configuration
|
|
# ============================================
|
|
# Copy this file to .env and adjust values
|
|
#
|
|
# Production setup:
|
|
# cp env.example .env
|
|
# openssl rand -hex 32 # Generate ADMIN_API_KEY
|
|
# nano .env # Edit configuration
|
|
#
|
|
# ============================================
|
|
|
|
# ============================================
|
|
# Server Configuration
|
|
# ============================================
|
|
PORT=3000
|
|
HOST=0.0.0.0
|
|
NODE_ENV=production
|
|
|
|
# ============================================
|
|
# Admin Configuration
|
|
# ============================================
|
|
# API key for admin endpoints (REQUIRED in production)
|
|
# Generate a secure key: openssl rand -hex 32
|
|
ADMIN_API_KEY=
|
|
|
|
# ============================================
|
|
# Database Configuration
|
|
# ============================================
|
|
# SQLite database path (relative or absolute)
|
|
# Ensure the directory exists and is writable
|
|
DATABASE_PATH=./data/cashumints.db
|
|
|
|
# ============================================
|
|
# Probing Configuration
|
|
# ============================================
|
|
# Timeout for probe requests (milliseconds)
|
|
PROBE_TIMEOUT_MS=10000
|
|
|
|
# Probe interval for online mints (milliseconds)
|
|
# Default: 300000 (5 minutes)
|
|
PROBE_INTERVAL_ONLINE_MS=300000
|
|
|
|
# Probe interval for offline mints (milliseconds)
|
|
# Default: 900000 (15 minutes)
|
|
PROBE_INTERVAL_OFFLINE_MS=900000
|
|
|
|
# Number of consecutive failures before marking offline
|
|
CONSECUTIVE_FAILURES_OFFLINE=3
|
|
|
|
# Days offline before marking as abandoned
|
|
ABANDONED_AFTER_DAYS=30
|
|
|
|
# RTT threshold for degraded status (milliseconds)
|
|
DEGRADED_RTT_MS=2000
|
|
|
|
# ============================================
|
|
# Metadata Configuration (NUT-06)
|
|
# ============================================
|
|
# Minimum interval between metadata fetches (milliseconds)
|
|
# Default: 3600000 (1 hour)
|
|
METADATA_FETCH_INTERVAL_MS=3600000
|
|
|
|
# ============================================
|
|
# Nostr Configuration (NIP-87)
|
|
# ============================================
|
|
# Comma-separated list of Nostr relay URLs
|
|
# Reviews and mint announcements are ingested from these relays
|
|
NOSTR_RELAYS=wss://relay.damus.io,wss://relay.nostr.band,wss://relay.cashumints.space,wss://relay.primal.net,wss://purplepag.es
|
|
|
|
# ============================================
|
|
# Trust Score Configuration
|
|
# ============================================
|
|
# Component weights (should sum to ~100 before penalties)
|
|
TRUST_WEIGHT_UPTIME=40
|
|
TRUST_WEIGHT_SPEED=25
|
|
TRUST_WEIGHT_REVIEWS=20
|
|
TRUST_WEIGHT_IDENTITY=10
|
|
|
|
# Maximum penalty points for issues
|
|
TRUST_PENALTY_MAX=15
|
|
|
|
# ============================================
|
|
# Rate Limiting
|
|
# ============================================
|
|
# Time window for rate limiting (milliseconds)
|
|
# Default: 60000 (1 minute)
|
|
RATE_LIMIT_WINDOW_MS=60000
|
|
|
|
# Maximum requests per window per IP
|
|
RATE_LIMIT_MAX_REQUESTS=100
|
|
|
|
# ============================================
|
|
# CORS Configuration
|
|
# ============================================
|
|
# Allowed origins (comma-separated, use * for all)
|
|
CORS_ORIGINS=*
|
|
|
|
# ============================================
|
|
# Logging
|
|
# ============================================
|
|
# Log level: debug, info, warn, error
|
|
LOG_LEVEL=info
|
|
|
|
# Enable request logging (true/false)
|
|
REQUEST_LOGGING=true
|
|
|
|
# ============================================
|
|
# Plausible Analytics
|
|
# ============================================
|
|
# Self-hosted Plausible instance URL
|
|
PLAUSIBLE_URL=https://analytics.azzamo.net
|
|
|
|
# Plausible API key for stats access
|
|
# Generate from your Plausible dashboard: Settings > API Keys
|
|
PLAUSIBLE_API_KEY=
|
|
|
|
# Site ID/domain configured in Plausible
|
|
PLAUSIBLE_SITE_ID=cashumints.space
|
|
|
|
# ============================================
|
|
# Quick Reference
|
|
# ============================================
|
|
#
|
|
# Start API server:
|
|
# npm start
|
|
#
|
|
# Start workers:
|
|
# npm run workers
|
|
#
|
|
# Test health:
|
|
# curl http://localhost:3000/health
|
|
#
|
|
# Test admin (requires ADMIN_API_KEY):
|
|
# curl -H "X-Admin-Api-Key: YOUR_KEY" http://localhost:3000/admin/system/metrics
|
|
#
|
|
# View docs:
|
|
# open http://localhost:3000/docs
|
|
#
|