From 025a365a23f5ed2b3df4df71cbff9689575968d9 Mon Sep 17 00:00:00 2001 From: Mike Wild Date: Tue, 25 Aug 2026 23:04:10 -0500 Subject: Split per-app dataset into OS/data layers, add skiff rebuild Each app now gets two ZFS datasets - a disposable OS layer (zroot/skiff/appbase/) cloned from base, and a persistent data layer (zroot/skiff/appdata/) holding releases/current/env/ meta.json/data.db. `skiff rebuild --app|--all` discards and reclones the OS layer to pick up an OS/toolchain/config-template upgrade, guarded by the same snapshot-and-rollback safety net as deploy and config changes; the data layer is never touched. Also fixes stale docs (builds already run via jexec inside the jail, not on the host; --iface already auto-aliases the jail's IP, so the manual ifconfig step and its troubleshooting entry are gone) found while updating the same sections for this feature. Co-Authored-By: Claude Sonnet 5 --- internal/jailmgr/jailmgr.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'internal/jailmgr/jailmgr.go') diff --git a/internal/jailmgr/jailmgr.go b/internal/jailmgr/jailmgr.go index 9ddf9b8..5da5663 100644 --- a/internal/jailmgr/jailmgr.go +++ b/internal/jailmgr/jailmgr.go @@ -68,6 +68,10 @@ func Start(ctx context.Context, out io.Writer, app string) error { return sh.Run(ctx, out, "", "service", "jail", "start", app) } +func Stop(ctx context.Context, out io.Writer, app string) error { + return sh.Run(ctx, out, "", "service", "jail", "stop", app) +} + // Restart restarts an already-running jail, or starts it if this is its // first deploy and it isn't up yet. func Restart(ctx context.Context, out io.Writer, app string) error { -- cgit v1.3