# Both roots need watch:true because OpenClaw creates the shared and per-agent # databases after Litestream starts on a new ephemeral container. sync-interval: 1s logging: level: INFO type: text stderr: false dbs: - dir: /home/node/.openclaw/state pattern: "*.sqlite" recursive: false watch: true replica: type: s3 bucket: ${LITESTREAM_BUCKET} path: replicas/state endpoint: ${LITESTREAM_ENDPOINT} region: ${LITESTREAM_REGION} access-key-id: ${LITESTREAM_ACCESS_KEY_ID} secret-access-key: ${LITESTREAM_SECRET_ACCESS_KEY} force-path-style: true - dir: /home/node/.openclaw/agents pattern: "*.sqlite" recursive: true watch: true replica: type: s3 bucket: ${LITESTREAM_BUCKET} path: replicas/agents endpoint: ${LITESTREAM_ENDPOINT} region: ${LITESTREAM_REGION} access-key-id: ${LITESTREAM_ACCESS_KEY_ID} secret-access-key: ${LITESTREAM_SECRET_ACCESS_KEY} force-path-style: true