ubiklabs

Blocks · Kamal

Your deployment, live, beside the shell that ships it.

Servers, containers, deploys, logs and a map of the fleet for a Kamal project, read over SSH. Deploy from the shell and watch it land.

← BlocksAvailableBy Ubiklabs

Recorded against a made-up fleet.

Every server with its CPU, memory and disk, then the fleet as a map with its traffic moving.

Deploy in the terminal. Roll back from the block.

Run kamal deploy beside the block and the new version arrives as LIVE. Rollback, with its confirmation, returns to any version whose container is still there.

The shell deploys and the history updates. Rollback asks first, then shows the command's output.

Follow and search container logs.

Follow one container's output in the drawer, open the full view, and search for the lines you need.

From a container's log drawer to the full view, searched for the products page.

Stop, start and restart.

Each action on a container asks first, then shows what kamal printed. Hide the deploys when you need the room.

One container stopped, started and restarted, each confirmed first.

Wherever you want it.

Beside the shell, filling the window with ⇧Esc, or in a tab of its own.

The same block beside a terminal, filling the window, and in another tab.

Everything running, one environment at a time.

Opens where the project is
⇧⌘T → Kamal, or the lightbulb in a terminal's header when its project has config/deploy.yml. One block per tab.
Every environment
Production and each destination, with every config deployed there. A config it cannot read is named, with what was left out.
Every host
CPU, memory, disk and network for the fleet; Show hosts opens a card each, with a CPU sparkline, load, ports and its containers.
Services and accessories
As a list or as cards: health, version or image, address, uptime and restarts, CPU, and memory against its limit or its host's.
Sort any column
Name, version, host, uptime, CPU or memory, in either order. Cards follow the same order.
Links to what it serves
Each service's domain opens in the browser, https when the proxy terminates TLS.

Act on it, with a question first.

Restart, stop, start, reboot
Any container or accessory. Each action asks first, then runs kamal with that service's config.
Roll back
Any version whose container is still on the servers. The run's card shows how long it has taken and its last line.
Release a deploy lock
A held lock shows in the header with who holds it; the service's actions wait until it is released.
Output where you can read it
Every run's output, led by the kamal command it ran, goes to the drawer under the block.

When a server does not answer.

Host by host
Until a server answers, each host shows Connecting, Read, SSH failed or Docker failed, with a fix and a command to copy.
The key it needs
A refused key lists the keys offered, whether each needs a passphrase, and which one to fix.
Read-only probes
Plain POSIX sh over SSH as the deploy user, every three seconds, shared by every viewer of the host. No agent, no sudo.
Reads never run kamal
Configs are read as YAML, so no secret manager is called. ERB is not evaluated, and a warning says so.