Within Podium (Primary Use)
Chronicle is compiled into the Podium Docker image and managed by the coordinator:
cd podium
./build_image.sh production
The build script: 1. Copies Chronicle source into the Docker build context 2. Compiles Chronicle as part of the multi-stage Rust build 3. Places the binary in the final image
Docker Requirements
Chronicle FUSE requires elevated privileges:
docker run --privileged podium:latest
class="token comment"># or more granular:
docker run --cap-add SYS_ADMIN --device /dev/fuse podium:latest
Enable in Docker
docker run \
-e CHRONICLE_ENABLE=true \
-e CHRONICLE_S3_BUCKET=my-cas-bucket \
--privileged \
podium:latest
Standalone
Build
cd chronicle
cargo build --release
Historical macOS without macFUSE
Use this path only if the active checkout supports the native FSKit backend:
cargo build --release --no-default-features --features native-fskit
Linux
Requires libfuse3-dev (or fuse3 on Alpine):
apt-get install libfuse3-dev
cargo build --release
S3 Backend
For production deployments with S3 CAS:
export AWS_REGION=us-east-1
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
chronicle /workspace \
--agent-id my-agent \
--s3-bucket chronicle-production-cas \
--pooled-cas \
--replication
MinIO (Development)
export AWS_ENDPOINT_URL=http://localhost:9000
export AWS_ACCESS_KEY_ID=minioadmin
export AWS_SECRET_ACCESS_KEY=minioadmin
chronicle /workspace \
--agent-id dev-agent \
--s3-bucket chronicle-dev
Litestream Integration
Chronicle's SQLite databases can be replicated to S3 via Litestream for disaster recovery:
class="token comment"># litestream.yml
dbs:
- path: /instances/agent123/chronicle/metadata/chronicle.db
replicas:
- url: s3://backups/chronicle/agent123/
This is configured at the Podium level — each agent's Chronicle DB is independently replicated.