Ollama
Run open large language models locally
Ollama runs open large language models locally, backed by remote compute. This image bundles the Ollama server with a built-in web chat interface — open the page, pick a model, and start chatting. The Ollama HTTP API is served from the same port for your own apps.
Usage
1. Deploy
dxflow workflow create --identity ollama hub://ollama
# Start with defaults, or tune per run with --override
dxflow workflow start ollama
dxflow workflow start ollama \
--override env.app.PASSWORD=my-strong-pass \
--override env.app.STARTUP_MODEL=qwen2.5:1.5b
# Publish the web port on an HTTPS link
dxflow workflow start ollama --link
2. Open the interface
Open your browser at http://localhost:8080 and sign in as dxflow with the password you set in PASSWORD. The chat UI lists the installed models — pick one and start a conversation. The streaming response renders as it is generated. A start given --link publishes port 8080 at an HTTPS URL printed on the start line, serving the chat UI and the API from anywhere.
3. Use the API
The Ollama HTTP API is proxied under the same port at /api, behind the same credential, so your own tools can call it:
curl -u dxflow:my-strong-pass http://localhost:8080/api/chat -d '{
"model": "smollm2:135m",
"messages": [{ "role": "user", "content": "Hello!" }]
}'
Configuration
name: ollama
tags:
- ai
steps:
- name: app
runtime: docker
mode: parallel
image: ghcr.io/dxflow-ai/ollama:latest
volumes:
- name: volume
host: ./volume
container: /volume
ports:
- name: web
host: "8080"
container: "8080"
env:
- PASSWORD=dxflow
- STARTUP_MODEL=smollm2:135m
resources:
cpu: "4"
memory: 8G
link: web
[volume]
app.volume = ./volume
[port]
app.web = 8080
[env]
app.PASSWORD = dxflow
app.STARTUP_MODEL = smollm2:135m
[resource]
app.cpu = 4
app.memory = 8G
{
"arch": ["amd64", "arm64"],
"image": "ghcr.io/dxflow-ai/ollama:latest",
"version": "0.5",
"minimum": {
"cpu": 4,
"memory": "8G",
"storage": "50G"
}
}
Notes
STARTUP_MODELis pulled on startup and selected in the UI (defaultsmollm2:135m, preloaded into the image). Pull more models any time from a terminal withollama pull <name>.- The web interface is a React app (served by nginx) that reverse-proxies to the local Ollama server on
11434— the UI calls it under/ollama/api/*, and the standard API is also exposed directly at/api/*, so the browser and the API share port8080. - Small models suit CPU-only runs; for larger models (7B+), attach a GPU and give the step more memory.
- Set a strong
PASSWORD; it defaults todxflow, which every reader of this page knows. nginx checks it as HTTP basic auth for the userdxflowacross the whole port, so the UI and the API share one credential.