The server is configured by a YAML configuration file. The easiest way to start is by generating it with the CLI or by downloading a sample configuration file, and then tweaking it to fit your needs.

Overview

listen_addr: 0.0.0.0:8900
state_store_path: /tmp/indexify/state
blob_storage:
  backend: disk
  disk:
    path: /tmp/indexify/blobs
  • listen_addr: The interface on which the servers listens on. Typically you would want to listen on all interfaces. Default: 0.0.0.0:8900.
  • state_store_path: Path where the state store is stored. This is where the state of the graph is stored. This is needed for resuming the graph from where it left off in case of a failure. Default: indexify_storage.
  • blob_storage: Configuration for storing blobs. Blobs are raw bytes of data that are stored in the system. This is used for storing intermediate data between functions.

Blob Storage Configuration

Blob storage is used to store the output of functions.

We support two forms of blob storage at the moment - Disk and S3 Storage.

Disk

blob_storage:
  backend: disk
  disk:
    path: /tmp/indexify-blob-storage

S3 Storage

For S3 Storage, you’ll need to also ensure you have the two following environment variables configured. Once you’ve configured these environment variables, our S3 integration will take care of the rest

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_REGION
blob_storage:
  backend: s3
  s3:
    path: "s3://my-bucket/"
    dynamodb_table: indexify_kv_table

AWS Configuration Example

  1. Create the bucket
    aws s3api create-bucket --bucket my-bucket --region us-east-1
    
  2. Create the dynamodb table
    aws dynamodb create-table --table-name indexify_kv_table --key-schema AttributeName=path,KeyType=HASH AttributeName=etag,KeyType=RANGE --attribute-definitions AttributeName=path,AttributeType=S AttributeName=etag,AttributeType=S --billing-mode PAY_PER_REQUEST
    aws dynamodb update-time-to-live --table-name indexify_kv_table --time-to-live-specification Enabled=true,AttributeName=ttl