HomeDocumentationAPI Reference
Log In
Documentation

Run Sandfly with Podman

Some Linux distributions (aka distros), such as Red Hat Enterprise Linux (RHEL) and its related distros, officially support Podman rather than Docker. Sandfly is able to run under Podman on those distros by performing the following steps, which have been tested on RHEL 8.7 and 9.0 releases.

❗️

IMPORTANT: Server and Node installation documentation supplemental process

This is a supplemental process for the Server and Node installation documentation. Do not complete these steps unless directed to by either of those processes.

Podman Preparation

Required Packages

Install Podman and other required, supporting packages:

sudo dnf install podman podman-docker podman-plugins dnsmasq

Ignore any "match" error messages. Depending on the version of Podman being used, some packages may no longer be available or required.

ℹ️

INFO: The podman-docker Package Installs a Wrapper Script

The podman-docker package installs a wrapper script that runs 'docker' commands with Podman. The podman-plugins and dnsmasq packages provide the podman dnsname plugin to allow DNS-based name resolution between containers in a Podman network, which Sandfly depends on.

Podman Modes

Sandfly supports using Podman in either the rootful or rootless user mode. When executing the Sandfly installation and start scripts during the normal installation process:

  • To run Podman as rootful, run those scripts via sudo or as the root user.
  • To run Podman as rootless, run those scripts as a normal user.

Note, however, that running the installation script as a normal user will prompt for the sudo password in order to perform some of the actions required to allow the Sandfly Server to run.

Mode Actions (Informational)

This section provides details on what actions are taken by the Sandfly installation and start scripts to set up and run Podman. No additional actions are needed to be done on your part, this information is only provided for your awareness.

Rootful User Mode Actions

  1. If SELinux is running, the script will need to set the context of the setup_data folder to allow the container write access.
  2. The start scripts will create container files in the /etc/containers/systemd folder to allow systemd to start the containers at boot time.

Rootless User Mode Actions

  1. If SELinux is running, the script will need to set the context of the setup_data folder to allow the container write access.
  2. Modify sysctl.conf to allow an unprivileged process to bind to ports 80 and 443 (NOTE: requires root access via sudo).
  3. Enable Linger mode for the current user to prevent containers from shutting down at logout and to start the containers at boot time.
  4. Create container files in the ~/.config/containers/systemd folder to allow systemd to start the containers at boot time.
  5. If Podman is version 5 or later and the default Rootless Network Cmd is configured to use pasta, the installation script will create or modify the ~/.config/containers/containers.conf file to use slirp4netns as the default_rootless_network_cmd.

Continue Installing Sandfly

If you attempted to install Sandfly on a Podman system before the dnsname plugin was installed, you must delete the sandfly-net network before attempting the installation again (it will be automatically re-created by the Sandfly scripts):

sudo podman network rm sandfly-net

At this point return to the referencing process and proceed with the remaining Sandfly installation and startup steps while keeping in mind which option you wish to use for the Podman user mode.