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.