Local Storage
Under the defaultlocal-dev profile, IronClaw keeps state in embedded database files
inside your IronClaw home:
PostgreSQL
Move to PostgreSQL when you serve the web interface to more than one person, run on a host where local disk is ephemeral, or want a database you can back up and replicate independently.1
Provision a database
PostgreSQL 15 or later. Managed providers work; so does a local container:The
pgvector image is used so embeddings-backed search works. See
Memory.2
Switch to a profile that accepts a database
Do this before you add the Use
[storage] block. Only three profiles wire it:
hosted-single-tenant, production, and migration-dry-run. Under any other profile a
[storage] block is a startup failure, not a warning:production for a multi-user deployment. See
Configuration.3
Point IronClaw at it
Put the URL in the environment and name the variable in your configuration:
4
Verify
Connection Security
Managed remote PostgreSQL must use TLS. Appendsslmode=require to the URL:
Pool Sizing
storage.pool_max_size defaults to 2. Keep it below your PostgreSQL server’s connection
limit — or your managed provider’s session-pool cap — after reserving capacity for
restarts and operator sessions. Override it with
IRONCLAW_REBORN_POSTGRES_POOL_MAX_SIZE.