grain/app/static/examples/config.example.yml

96 lines
3.0 KiB
YAML

mongodb:
uri: mongodb://localhost:27017/
database: grain
auth:
enabled: false # Enable or disable AUTH handling
relay_url: "wss://relay.example.com/" # Specify the relay URL
server:
port: :8181
read_timeout: 10 # in seconds
write_timeout: 10 # in seconds
idle_timeout: 120 # in seconds
max_connections: 100
max_subscriptions_per_client: 10
resource_limits:
cpu_cores: 2 # Limit the number of CPU cores the application can use
memory_mb: 1024 # Cap the maximum amount of RAM in MB the application can use
heap_size_mb: 512 # Set a limit on the Go garbage collector's heap size in MB
max_goroutines: 100 # Limit the maximum number of concurrently running Go routines
rate_limit:
ws_limit: 100 # WebSocket messages per second
ws_burst: 200 # Allowed burst of WebSocket messages
event_limit: 50 # Events per second
event_burst: 100 # Allowed burst of events
req_limit: 50 # HTTP requests per second
req_burst: 100 # Allowed burst of HTTP requests
max_event_size: 51200 # Maximum size of an event in bytes
# Size limits for specific event kinds
kind_size_limits:
- kind: 0
max_size: 10240 # Maximum size in bytes for kind 0 events
- kind: 1
max_size: 25600 # Maximum size in bytes for kind 1 events
# Rate limits for different event categories
category_limits:
ephemeral:
limit: 100 # Events per second
burst: 200 # Allowed burst
parameterized_replaceable:
limit: 5
burst: 10
regular:
limit: 25
burst: 50
replaceable:
limit: 10
burst: 20
# Rate limits for specific event kinds
kind_limits:
- kind: 0
limit: 1 # Events per second
burst: 5 # Allowed burst
- kind: 1
limit: 25
burst: 50
- kind: 3
limit: 25
burst: 50
blacklist: #Removing a pubkey from the Blacklist requires a hard restart; Blacklist overides the Whitelist
enabled: true
permanent_ban_words: [] # Words that trigger a permanent ban
temp_ban_words: # Words that trigger a temporary ban
- crypto
- web3
- airdrop
max_temp_bans: 3 # Number of temporary bans before a permanent ban
temp_ban_duration: 3600 # Temporary ban duration in seconds
permanent_blacklist_pubkeys: # List of permanently banned public keys
- db0c9b8acd6101adb9b281c5321f98f6eebb33c5719d230ed1870997538a9765
permanent_blacklist_npubs: # List of permanently banned npubs
- npub1x0r5gflnk2mn6h3c70nvnywpy2j46gzqwg6k7uw6fxswyz0md9qqnhshtn
event_purge:
enabled: true # Toggle to enable/disable event purging
keep_duration_days: 2 # Number of days to keep events
purge_interval_hours: 24 # Runs every 24 hours
purge_by_category: # Configure purging based on categories
parameterized_replaceable: false
regular: true
replaceable: false
purge_by_kind: # Configure purging based on event kind
- kind: 0
enabled: false
- kind: 1
enabled: true
- kind: 3
enabled: false
exclude_whitelisted: true # Exclude events from whitelisted pubkeys during purging