Skip to main content

Configuring Storage

Storage backends are a daemon concern and belong in the global daemon config.

Default Behaviour

By default Bitloops uses platform app directories:

  • relational database in the data directory
  • event database in the data directory
  • blob store in the data directory
  • embedding model downloads in the cache directory

Linux examples:

~/.config/bitloops/config.toml
~/.local/share/bitloops/stores/relational/relational.db
~/.local/share/bitloops/stores/event/events.duckdb
~/.local/share/bitloops/stores/blob/
~/.cache/bitloops/embeddings/models/

Local SQLite, DuckDB, And Blob Defaults

[stores.relational]
sqlite_path = "/Users/alex/.local/share/bitloops/stores/relational/relational.db"

[stores.events]
duckdb_path = "/Users/alex/.local/share/bitloops/stores/event/events.duckdb"

[stores.blob]
local_path = "/Users/alex/.local/share/bitloops/stores/blob"

Remote Stores

[stores.relational]
postgres_dsn = "${BITLOOPS_POSTGRES_DSN}"

[stores.events]
clickhouse_url = "http://localhost:8123"
clickhouse_user = "${BITLOOPS_CLICKHOUSE_USER}"
clickhouse_password = "${BITLOOPS_CLICKHOUSE_PASSWORD}"
clickhouse_database = "bitloops"

[stores.blob]
s3_bucket = "bitloops-artifacts"
s3_region = "eu-west-1"
s3_access_key_id = "${AWS_ACCESS_KEY_ID}"
s3_secret_access_key = "${AWS_SECRET_ACCESS_KEY}"

Embedding Cache

Embedding model downloads are cache, not durable store data:

[stores]
embedding_provider = "local"
embedding_model = "jinaai/jina-embeddings-v2-base-code"
embedding_cache_dir = "/Users/alex/.cache/bitloops/embeddings/models"

Check The Effective State

bitloops status
bitloops --connection-status

If Bitloops finds old repo-local store directories, it warns that they are ignored unless you explicitly point the daemon config at them.