Skip to content

Set up a container host

TruePPM ships as a set of Docker container images, started together with a single docker compose up -d (see Installation). If you have never run a container before, start here — this page explains what that command actually does and gets a container-capable machine ready to run it. If you already have Docker (or Podman) working, skip straight to Installation.

A container is a packaged application plus everything it needs to run — the code, the language runtime, and the system libraries — bundled into one unit that runs the same way on your laptop as it does on a server. It is not a virtual machine: containers share the host computer’s operating system kernel instead of booting a whole second copy of one, which is why they start in a second or two rather than a minute.

An image is the packaged, read-only template for a container — think of it as an installer that has already been run. A container is a running instance of an image. You can start several containers from the same image, throw one away, and start a fresh one without reinstalling anything.

TruePPM is not one container, it is several — a database, a cache, the API server, a background job worker, and the web frontend — that all need to start together and talk to each other. Docker Compose is the tool that reads a single file (docker-compose.yml, already checked into TruePPM’s repository) describing all of those containers and their connections, and starts, stops, or rebuilds the whole group with one command. That is what docker compose up -d does: it is not one program called “docker compose up,” it is Compose reading the file and bringing up every service it lists.

Docker is both the name of the company that popularized this technology and the name of the background service (the “engine” or “daemon”) that actually creates and runs containers on your machine. Installing “Docker” or “a container engine” means installing that background service — Compose is a command that talks to it, not a replacement for it.

You need a working container engine before docker compose up -d will do anything. Pick one of these three. All three give you a docker command and a Docker-compatible compose command; small differences that matter for TruePPM are called out under each one.

The reference implementation, made by Docker, Inc. Install it from the vendor’s own instructions:

→ docs.docker.com/desktop

Docker Desktop bundles the engine, the docker CLI, and docker compose in one app with a GUI for starting/stopping it and adjusting its resource limits. This is the path most evaluators want.

An open-source alternative from SUSE, also GUI-based and free for any use (Docker Desktop’s free tier has licensing restrictions for larger companies; Rancher Desktop has none). Install from:

→ docs.rancherdesktop.io

Give it the same 4 CPU / 8 GB minimum as Docker Desktop, above. On macOS and Linux the setting is under Preferences → Virtual Machine; on Windows, Rancher Desktop runs inside WSL 2, whose CPU and memory limits come from WSL’s own .wslconfig file.

A daemonless, rootless alternative sponsored by Red Hat. The CLI (podman) and its GUI (Podman Desktop) are separate downloads:

→ podman.io (the podman CLI and engine, all platforms) → podman-desktop.io (the optional GUI)

All three vendors above ship a GUI wrapper, which exists mainly to run a Linux virtual machine on macOS or Windows. On Linux, that virtual machine is unnecessary — you can install the container engine directly, without a GUI:

  • Docker Engine (the same engine Docker Desktop uses): → docs.docker.com/engine/install — pick your distribution. The Ubuntu/Debian instructions install the docker-compose-plugin package alongside the engine, which is what provides the docker compose subcommand; confirm it is included for your distribution before continuing.
  • Podman: install via your distribution’s package manager per podman.io — Podman runs natively on Linux with no virtual machine at all, which is the scenario it was originally built for.
Terminal window
docker compose version

You should see a Compose version printed (v2.x). If instead you get “command not found” or a connection error, the engine either is not installed or is not running yet — start Docker Desktop / Rancher Desktop (or, on Linux, sudo systemctl start docker) and try again.

Once this command succeeds, continue to Installation.