Skip to content

Podman

Kaio talks to the Docker API, which rootless Podman also speaks. Point it at the Podman socket:

Terminal window
export KAIO_DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock

Make sure the socket is running:

Terminal window
systemctl --user enable --now podman.socket
systemctl --user status podman.socket

The Makefile already does this detection for development: it derives PODMAN_SOCK from XDG_RUNTIME_DIR (falling back to /run/user/$(id -u)) and sets KAIO_DOCKER_HOST only if that socket exists. So make dev and make server pick up Podman with nothing to configure.

Podman does not assume Docker Hub. Write image names in full in your stacks:

services:
web:
image: docker.io/library/nginx:latest # not just `nginx:latest`

An unqualified name either fails to resolve or prompts for a registry choice, which a non-interactive compose up cannot answer.

Mount the rootless socket where the container expects it:

Terminal window
podman run -d --name kaio \
-p 8080:8080 \
-v $XDG_RUNTIME_DIR/podman/podman.sock:/var/run/docker.sock:ro \
-v ./data:/app/data \
-e KAIO_ADDR=0.0.0.0:8080 \
-e KAIO_DB=sqlite:/app/data/kaio.db \
ghcr.io/rgaidot/kaio:latest

Examples throughout these docs use docker. On a Podman host, substitute podman, including for the verification commands in Environment variables.

Kaio, built by Régis Gaidot