2026-04-05 18:33:52 -04:00
|
|
|
# Dalidou Deployment
|
|
|
|
|
|
|
|
|
|
## Purpose
|
|
|
|
|
Deploy AtoCore on Dalidou as the canonical runtime and machine-memory host.
|
|
|
|
|
|
|
|
|
|
## Model
|
|
|
|
|
|
|
|
|
|
- Dalidou hosts the canonical AtoCore service.
|
|
|
|
|
- OpenClaw on the T420 consumes AtoCore over network/Tailscale API.
|
|
|
|
|
- `sources/vault` and `sources/drive` are read-only inputs by convention.
|
|
|
|
|
- SQLite/Chroma machine state stays on Dalidou and is not treated as a sync peer.
|
2026-04-05 18:47:40 -04:00
|
|
|
- The app and machine-storage host can be live before the long-term content
|
|
|
|
|
corpus is fully populated.
|
2026-04-05 18:33:52 -04:00
|
|
|
|
|
|
|
|
## Directory layout
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
/srv/storage/atocore/
|
|
|
|
|
app/ # deployed repo checkout
|
|
|
|
|
data/
|
|
|
|
|
db/
|
|
|
|
|
chroma/
|
|
|
|
|
cache/
|
|
|
|
|
tmp/
|
|
|
|
|
sources/
|
|
|
|
|
vault/
|
|
|
|
|
drive/
|
|
|
|
|
logs/
|
|
|
|
|
backups/
|
|
|
|
|
run/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Compose workflow
|
|
|
|
|
|
|
|
|
|
The compose definition lives in:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
deploy/dalidou/docker-compose.yml
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The Dalidou environment file should be copied to:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
deploy/dalidou/.env
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
starting from:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
deploy/dalidou/.env.example
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Deployment steps
|
|
|
|
|
|
|
|
|
|
1. Place the repository under `/srv/storage/atocore/app`.
|
|
|
|
|
2. Create the canonical directories listed above.
|
|
|
|
|
3. Copy `deploy/dalidou/.env.example` to `deploy/dalidou/.env`.
|
|
|
|
|
4. Adjust the source paths if your AtoVault/AtoDrive mirrors live elsewhere.
|
|
|
|
|
5. Run:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd /srv/storage/atocore/app/deploy/dalidou
|
|
|
|
|
docker compose up -d --build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
6. Validate:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
curl http://127.0.0.1:8100/health
|
|
|
|
|
curl http://127.0.0.1:8100/sources
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Deferred
|
|
|
|
|
|
|
|
|
|
- backup automation
|
|
|
|
|
- restore/snapshot tooling
|
|
|
|
|
- reverse proxy / TLS exposure
|
|
|
|
|
- automated source ingestion job
|
|
|
|
|
- OpenClaw client wiring
|
2026-04-05 18:47:40 -04:00
|
|
|
|
|
|
|
|
## Current Reality Check
|
|
|
|
|
|
|
|
|
|
When this deployment is first brought up, the service may be healthy before the
|
|
|
|
|
real corpus has been ingested.
|
|
|
|
|
|
|
|
|
|
That means:
|
|
|
|
|
|
|
|
|
|
- AtoCore the system can already be hosted on Dalidou
|
|
|
|
|
- the canonical machine-data location can already be on Dalidou
|
|
|
|
|
- but the live knowledge/content corpus may still be empty or only partially
|
|
|
|
|
loaded until source ingestion is run
|