# Dalidou Storage Migration ## Goal Establish Dalidou as the canonical AtoCore host while keeping human-readable source layers separate from machine operational storage. ## Canonical layout ```text /srv/atocore/ app/ # git checkout of this repository data/ # machine operational state db/ atocore.db chroma/ cache/ tmp/ sources/ vault/ # AtoVault input, read-only by convention drive/ # AtoDrive input, read-only by convention logs/ backups/ run/ config/ .env ``` ## Environment variables Suggested Dalidou values: ```bash ATOCORE_ENV=production ATOCORE_DATA_DIR=/srv/atocore/data ATOCORE_DB_DIR=/srv/atocore/data/db ATOCORE_CHROMA_DIR=/srv/atocore/data/chroma ATOCORE_CACHE_DIR=/srv/atocore/data/cache ATOCORE_TMP_DIR=/srv/atocore/data/tmp ATOCORE_VAULT_SOURCE_DIR=/srv/atocore/sources/vault ATOCORE_DRIVE_SOURCE_DIR=/srv/atocore/sources/drive ATOCORE_LOG_DIR=/srv/atocore/logs ATOCORE_BACKUP_DIR=/srv/atocore/backups ATOCORE_RUN_DIR=/srv/atocore/run ``` ## Migration notes - Existing local installs remain backward-compatible. - If `data/atocore.db` already exists, AtoCore continues using it. - Fresh installs default to `data/db/atocore.db`. - Source directories are inputs only; AtoCore should ingest from them but not treat them as writable runtime state. - Avoid syncing live SQLite/Chroma state between Dalidou and other machines. Prefer one canonical running service and API access from OpenClaw. ## Deferred work - service manager wiring - backup/snapshot procedures - automated source registration jobs - OpenClaw integration