Set up your machine
Taisce runs in containers. The model that reads conversations runs in Ollama, on your machine and outside those containers. So every machine needs the same things, and differs only in how you get them:
- Docker with the Compose plugin, so
docker compose versionanswers. - Ollama, reachable from inside a container at
http://host.docker.internal:11434. The compose file maps that name to your machine, and Taisce's worker calls the model through it. jqto read JSON, anduuidgento make idempotency keys.
Follow the section for your system, then run the check. It is the same on every system, and it tests the one thing that differs between them: whether a container can reach the model.
Linux
Docker
Install Docker Engine and the Compose plugin from Docker's own repository, following Install Docker Engine for your distribution. Every distribution ends with the same packages:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Ubuntu, Debian
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Fedora, RHEL
To run docker without sudo, add yourself to the docker group and log in again. Membership of
that group is equivalent to root on the machine, so decide it rather than copy it:
sudo usermod -aG docker "$USER"
Ollama
curl -fsSL https://ollama.com/install.sh | sh
The installer runs Ollama as a systemd service listening on 127.0.0.1:11434. On Linux a container
cannot reach that address: there, host.docker.internal is the address of Docker's bridge, not your
machine's loopback. Tell the service to listen on every interface:
sudo systemctl edit ollama.service
In the editor that opens, add:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Then restart it:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Don't also start ollama serve in a terminal: the service already holds the port.
Ollama has no authentication. Listening on 0.0.0.0 lets anything that can reach your machine
use it, not only your containers. On a machine other people can reach, allow port 11434 only from
Docker's networks, which Docker takes from 172.17.0.0/16 upwards by default. With ufw, which denies
incoming connections by default:
sudo ufw allow from 172.16.0.0/12 to any port 11434 proto tcp
jq and uuidgen
sudo apt-get install jq uuid-runtime # Ubuntu, Debian
sudo dnf install jq util-linux # Fedora, RHEL
macOS with Colima
Colima runs Docker in a small Linux virtual machine. The images are published for linux/arm64, so
on Apple silicon they run without emulation. uuidgen comes with macOS.
brew install colima docker docker-compose jq
Homebrew installs Compose as a plugin in a directory Docker doesn't search by default. Add it to
~/.docker/config.json, next to anything already in that file:
{
"cliPluginsExtraDirs": ["/opt/homebrew/lib/docker/cli-plugins"]
}
/opt/homebrew is the prefix on Apple silicon; brew --prefix prints yours.
Start the virtual machine. The model doesn't run inside it, so it only needs room for PostgreSQL and Taisce:
colima start --cpu 4 --memory 8
Install Ollama from ollama.com/download and open it. It listens on
127.0.0.1:11434, and under Colima host.docker.internal reaches your Mac's loopback, so containers
reach Ollama as it is. Leave OLLAMA_HOST unset. That keeps a server with no authentication off
your network.
Using Docker Desktop instead of Colima? Skip the Colima steps and run the check. Nothing else on this page changes.
Windows with WSL2
Every command in the quickstart is a Linux shell command. On Windows, run them in a Linux distribution under WSL2, not in PowerShell.
In PowerShell, as administrator:
wsl --install
Restart when asked. This installs Ubuntu. Open Ubuntu from the Start menu and work in your Linux
home directory (cd ~), not under /mnt/c: Linux reaches files on the Windows drive much more
slowly. Inside Ubuntu:
sudo apt-get install jq uuid-runtime
Then choose where Docker runs. Use one or the other: Docker Desktop requires that Docker Engine is not also installed inside the distribution.
With Docker Desktop
-
Install Docker Desktop with the WSL 2 based engine. Under Settings → Resources → WSL integration, check that Ubuntu is on.
dockerinside Ubuntu then talks to Docker Desktop. -
Install Ollama for Windows.
-
Run the check from Ubuntu. If it can't reach Ollama, make Ollama listen beyond loopback: in PowerShell, run the line below, then quit Ollama from the taskbar and start it again from the Start menu. If Windows Firewall asks, allow Ollama on private networks only.
[Environment]::SetEnvironmentVariable("OLLAMA_HOST", "0.0.0.0:11434", "User")
With Docker Engine inside Ubuntu
Follow the Linux section inside Ubuntu, for Docker and for Ollama. Run Ollama inside Ubuntu
too, not on Windows: with Docker Engine in the distribution, host.docker.internal is the WSL
virtual machine, which is where Ollama then is.
- With an NVIDIA GPU, install the driver on Windows only, and no Linux display driver inside WSL. WSL passes the GPU through to Ubuntu.
- If
systemctlisn't available in your distribution, the installer can't run Ollama as a service. RunOLLAMA_HOST=0.0.0.0:11434 ollama servein a terminal of its own instead.
Check that a container reaches the model
docker compose version
docker run --rm --add-host host.docker.internal:host-gateway curlimages/curl:8.11.1 \
-sS --max-time 5 http://host.docker.internal:11434/v1/models | jq -r '.data[].id'
You should see the Compose version, then every model Ollama has. Before you pull one, the list is empty and the command prints nothing after the version, but it doesn't fail either:
Docker Compose version …
qwen3.6:35b-a3b-mxfp8
The second command starts a throwaway container and asks Ollama for its models from inside it. That
is the path Taisce's worker takes; --add-host does for this container what the compose file does
for Taisce's.
When the check fails
curl: (7) Failed to connect to host.docker.internal port 11434 means nothing answered from inside
the container:
| System | Most likely | Fix |
|---|---|---|
| Linux | Ollama listens on 127.0.0.1 only. ss -ltn | grep 11434 shows it. | Set OLLAMA_HOST in the service, as above. |
| Linux | A firewall drops connections from Docker's networks. | Allow port 11434 from them, as above. |
| macOS with Colima | Ollama isn't running. curl -s localhost:11434/v1/models on the Mac fails too. | Open the Ollama app. |
| Windows, Docker Desktop | Ollama listens on loopback only, or the firewall blocks it. | Set OLLAMA_HOST, as above. |
| Windows, Docker Engine in Ubuntu | Ollama runs on Windows, outside the distribution. | Install and run it inside Ubuntu. |
docker: command not found or 'compose' is not a docker command means Docker or the Compose
plugin is missing: go back to your system's Docker steps.
What this page was run on
The macOS steps were run on 2026-09-13 on Apple silicon, with Colima 0.10.3 (vz, with a network
address) and Docker Compose 5.5.0. A container reached a server bound only to the Mac's 127.0.0.1
through host.docker.internal, and the check listed Ollama's models.
The Linux and Windows sections follow Docker's, Ollama's and Microsoft's documentation as read on that day, and have not been run on those systems yet. #33 tracks running them.