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

91 lines
2.9 KiB
YAML
Raw Normal View History

mongodb:
2024-08-16 14:08:43 +00:00
uri: mongodb://localhost:27017/
database: grain
2024-07-25 13:06:48 +00:00
2024-08-19 18:28:13 +00:00
auth:
enabled: false # Enable or disable AUTH handling
relay_url: "wss://relay.example.com/" # Specify the relay URL
server:
2024-08-16 14:08:43 +00:00
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
2024-11-09 18:26:59 +00:00
backup_relay:
enabled: false # Set to true to enable sending events to the backup relay
url: "wss://some-relay.com" # URL of the backup relay
2024-10-18 15:22:01 +00:00
event_time_constraints:
min_created_at: 1577836800 # January 1, 2020, as Unix timestamp
2024-10-18 15:33:23 +00:00
# min_created_at_string: now-5m # Custom value to indicate 5 minutes in the past
2024-10-18 15:22:01 +00:00
# max_created_at: 0 # Set to 0 to use the default behavior of 'now'
max_created_at_string: now+5m # Use a string to set a date for max created at in the future or past from current time
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
2024-07-25 03:04:26 +00:00
rate_limit:
2024-08-16 14:08:43 +00:00
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
2024-08-16 14:08:43 +00:00
# Size limits for specific event kinds
2024-07-26 20:46:01 +00:00
kind_size_limits:
- kind: 0
2024-08-16 14:08:43 +00:00
max_size: 10240 # Maximum size in bytes for kind 0 events
2024-07-26 20:46:01 +00:00
- kind: 1
2024-08-16 14:08:43 +00:00
max_size: 25600 # Maximum size in bytes for kind 1 events
2024-07-26 20:46:01 +00:00
2024-08-16 14:08:43 +00:00
# Rate limits for different event categories
category_limits:
ephemeral:
limit: 100 # Events per second
burst: 200 # Allowed burst
parameterized_replaceable:
limit: 5
burst: 10
2024-07-25 13:06:48 +00:00
regular:
2024-08-16 14:08:43 +00:00
limit: 25
burst: 50
2024-07-25 13:06:48 +00:00
replaceable:
2024-08-16 14:08:43 +00:00
limit: 10
burst: 20
2024-07-25 20:43:46 +00:00
2024-08-16 14:08:43 +00:00
# Rate limits for specific event kinds
kind_limits:
2024-07-26 01:26:47 +00:00
- kind: 0
2024-08-16 14:08:43 +00:00
limit: 1 # Events per second
burst: 5 # Allowed burst
2024-07-26 01:26:47 +00:00
- kind: 1
2024-08-16 14:08:43 +00:00
limit: 25
burst: 50
2024-07-26 01:26:47 +00:00
- kind: 3
2024-08-16 14:08:43 +00:00
limit: 25
burst: 50
2024-09-22 19:34:32 +00:00
event_purge:
2024-11-16 15:54:42 +00:00
enabled: false # Toggle to enable/disable event purging
2024-11-13 02:38:35 +00:00
keep_interval_hours: 24 # Number of hours to keep events before purging
2024-11-16 15:54:42 +00:00
purge_interval_minutes: 240 # Interval in minutes for running the purge
2024-09-22 19:34:32 +00:00
purge_by_category: # Configure purging based on categories
regular: true
replaceable: false
2024-11-13 02:38:35 +00:00
parameterized_replaceable: false
deprecated: true
purge_by_kind_enabled: false # Enable purging by specific kinds, if false, all collections will be purged
kinds_to_purge: # List of event kinds to explicitly purge
- 1
- 2
- 1000
2024-09-22 19:34:32 +00:00
exclude_whitelisted: true # Exclude events from whitelisted pubkeys during purging