cpak 2.12.0 / September 2, 2026
Keep cpak services running after reboot
cpak 2.12 can keep an application command running, restart it after a failure and restore it when the machine starts. Its status now shows the package, process, health and listening ports together.
Name the application command once
A package can declare a named service command in its manifest. The manifest records the executable and its arguments, so each deployment can start the same application mode without rebuilding a command line.
"services": {
"server": {
"binary": "/usr/bin/example",
"arguments": ["serve", "--port", "3000"]
}
} Run it once with cpak run --service server github.com/example/app, or enable
it as a persistent service with its own restart policy, health check and
dependencies.
cpak service enable app-prod github.com/example/app --service server --restart on-failure Restore services on different Linux hosts
cpak uses the host startup mechanism that is available. It can install a
systemd user service, a cron reboot entry or XDG autostart. The cpak
service manager itself does not require systemd or D-Bus. When a host
can restore applications only after login, cpak service setup reports that limit.
Pass deployment configuration without changing the image
--env and --env-file provide deployment
values. --secret NAME=/path validates a private file and mounts it
read-only below /run/secrets. Secret contents are not
copied into the service definition or printed by service commands.
See whether the application is ready
cpak ps, status, inspect and health expose one runtime view. It includes the container,
process, health result, running time and listener ports. JSON output is
available for scripts, and cpak health returns a failing status
when the application is not ready.
cpak ps
cpak status github.com/example/app --instance app-prod --json
cpak health github.com/example/app --instance app-prod Existing interactive applications do not need a change. Package authors add a manifest service only when the application has a command worth naming, and operators choose whether to keep it running.
Better isolated X11 windows
X11 applications now follow the Xephyr window size and pass their title, icon and fullscreen state to the host desktop. Closing the last application window stops its cpak instance.
Packages can declare clipboard access in either direction. cpak copies approved text and image targets through its built-in broker while file lists, the host X11 socket and its authority file stay outside the package. No clipboard tool or D-Bus service is required in the image.
Edit complex permissions
cpak override edit <origin> opens the complete
override JSON in your editor. For scripts, nested keys such as sessionBus.own accept arrays and objects directly through --value.
