1. Turn on the API#
Most tools, LocalPress included, talk to Podman through its Docker-compatible API. Start it for your user, with no sudo:
systemctl --user enable --now podman.socketThe socket appears at $XDG_RUNTIME_DIR/podman/podman.sock.
2. Keep files owned by you#
In rootless Podman, user IDs inside a container map to different IDs on your machine. Files WordPress creates, like uploads and plugins, can end up owned by a user you can't edit as. The fix is to keep your own user ID inside the container:
podman run --userns=keep-id --user $(id -u):$(id -g) …3. Label folders for SELinux#
Fedora enforces SELinux, which blocks containers from reading folders in your home directory unless they're labelled for container use. Add :z to a mount that several containers share, or :Z for one container only:
-v ~/LocalPress/my-site/public:/var/www/html:z4. Serve on port 80#
Regular users can't use ports below 1024 by default, so rootless containers usually end up on :8080. To allow port 80:
echo 'net.ipv4.ip_unprivileged_port_start = 80' | \
sudo tee /etc/sysctl.d/50-unprivileged-ports.conf
sudo sysctl --system5. Let WordPress reach itself#
WordPress makes HTTP requests to its own address for WP-Cron, Site Health and REST API checks. Inside a container, my-site.localhost points at the container itself, so those requests fail.
6. Wait for the database#
Podman runs container health checks on a fixed schedule, so waiting for one to pass can take up to 30 seconds.
Every step above is handled for you by LocalPress.