Skip to main content
When you delete a Daytona sandbox, its files go with it. Mount an Archil disk in the sandbox and anything written there stays on the disk, where the next sandbox can mount it and your app can read it with the Archil SDK, without starting a sandbox. Daytona sandboxes support FUSE, so the disk mounts as a regular directory.

Prerequisites

Export your Archil API key and region, and your Daytona API key, then install both SDKs:

Mount a disk

First, create a disk. You only do this once:
Run it with eval "$(npx tsx setup.ts)" (or eval "$(python setup.py)") to export the disk ID and the disk’s mount token, which grants access to this disk only. Now start a sandbox, install the archil client, mount the disk at /mnt/archil with sudo, and write a file. The token is passed only to the mount command:
The archil client buffers recent writes, so before the script deletes the sandbox, archil sync sends every buffered write to the disk and archil checkin releases the sandbox’s lock on it. Those are the two steps archil unmount takes on other machines, but Daytona doesn’t let the client detach the mount. Run npx tsx mount.ts (or python mount.py) twice. Each run starts a new sandbox, and the second one finds the line the first one wrote:
A plain mount is exclusive: one sandbox holds the disk at a time. To mount it in several sandboxes at once, add --shared, and see Sharing disks. To skip the install in every sandbox, run the same install command in a Daytona snapshot and create your sandboxes from it.

Read it from anywhere

Both sandboxes are gone, and the file is still on the disk. Read it from your own machine or app with the SDK:
If a sandbox is deleted or stopped before it releases the disk, see Troubleshooting mounts on other platforms.

Clean up

Delete the disk. The script already deleted each sandbox.

Next steps