Skip to content

Adding your own containers to Saltbox

Description / nameInput element
Your app's name

Use this guide to extend your setup beyond the stock catalog. While arbitrary deployments fall outside our support scope, we offer resources to facilitate their integration with the Saltbox ecosystem.

Docker Compose

Recommended for GUI applications and web services.

Generate and deploy a Compose file with Traefik publishing:

Docker CLI

Recommended for command‑line utilities where a container is invoked ad hoc or on a schedule.

While such containers can be run via Compose, you may prefer to avoid the extra files. Optionally, register them as functions in your shell environment, so they can be called in their native, host-level form.

appname() {
  docker run --rm -it \
    DOCKER/IMAGE:TAG "$@"
}
shell_bash_bashrc_block_custom
shell_bash_bashrc_block_custom: |

  appname() {
    docker run --rm -it \
      DOCKER/IMAGE:TAG "$@"
  }
shell_zsh_zshrc_block_custom
shell_zsh_zshrc_block_custom: |

  appname() {
    docker run --rm -it \
      DOCKER/IMAGE:TAG "$@"
  }

Then call from your regular shell with a command such as appname --help.

Example

yt-dlp() {
  docker run --rm -it \
    -v "$(pwd)":/downloads:rw \
    -u $(id -u):$(id -g) \
    ghcr.io/jauderho/yt-dlp:latest "$@"
}
speedtest() {
  docker run --rm -it \
    gists/speedtest-cli "$@"
}
shell_bash_bashrc_block_custom
shell_bash_bashrc_block_custom: |

  yt-dlp() {
    docker run --rm -it \
      -v "$(pwd)":/downloads:rw \
      -u $(id -u):$(id -g) \
    ghcr.io/jauderho/yt-dlp:latest "$@"
  }

  speedtest() {
    docker run --rm -it \
      gists/speedtest-cli "$@"
  }
shell_zsh_zshrc_block_custom
shell_zsh_zshrc_block_custom: |

  yt-dlp() {
    docker run --rm -it \
      -v "$(pwd)":/downloads:rw \
      -u $(id -u):$(id -g) \
    ghcr.io/jauderho/yt-dlp:latest "$@"
  }

  speedtest() {
    docker run --rm -it \
      gists/speedtest-cli "$@"
  }

Call using yt-dlp and speedtest commands.

Ansible Roles

Recommended when you need more automation and are comfortable working with YAML and Jinja2.

Develop and maintain your own Saltbox-compatible roles in a dedicated playbook codespace: