/ documentation

Files over SFTP

Every machine you own, plus your shared drive, as one SFTP server. Browse it from FileZilla or Cyberduck, or mount it with sshfs and edit files on any machine in your own editor.

Connect

Use the same key and the same address as the dashboard; only the protocol changes:

$ sftp dashboard@ironwire.sh
Connected to ironwire.sh.
sftp> ls -l
drwxr-xr-x    0 0 0     0 Oct  5 09:12 api
drwxr-xr-x    0 0 0     0 Oct  5 15:20 shared drive
drwxr-xr-x    0 0 0     0 Oct  1 11:03 web

The top level holds one folder per running machine and one for your shared drive. It's the same set the dashboard's file manager shows. Machines you create appear on the next listing; machines you delete disappear.

Inside a machine

A machine's folder is its whole filesystem: /web is the machine's /, so its home directory is /web/root. Read, write, create, rename and delete as you would on the machine itself. You act as the machine's own login user, the same reach as ssh web@ironwire.sh.

The shared drive folder is the drive's root. Its name has a space, so quote it in a shell: cd "shared drive". The drive takes no symlinks.

Mount it with sshfs

Mount everything as a local folder and open any machine's files in your editor:

$ mkdir -p ~/ironwire
$ sshfs dashboard@ironwire.sh:/ ~/ironwire -o reconnect,ServerAliveInterval=15
$ code ~/ironwire/web/root/app

Saving a file writes it straight to that machine. Unmount with fusermount -u ~/ironwire (Linux) or umount ~/ironwire (macOS).

note Keep -o reconnect. When the platform is updated an open SFTP session ends, and reconnect lets sshfs pick the mount back up by itself. ServerAliveInterval keeps a quiet mount from being closed as idle.

GUI clients

In FileZilla, Cyberduck, Transmit or your file browser, add an SFTP server: host ironwire.sh, port 22, user dashboard, and authenticate with the SSH key you use for the dashboard. Drag files in and out as usual.

Stopped machines

Only running machines are listed. A stopped, paused or booting machine isn't in the tree, and browsing never starts one. If you name its path anyway (cd /old), you get the reason, for example old is stopped — start it first. Start it with ssh dashboard@ironwire.sh start old and it appears on the next listing.

Moving between machines

Moving or renaming a file or folder from one machine to another, or into or out of the shared drive, works like any move:

sftp

$ sftp dashboard@ironwire.sh
sftp> rename /web/root/dataset /api/root/dataset

On an sshfs mount it's a plain mv ~/ironwire/web/root/dataset ~/ironwire/api/root/, or a drag in a GUI client.

dashboard

Press f for the file manager, open the source machine in one pane and the destination in the other, select the folder and press m to move it.

Over SFTP the move is a copy followed by a delete, and it is all or nothing:

A large move takes as long as the copy does, and some clients look busy or report a timeout while it runs.

One machine at a time

To reach a single machine, use its name as the user. You land in that machine's own SFTP server, as with ssh web@ironwire.sh:

$ sftp web@ironwire.sh

Who can connect

Only your own keys. You always see your own account's machines, never anyone else's. A key that belongs to a machine (one an agent uses from inside a VM) can't open the whole-account tree; it can reach a sibling only where fleet access allows, exactly like ssh. A key that isn't enrolled is told to sign up first with ssh dashboard@ironwire.sh; there is no signup over SFTP. Outposts don't take SFTP.