ironwire / documentation

machines & lifecycle

create, size, power, pause, copy, delete. every task works on all three surfaces: one-shot over ssh dashboard@ironwire.sh, the ironwire CLI from inside a machine, or the dashboard.

creating a machine

one command. you get an HTTPS URL and an SSH endpoint:

ssh

$ ssh dashboard@ironwire.sh create web
created web
  url: https://web.sam.ironwire.xyz
  ssh: ssh sam+web@ironwire.sh

machine statuses

StatusMeaning
bootingbeing created or started; not reachable yet.
runningup. SSH, the file manager, and the HTTPS URL all work.
restartingcrashed; being restarted automatically.
stoppedpowered off. name, IP, and disk are kept.
pausedfrozen with RAM and processes snapshotted; see below.
failedboot failed or too many crashes in a row. fix the cause, then start it.

during planned service maintenance machines can also show a maintenance state: frozen the same way pause works, resumed automatically when maintenance ends.

power: stop, start, restart

ssh

$ ssh dashboard@ironwire.sh stop web
stopped web
$ ssh dashboard@ironwire.sh start web
started web
$ ssh dashboard@ironwire.sh restart web
restarted web

cli

$ ironwire stop web
stopped web
$ ironwire start web
started web
$ ironwire restart web
restarted web

requires orchestration mode on the machine you run it from.

dashboard

select the machine, press s to stop or start and r to restart, or press Space for the actions popup.

stop shuts the machine down; name, IP address, and disk are kept. start boots it cold on the same IP. restart is stop-then-start, and is how a pending resize, env-var change, or drive attach/detach takes effect.

crashes restart automatically, with an increasing delay between attempts, up to a cap. too many in a row marks the machine failed. machines with --restart=never just go to stopped. stops you asked for never trigger an automatic restart. uptime counts from your last intentional start; service restarts don't reset it.

pause and resume

ssh

$ ssh dashboard@ironwire.sh pause web
paused web

cli

$ ironwire pause web
paused web

requires orchestration mode on the machine you run it from.

dashboard

select the running machine and press p, or use the Space actions popup.

pause is a full-machine freeze, like closing a laptop lid. the entire state, RAM included, is snapshotted to disk. resume continues exactly where it left off: same processes, same in-memory state, same IP and endpoints.

ssh

$ ssh dashboard@ironwire.sh resume web
resumed web

cli

$ ironwire resume web
resumed web

requires orchestration mode on the machine you run it from.

dashboard

select the paused machine and press p again, or use the Space actions popup.

copying a machine

ssh

$ ssh dashboard@ironwire.sh copy web web-staging
copied web → web-staging
  url: https://web-staging.sam.ironwire.xyz
  ssh: ssh sam+web-staging@ironwire.sh

cli

$ ironwire copy web web-staging
copied web → web-staging
  url: https://web-staging.sam.ironwire.xyz
  ssh: ssh sam+web-staging@ironwire.sh

requires orchestration mode on the machine you run it from.

dashboard

select a paused or stopped machine and press y, or use the Space actions popup.

copy clones the disk into a brand-new machine. pause or stop the source first, so the disk is settled. the copy inherits the source's sizes, restart policy, and shared-drive attachment, but not its RAM state (it boots fresh), extra published ports, custom domain, or env vars.

resizing

ssh

$ ssh dashboard@ironwire.sh resize web --cpu=4 --mem=4G
resized web to 4 cores · 4.0 GiB · 10.0 GiB disk — applies on next restart

cli

$ ironwire resize web --cpu=4 --mem=4G
resized web to 4 cores · 4.0 GiB · 10.0 GiB disk — applies on next restart

requires orchestration mode on the machine you run it from.

dashboard

select the machine and press z, or use the Space actions popup.

pass at least one of --cpu/--mem/--disk; omitted values keep their current setting. the new size applies on the next restart; until then the machine keeps its old size. disk only grows, never shrinks.

deleting

ssh

$ ssh dashboard@ironwire.sh rm web
deleted web

cli

$ ironwire rm web
deleted web

requires orchestration mode on the machine you run it from.

dashboard

select the machine, press x, then y to confirm, or use the Space actions popup.

deletion is permanent: the disk is gone. to guard important machines, turn on delete protection in the dashboard: select the machine, press g (or toggle it in the Space actions popup). a protected machine cannot be deleted by anyone, not even you, until you toggle protection off:

$ ssh dashboard@ironwire.sh rm web
machine "web" is delete-protected; turn protection off first

inspecting: info and stats

info shows status, IP, size, restart policy, URLs, SSH endpoint, protection and orchestration switches, and published ports.

ssh

$ ssh dashboard@ironwire.sh info web
web
  status:      running
  ip:          10.0.0.2
  size:        2 cores · 2 GiB · 5 GiB disk
  policy:      on-failure
  url:         https://web.alice.ironwire.xyz
  ssh:         web@ironwire.sh
  orchestrate: off
  protected:   on
  internal:    10.0.0.2 — reachable by your other machines on any port; not reachable from the internet
  public:      https://web.alice.ironwire.xyz → the guest's web app on port 8000
  system:      3f0c9a71d2b4

cli

$ ironwire info web
web
  status:      running
  ip:          10.0.0.2
  size:        2 cores · 2 GiB · 5 GiB disk
  policy:      on-failure
  url:         https://web.alice.ironwire.xyz
  ssh:         web@ironwire.sh
  orchestrate: off
  protected:   on
  internal:    10.0.0.2 — reachable by your other machines on any port; not reachable from the internet
  public:      https://web.alice.ironwire.xyz → the guest's web app on port 8000
  system:      3f0c9a71d2b4

dashboard

the machine list itself shows state, IP, uptime, CPU/memory/disk, drive, SSH endpoint, and URL; the protection and orchestration switches appear as checkboxes in the Space actions popup.

stats shows current CPU, memory, and disk usage plus history. ranges: 1h (default), 24h, 7d, 30d.

ssh

$ ssh dashboard@ironwire.sh stats web --range=24h
now (14:32:05)
  cpu:    3.2%
  mem:  412M / 2.0G
  disk: 1.8G / 5.0G
range 24h · 144 points
  time              cpu%  cpu-max%  mem-used  disk-used
  08-01 14:40:00   2.9       11.4      404M       1.8G
  08-01 14:50:00   3.1        9.7      409M       1.8G

cli

$ ironwire stats web --range=24h
now (14:32:05)
  cpu:    3.2%
  mem:  412M / 2.0G
  disk: 1.8G / 5.0G
range 24h · 144 points
  time              cpu%  cpu-max%  mem-used  disk-used
  08-01 14:40:00   2.9       11.4      404M       1.8G
  08-01 14:50:00   3.1        9.7      409M       1.8G

dashboard

select the machine and press t for the stats popup; / switches the range.