Some checks failed
CI Pipeline / Run Tests (push) Has been cancelled
CI Pipeline / Lint Code (push) Has been cancelled
CI Pipeline / Security Scan (push) Has been cancelled
CI Pipeline / Build Docker Images (push) Has been cancelled
CI Pipeline / E2E Tests (push) Has been cancelled
130 lines
4.4 KiB
YAML
130 lines
4.4 KiB
YAML
# Unified Blossom-BitTorrent Gateway Configuration
|
|
# Mode: unified (all services), gateway-only, blossom-only, dht-only
|
|
mode: unified
|
|
|
|
# Gateway HTTP API server
|
|
gateway:
|
|
enabled: true
|
|
port: 9877
|
|
max_upload_size: 10GB
|
|
|
|
# Embedded Blossom server
|
|
blossom_server:
|
|
enabled: true
|
|
port: 8082
|
|
storage_path: "./data/blobs"
|
|
max_blob_size: 100MB
|
|
rate_limit:
|
|
requests_per_minute: 100
|
|
burst_size: 20
|
|
|
|
# DHT node configuration
|
|
dht:
|
|
enabled: true
|
|
port: 6883
|
|
node_id: "" # auto-generate if empty
|
|
bootstrap_self: true
|
|
bootstrap_nodes:
|
|
- "router.bittorrent.com:6881"
|
|
- "dht.transmissionbt.com:6881"
|
|
- "router.utorrent.com:6881"
|
|
- "dht.libtorrent.org:25401"
|
|
announce_interval: 900s # 15 minutes
|
|
cleanup_interval: 3600s # 1 hour
|
|
max_torrents: 10000
|
|
max_nodes: 5000
|
|
max_peers_per_torrent: 200
|
|
|
|
# Shared storage configuration
|
|
storage:
|
|
blob_threshold: 104857600 # 100MB in bytes
|
|
chunk_size: 2097152 # 2MB chunks for large files
|
|
metadata_db: "./data/metadata.db"
|
|
blob_storage: "./data/blobs"
|
|
chunk_storage: "./data/chunks"
|
|
strategy:
|
|
small_files: "blob" # <100MB use Blossom directly
|
|
large_files: "torrent" # >=100MB use chunking
|
|
|
|
# External Blossom servers (currently not implemented - using local storage only)
|
|
# blossom:
|
|
# servers:
|
|
# - "https://cdn.sovbit.host"
|
|
|
|
# BitTorrent configuration
|
|
torrent:
|
|
trackers:
|
|
- "udp://tracker.opentrackr.org:1337"
|
|
- "udp://tracker.openbittorrent.com:6969"
|
|
|
|
# Built-in BitTorrent tracker configuration
|
|
tracker:
|
|
enabled: true
|
|
announce_interval: 1800 # 30 minutes
|
|
min_interval: 900 # 15 minutes
|
|
default_numwant: 50 # peers to return
|
|
max_numwant: 100 # maximum peers
|
|
cleanup_interval: 300s # cleanup every 5 minutes
|
|
peer_timeout: 2700s # 45 minutes
|
|
|
|
# Nostr relay configuration
|
|
nostr:
|
|
relays:
|
|
- "wss://freelay.sovbit.host"
|
|
|
|
# Smart proxy configuration
|
|
proxy:
|
|
enabled: true
|
|
cache_size: 100 # Maximum number of cached reassembled files
|
|
cache_max_age: 1h # Maximum age for cached files
|
|
|
|
# Admin configuration
|
|
admin:
|
|
enabled: true
|
|
pubkeys:
|
|
- "44dc1c2db9c3fbd7bee9257eceb52be3cf8c40baf7b63f46e56b58a131c74f0b" # Replace with actual admin pubkey
|
|
auto_cleanup: true
|
|
cleanup_age: "90d"
|
|
max_file_age: "365d"
|
|
report_threshold: 3
|
|
default_user_storage_limit: "10GB" # Default storage limit per user
|
|
|
|
# Rate limiting configuration - tune these values based on your server capacity
|
|
rate_limiting:
|
|
upload:
|
|
requests_per_second: 1.0 # Max uploads per second per IP address
|
|
burst_size: 5 # Allow burst of 5 uploads
|
|
max_file_size: "3GB" # Maximum individual file size
|
|
download:
|
|
requests_per_second: 50.0 # Global download rate limit (all users combined)
|
|
burst_size: 100 # Global download burst allowance
|
|
stream:
|
|
requests_per_second: 10.0 # Max streaming requests per second per file
|
|
burst_size: 20 # Stream burst allowance per file
|
|
max_concurrent: 50 # Maximum concurrent streaming connections
|
|
auth:
|
|
login_attempts_per_minute: 10 # Login attempts per IP per minute
|
|
burst_size: 5 # Login burst allowance per IP
|
|
|
|
# Site branding configuration
|
|
branding:
|
|
site_name: "Sovbit Gateway" # Site name shown in headers/titles
|
|
logo_url: "https://files.sovbit.host/media/44dc1c2db9c3fbd7bee9257eceb52be3cf8c40baf7b63f46e56b58a131c74f0b/7c96148e8244bfdb0294f44824267b6b08f2dcc29db8c6571d88ab8e22a1abf1.webp" # URL to your logo image (optional)
|
|
logo_width: "auto" # Logo width (e.g., "150px", "auto")
|
|
logo_height: "32px" # Logo height (e.g., "32px", "auto")
|
|
favicon_url: "" # URL to your favicon (optional)
|
|
description: "Decentralized file sharing gateway" # Site description
|
|
footer_text: "" # Footer text (optional)
|
|
support_url: "" # Support/contact URL (optional)
|
|
|
|
# Example sovbit.host configuration:
|
|
# branding:
|
|
# site_name: "sovbit.host"
|
|
# logo_url: "https://sovbit.host/logo.png"
|
|
# logo_width: "120px"
|
|
# logo_height: "30px"
|
|
# favicon_url: "https://sovbit.host/favicon.ico"
|
|
# description: "Sovereign Bitcoin hosting services"
|
|
# footer_text: "Powered by sovbit.host"
|
|
# support_url: "https://sovbit.host/support"
|