Podman Deployment

Run Ferro with rootless containers using Podman and systemd integration.

Quick Start

cd deploy/podman
podman-compose -f podman-compose.yml up -d

Podman Machine (macOS/Windows)

podman machine init
podman machine start
eval $(podman machine env)
podman-compose -f podman-compose.yml up -d

Systemd Integration

Generate and install a systemd user service for auto-start:

podman generate systemd --new --files --name ferro
cp container-ferro.service ~/.config/systemd/user/
systemctl --user enable --now container-ferro.service

This ensures Ferro starts automatically on login and restarts on failure.

SELinux

The Podman configuration includes SELinux label support (:z and :Z volume options) for proper file access on SELinux-enabled systems.

Common Issues

Permission denied on volume

# Use :Z for single-container volumes
podman run -v ./data:/data:Z ghcr.io/wyattau/ferro:latest

Container won't start

# Check logs
podman logs ferro

# Check container status
podman ps -a

Port already in use

# Check what's using port 8080
ss -tlnp | grep 8080

Advantages over Docker

  • Rootless by default (no root daemon)
  • Native systemd integration
  • SELinux support out of the box
  • Compatible with Docker Compose files via podman-compose
  • OCI-compliant containers