Field guide
lawn app snapshot
Save, restore, and manage app snapshots from the terminal.
Use lawn app snapshot to save an app before a change, return to an older snapshot, or make a separate copy. You can identify a snapshot by its name, full ID, or an ID prefix that matches only one snapshot.
| Command | Description |
|---|---|
lawn app snapshot take <app> | Take a snapshot |
lawn app snapshot list <app> | List snapshots and Live |
lawn app snapshot restore <app> <snapshot> | Restore a snapshot, preserving the current state first |
lawn app snapshot clone <app> <snapshot> --name <name> | Clone a snapshot into a new stopped app |
lawn app snapshot rename <app> <snapshot> <name> | Rename a snapshot |
lawn app snapshot delete <app> <snapshot> | Delete a snapshot |
Take a snapshot
# Use the current date and time as the name
lawn app snapshot take paperless
# Choose a name
lawn app snapshot take paperless --name "Before update"
If the app is running, Lawn briefly stops it while taking the snapshot, then starts it again.
List snapshots
# Flat table with a STORAGE column
lawn app snapshot list paperless
# Branching history
lawn app snapshot list paperless --tree
# Machine-readable graph and storage values
lawn app snapshot list paperless --output json
The storage summary shows Total app + snapshots and Shared between snapshots. See Snapshots for an explanation of the numbers.
Restore a snapshot
By default, Lawn takes a Pre-Restore snapshot of the current state before restoring:
lawn app snapshot restore paperless "Before update"
To discard the current state instead:
lawn app snapshot restore paperless "Before update" --discard-live-state
This asks for confirmation. Add --force only for intentional non-interactive use.
Clone, rename, or delete a snapshot
# Clone into a separate stopped app
lawn app snapshot clone paperless "Before update" --name "Paperless Test"
# Rename a snapshot
lawn app snapshot rename paperless "Before update" "Known Good"
# Delete a snapshot
lawn app snapshot delete paperless "Known Good"
Deleting asks for confirmation. Use --force to skip it.