Why use local models
Data privacy
Queries and results never leave your machine. No data is sent to a third-party API.
No API key needed
Run without an
OPENAI_API_KEY. Ollama serves models directly from your hardware.Air-gapped deployments
Once the model is pulled, the stack runs with no internet access required.
Cost control
No per-token billing. Inference cost is fixed at your hardware’s electricity consumption.
Prerequisites for GPU acceleration
Ollama automatically detects NVIDIA GPUs when the container toolkit is installed. Without GPU support, Ollama falls back to CPU inference, which is significantly slower. Install the NVIDIA container toolkit before starting the stack:GPU support is optional. BoardPulse AI and Ollama will still run on CPU-only hardware — expect higher response latency for larger models.
Enabling Ollama
1
Set OLLAMA_ENABLED in .env
Open your The
.env file and enable Ollama:OLLAMA_BASE_URL points to the ollama container using Docker’s internal DNS. Do not change this value unless you are running Ollama outside of Docker Compose.2
Start the stack with the local-models profile
The
ollama service is gated behind the local-models profile. Use this command to bring up the full stack including Ollama:3
Pull the model into the Ollama container
After the stack is running, pull the model you configured in The download size depends on the model.
OLLAMA_MODEL:qwen3:8b is approximately 5 GB. The model is stored in the ollama-data Docker volume and persists across restarts.4
Verify local inference is working
Send a test query to the API using A successful response confirms that the API is routing requests to Ollama.
preferred_provider: "local":Ollama environment variables
Hybrid routing
Whenpreferred_provider is set to hybrid in a query, BoardPulse AI checks whether Ollama is available and routes to it first. If Ollama is unreachable or OLLAMA_ENABLED is false, the request falls back to the configured cloud provider automatically.
Open WebUI model alias
In Open WebUI (accessible athttp://localhost:3002), the model named boardpulse-executive maps to the value of OLLAMA_MODEL in your .env. Selecting this model in the chat interface sends requests through the BoardPulse AI API to Ollama using your configured local model.