Configuration
A list of configuration options for deploying an RSS3 Node.
Options
The following is a list of configuration options for deploying an RSS3 Node.
You may use the configuration file config.yaml, or via environment variables (with a NODE_ prefix) to define them.
environment
- Name:
NODE_ENVIRONMENT - Default:
development - Description: Environment of the Node, possible values are
developmentandproduction. This enables the level of logging for debugging.
discovery
This section includes configuration options for the discovery service, which is used for registering and verifying the Node.
-
discovery.operator.evm_address- Name:
NODE_DISCOVERY_OPERATOR_EVM_ADDRESS - Description: Operator's wallet address used during the registration.
- Name:
-
discovery.operator.signature- Name:
NODE_DISCOVERY_OPERATOR_SIGNATURE - Description:
- The signature obtained during registration.
- Used to verify your ownership of this Node.
- You MUST NOT share the signature with anyone.
- Name:
-
discovery.server.endpoint- Name:
NODE_DISCOVERY_SERVER_ENDPOINT - Description:
- Endpoint is how Global Indexers access your Node.
- You can use a domain or an IP address with a port number.
- Name:
-
discovery.server.global_indexer_endpoint- Name:
NODE_DISCOVERY_SERVER_GLOBAL_INDEXER_ENDPOINT - Default:
https://gi.rss3.io - Description:
- If your Node is registered on the VSL Testnet, use
https://gi.rss3.dev. - Otherwise, DO NOT change this value.
- If your Node is registered on the VSL Testnet, use
- Name:
-
discovery.server.access_token- Name:
NODE_DISCOVERY_SERVER_ACCESS_TOKEN - Description:
- Access token used to gate certain APIs provided by your Node.
- This token is shared with Global Indexers to access your Node.
- This token can be supplied by you or auto-generated by automated deployer.
- Name:
database
This section includes configuration options for the database, which is used for storing indexed data.
-
database.coverage_period- Name:
NODE_DATABASE_COVERAGE_PERIOD - Default:
3 - Description:
- Number of months that the Node will retain indexed data for.
- After this period, the data will be automatically trimmed to save storage space.
- The minimum value is
3.
- Name:
-
database.uri- Name:
NODE_DATABASE_URI - Default:
postgres://postgres@localhost:5432/postgres - Description: Database connection URI.
- Name:
redis
This section includes configuration options for Redis, which is used for improving performance.
-
redis.endpoint- Name:
NODE_REDIS_ENDPOINT - Default:
localhost:6379 - Description: Redis server endpoint.
- Name:
-
redis.username- Name:
NODE_REDIS_USERNAME - Description: Redis username.
- Name:
-
redis.password- Name:
NODE_REDIS_PASSWORD - Description: Redis password.
- Name:
-
redis.tls.enabled- Name:
NODE_REDIS_TLS_ENABLED - Default:
false - Description: Whether to enable TLS for Redis connection.
- Name:
-
redis.tls.ca_file- Name:
NODE_REDIS_TLS_CA_FILE - Description: Path to CA file for Redis TLS.
- Name:
-
redis.tls.cert_file- Name:
NODE_REDIS_TLS_CERT_FILE - Description: Path to certificate file for Redis TLS.
- Name:
-
redis.tls.key_file- Name:
NODE_REDIS_TLS_KEY_FILE - Description: Path to key file for Redis TLS.
- Name:
stream
This section includes configuration options for streaming, for faster data processing.
-
stream.enable- Name:
NODE_STREAM_ENABLE - Default:
false - Description: Whether to enable streaming.
- Name:
-
stream.uri- Name:
NODE_STREAM_URI - Default:
localhost:9092 - Description: Stream connection URI.
- Name:
observability
This section includes configuration options for observability, for enabling OpenTelemetry metrics and traces.
-
observability.opentelemetry.metrics.enable- Name:
NODE_OBSERVABILITY_OPENTELEMETRY_METRICS_ENABLE - Default:
false - Description: Whether to enable OpenTelemetry metrics.
- Name:
-
observability.opentelemetry.metrics.endpoint- Name:
NODE_OBSERVABILITY_OPENTELEMETRY_METRICS_ENDPOINT - Default:
0.0.0.0:9090 - Description: Endpoint for OpenTelemetry metrics.
- Name:
-
observability.opentelemetry.traces.enable- Name:
NODE_OBSERVABILITY_OPENTELEMETRY_TRACES_ENABLE - Default:
false - Description: Whether to enable OpenTelemetry traces.
- Name:
-
observability.opentelemetry.traces.insecure- Name:
NODE_OBSERVABILITY_OPENTELEMETRY_TRACES_INSECURE - Default:
false - Description: Whether to use insecure connection for OpenTelemetry traces.
- Name:
-
observability.opentelemetry.traces.endpoint- Name:
NODE_OBSERVABILITY_OPENTELEMETRY_TRACES_ENDPOINT - Default:
0.0.0.0:4318 - Description: Endpoint for OpenTelemetry traces.
- Name:
endpoints
This section includes configuration options for each endpoint, which can be referenced by workers in the component section below.
-
endpoints.*.url- Name:
NODE_ENDPOINTS_{NAME}_URL - Description: URL for each defined endpoint.
- Name:
-
endpoints.*.http_headers- Name:
NODE_ENDPOINTS_{NAME}_HTTP_HEADERS - Description: HTTP headers for each defined endpoint.
- Name:
-
endpoints.*.http2_disabled- Name:
NODE_ENDPOINTS_{NAME}_HTTP2_DISABLED - Default:
false - Description: Whether HTTP/2 is disabled for the endpoint.
- Name:
component
This section includes configuration options for each component, which includes specific configurations for individual workers.
AI
-
component.ai.id- Name:
NODE_COMPONENT_AI_ID - Description: Unique identifier for AI component (e.g.,
agentdata-core)
- Name:
-
component.ai.worker- Name:
NODE_COMPONENT_AI_WORKER - Description:
- Specifies the AI worker type to use (e.g.,
core)
- Specifies the AI worker type to use (e.g.,
- Name:
-
component.ai.endpoint- Name:
NODE_COMPONENT_AI_ENDPOINT - Description: The endpoint URL for the AI component (e.g.,
https://your.agentdata.com/).
- Name:
-
component.ai.parameters- Name:
NODE_COMPONENT_AI_PARAMETERS - Description: Additional parameters for AI component
agentdata_db_url: URL for the AgentData database connectionopenai_api_key: API key for OpenAI services integrationollama_host: Host address for Ollama API serviceskaito_api_token: API token for Kaito servicestwitter: Twitter API configurationbearer_token: Twitter API bearer token for authenticationapi_key: Twitter API key for app authenticationapi_secret: Twitter API secret for app authenticationaccess_token: Twitter access token for user authenticationaccess_token_secret: Twitter access token secret for user authentication
- Name:
RSS
-
component.rss.id- Name:
NODE_COMPONENT_RSS_ID - Description: Unique identifier for RSS component.
- Name:
-
component.rss.network- Name:
NODE_COMPONENT_RSS_NETWORK - Description: Network type for RSS component.
- Name:
-
component.rss.worker- Name:
NODE_COMPONENT_RSS_WORKER - Description:
- Actual worker that processes the RSS data
- View the list of available workers
- Name:
-
component.rss.endpoint- Name:
NODE_COMPONENT_RSS_ENDPOINT - Description: Endpoint for RSS worker
- Name:
-
component.rss.parameters- Name:
NODE_COMPONENT_RSS_PARAMETERS - Description: Additional parameters for RSS component
authentication: Authentication configurationaccess_key: Access key for authentication
- Name:
Decentralized
-
component.decentralized[].id- Description: Unique identifier for each decentralized component
-
component.decentralized[].network- Description: Network type for each decentralized component
-
component.decentralized[].endpoint- Description:
- Data access endpoint used by the worker
- You can reference the endpoint defined above in the endpoints section
- You can also use a direct URL, such as
https://rpc.rss3.io
- Description:
-
component.decentralized[].worker- Description:
- Actual worker that processes the data
- View the list of available workers
- Description:
-
component.decentralized[].ipfs_gateways- Description:
- Description: IPFS gateways used by the worker supplying multiple gateways may improve the indexing performance and reliability
- Default:
["https://ipfs.rss3.page/" , "https://ipfs.io/" , "https://cloudflare-ipfs.com/" , "https://4everland.io/"]
- Description:
-
component.decentralized[].parameters- Description: Additional parameters for each decentralized component
- For Ethereum and Arweave:
block_start: Block number/height that the worker should start fromblock_target: Block number/height that the worker should stop atconcurrent_block_requests: Number of blocks to request concurrently
- For EVM-based Worker only:
block_batch_size: Number of blocks to fetch in a single batch.receipts_batch_size: Number of receipts to fetch in a single batch.block_receipts_batch_size: Number of block receipts to fetch in a single batch.
- For Farcaster:
api_key: API key for Farcaster Hubble.timestamp_start: The Farcaster seconds timestamp that the worker should start from.
- For Ethereum and Arweave:
- Description: Additional parameters for each decentralized component
Federated
-
component.federated[].id- Description: Unique identifier for each federated component
-
component.federated[].network- Description: Network type for each federated component (e.g., Mastodon)
-
component.federated[].endpoint- Description:
- Public URL endpoint used by the federated worker
- This endpoint should forward requests to a local port specified in the
parameters.portsetting (or the default port).
- Description:
-
component.federated[].worker- Description:
- The specific worker that processes data from federated sources.
- Available workers can be found in the list of supported workers.
- Description:
-
component.federated[].parameters- Description: Additional parameters for each federated component.
- For Mastodon:
relay_url_list:- Description: List of Mastodon relay URLs used by the worker.
- Default:
["https://relay.toot.io/inbox", "https://relay.infosec.exchange/inbox", "https://relay.intahnet.co.uk/inbox", "https://relay.fedi.buzz/instance/mas.to", "https://relay.fedi.buzz/instance/mastodon.online"]
port:- Description: Local port where the mastodon client listens for requests from the mastodon public URL.
- Default:
8181
- For Mastodon:
- Description: Additional parameters for each federated component.