ironwire / documentation

the shared drive

one shared drive per account. attach it anywhere; every machine sees the same files at the same path, at the same time.

what it is

The shared drive is a single volume per account. Attach it to the machines that need it; each mounts it at /mnt/share and all read and write the same files simultaneously. Machines without it attached don't see it at all. Put build artifacts, datasets, anything several machines share there.

creating the drive

<SCREENSHOT: dashboard drive screen (d) — the size prompt when no drive exists yet>

Create it with an optional size, written like 20G or 512M. Omit the size and the drive is created at the default 10 GiB.

ssh

$ ssh dashboard@ironwire.sh drive create 20G
created drive: 20 GiB
attach it with `drive attach <machine>` or `create <name> --drive`

cli

$ ironwire drive create 20G
created drive: 20 GiB
attach it with `drive attach <machine>` or `create <name> --drive`

dashboard

press d from the machine list. With no drive yet it opens straight into a size prompt. Type 20G and press .

Check the drive's size and attachments any time:

ssh

$ ssh dashboard@ironwire.sh drive
drive: 20 GiB — attached to app, worker (mounts at /mnt/share)

cli

$ ironwire drive
drive: 20 GiB — attached to app, worker (mounts at /mnt/share)

dashboard

press d to open the drive panel; the machine list's DRIVE column also shows attached on every machine that mounts it.

note There is one drive per account: a second drive create is rejected with drive already exists (use resize).

attaching and detaching

Attach at machine creation with --drive; no drive yet, and this auto-creates one at the default size.

$ ssh dashboard@ironwire.sh create worker --drive
created worker
  url: https://worker.alice.ironwire.xyz
  ssh: ...

On an existing machine, use drive attach. It takes effect on the next boot. Restart the machine to pick up the change.

ssh

$ ssh dashboard@ironwire.sh drive attach app
drive attached to app (takes effect on next boot)
$ ssh dashboard@ironwire.sh restart app
restarted app

cli

$ ironwire drive attach app
drive attached to app (takes effect on next boot)
$ ironwire restart app
restarted app

dashboard

press d, choose a attach to machines, select the machine, and press to toggle the mount. Restart the machine with r from the machine list to apply.

After the reboot, the drive is at /mnt/share inside the guest. Detaching works the same way, also on the next boot:

ssh

$ ssh dashboard@ironwire.sh drive detach app
drive detached from app (takes effect on next boot)

cli

$ ironwire drive detach app
drive detached from app (takes effect on next boot)

dashboard

press d, choose a attach to machines, select an attached machine, and press to toggle the mount off.

resizing

The drive grows but never shrinks. Resize with a new, larger size:

ssh

$ ssh dashboard@ironwire.sh drive resize 50G
drive resized to 50 GiB

cli

$ ironwire drive resize 50G
drive resized to 50 GiB

dashboard

press d, choose g grow, type the new size, and press .

Shrinking is refused: drive is grow-only: cannot shrink 51200 → 20480 MiB.

deleting

drive delete detaches the drive from every machine, then deletes it and its contents, freeing the capacity for other use.

ssh

$ ssh dashboard@ironwire.sh drive delete
drive deleted

cli

$ ironwire drive delete
drive deleted

dashboard

press d, choose x delete, and confirm with y.

capacity and your disk budget

The drive's full capacity counts against your account's disk budget, alongside your machines' disks. The reserved size counts, not how much you've filled. Creating or growing the drive fails if the new capacity would exceed your remaining disk budget (a resize only needs budget for the added amount); deleting returns its capacity to the budget. Check where you stand with usage; see Quotas for how budgets work.