Complete Guide to Installing and Using Ollama
Before you start
- 10 min read
- 37 to run in terminal
Boxes marked Run in terminal are what you type; plain text explains why. Check what you need first

Introduction#
Ollama is a lightweight tool that lets you run large language models (LLMs) locally on your own machine. This means you can access powerful AI capabilities without sending your data to third-party services. Ollama makes it easy to download, manage, and run various open-source models like Llama, Mistral, and many others directly on your computer.
Running models locally with Ollama offers several benefits:
- Privacy: Your data stays on your machine
- No internet required after initial model download
- Free to use (though you need sufficient hardware)
- Customizable experience
Prerequisites#
Before installing Ollama, make sure your system meets these requirements:
- Operating System: macOS, Windows, or Linux
- RAM: At least 8GB (16GB+ recommended for better performance)
- Storage: At least 10GB of free space (more for multiple models)
- CPU: 64-bit processor (some models may require AVX2 instructions)
- GPU: Optional but recommended for better performance
Installation Process#
macOS Installation#
curl -fsSL https://ollama.com/install.sh | sh
This downloads and runs the Ollama installation script. Ollama will be installed as an application.
If the command fails, check your internet connection or try downloading the installer directly from the Ollama website.
Windows Installation#
winget install Ollama.Ollama
This uses Windows Package Manager to install Ollama. Alternatively, you can download the installer from the Ollama website.
If you get a "not found" error, make sure you have winget installed or download the .msi installer from the Ollama website.
Linux Installation#
curl -fsSL https://ollama.com/install.sh | sh
This downloads and runs the Ollama installation script, installing Ollama on your Linux system.
If you encounter permission issues, you might need to run the command with sudo.
Running Ollama#
After installation, Ollama starts automatically as a service. You can interact with it through the command line.
Starting Ollama (if not already running)#
ollama serve
This starts the Ollama service if it's not already running. Keep this terminal window open while using Ollama.
If you see "address already in use" errors, Ollama is likely already running.
Default Model Directories#
Ollama stores models in the following default locations:
- macOS:
~/.ollama/models - Linux:
~/.ollama/models - Windows:
C:\Users\<username>\.ollama\models
These directories are created automatically during installation.
Managing Models with Ollama#
Pulling Your First Model#
ollama pull mistral
This downloads the Mistral model, a good general-purpose model that balances performance and resource usage.
Depending on your internet connection, this might take several minutes. The command will show download progress.
Pulling Latest Models#
ollama pull llama3.2:8b
This pulls the 8 billion parameter version of Llama 3.2, one of the newer models available.
Newer models like Llama 3.2 often provide improved capabilities but may require more resources.
Listing Available Models#
ollama list
This shows all models currently downloaded on your system.
If no models appear but you've downloaded some, check if the Ollama service is running.
Running a Model#
ollama run mistral
This starts a chat session with the Mistral model in your terminal.
If you see errors about the model not being found, make sure you've pulled it first.
GPU Configuration#
Setting Up NVIDIA GPU Support#
For NVIDIA GPUs, ensure you have the appropriate drivers and CUDA installed:
# Check CUDA installation nvidia-smi
This displays your GPU information and CUDA version. Ollama works best with CUDA 11.4+.
If the command isn't found, install NVIDIA drivers and CUDA toolkit first.
Configuring GPU Memory Allocation#
CUDA_VISIBLE_DEVICES=0 ollama run llama3:8b --gpu-layers 35
This runs the model on GPU 0 and specifies loading 35 layers onto the GPU.
Adjust the number of GPU layers based on your available VRAM. More layers mean better performance but require more memory.
Setting Up AMD GPU Support#
For AMD GPUs, ensure ROCm is installed:
# Check ROCm installation rocminfo
This verifies ROCm is properly installed. AMD support is more limited than NVIDIA.
If your AMD GPU isn't detected, ensure you have compatible drivers and ROCm version installed.
Intel GPU Configuration#
For Intel Arc GPUs:
ONEAPI_DEVICE_SELECTOR=level_zero:0 ollama run mistral --gpu-layers 32
This enables Intel Arc GPU acceleration through OneAPI.
Intel GPU support is newer and may have limitations compared to NVIDIA support.
Organizing Models#
Creating a Custom Model Directory#
By default, Ollama stores models in its data directory. To use a custom location:
mkdir -p ~/ollama-models
This creates a directory for organizing your models.
The directory won't be used by Ollama automatically; we'll need to configure it.
Configuring Custom Model Directory#
For Linux/macOS:
export OLLAMA_MODELS=~/ollama-models
For Windows (PowerShell):
$env:OLLAMA_MODELS="C:\path\to\ollama-models"
This tells Ollama where to store and look for models.
Note that this setting only applies to the current terminal session. Add it to your shell profile for persistence.
Security Considerations#
Restricting Network Access#
By default, Ollama only listens on localhost. To restrict access further:
OLLAMA_HOST=127.0.0.1:11434 ollama serve
This ensures Ollama only accepts connections from the local machine.
Never expose Ollama to the public internet without proper security measures.
Configuring Firewall Rules#
For Linux (using ufw):
sudo ufw allow from 192.168.1.0/24 to any port 11434
This allows only your local network to access Ollama.
Adjust the IP range to match your specific network configuration.
Setting Up Basic Authentication#
While Ollama doesn't have built-in authentication, you can use a reverse proxy:
# Using nginx as a reverse proxy with basic auth sudo apt install nginx apache2-utils sudo htpasswd -c /etc/nginx/.htpasswd username
Then configure nginx to proxy requests to Ollama with authentication.
This adds a layer of protection when exposing Ollama on a network.
Advanced Model Management#
Removing a Model#
ollama rm mistral
This removes the Mistral model from your system, freeing up disk space.
Make sure you're not currently using the model when removing it.
Pulling a Specific Model Version#
ollama pull llama2:7b
This pulls a specific version of a model (in this case, the 7 billion parameter version of Llama 2).
Larger models provide better quality but require more resources.
Pulling Models from Hugging Face#
Ollama supports importing models from Hugging Face using the Modelfile approach:
echo "FROM hf://huggingface/mistralai/Mistral-7B-v0.1" > Modelfile
This creates a Modelfile that references a Hugging Face model.
Make sure you have proper permissions to access the model if it's not public.
Creating a Model from the Modelfile#
ollama create mistral-hf -f Modelfile
This creates a new model in Ollama based on the Hugging Face definition.
This process may take time as it downloads and converts the model.
Using Ollama With Different Interfaces#
Using the Web UI#
While Ollama doesn't include a web UI by default, you can install a compatible one:
git clone https://github.com/ollama-webui/ollama-webui.git cd ollama-webui docker compose up -d
This sets up a user-friendly web interface for Ollama on http://localhost:3000.
Make sure Docker is installed on your system first.
Using Ollama API#
Ollama also provides a REST API:
curl -X POST http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Why is the sky blue?"
}'
This sends a prompt to Ollama's API and returns the model's response.
If you get connection errors, make sure the Ollama service is running.
Troubleshooting Common Issues#
Model Won't Download#
If a model fails to download:
ollama pull mistral --insecure
This attempts to download using non-secure connections, which can help with certain network issues.
Only use this option if you trust the source.
Out of Memory Errors#
If you encounter out of memory errors:
ollama run mistral --compute=cpu
This forces the model to run on CPU only, which uses less memory but runs slower.
Alternatively, try using smaller models like tinyllama or orca-mini.
Permission Denied Errors#
For Linux users encountering permission issues:
sudo chown -R $(whoami) ~/.ollama
This ensures you have proper ownership of the Ollama directories.
Be careful with sudo commands; only use when necessary.
GPU Not Detected#
If your GPU is not being detected:
# For NVIDIA ollama run mistral --verbose
This shows detailed logs that can help identify GPU-related issues.
Check driver compatibility and ensure your GPU has enough VRAM for the model.
Known Bugs and Workarounds#
GPU Memory Leaks#
Some users report GPU memory not being released properly after using Ollama:
ollama serve --compute=cpu # then restart with GPU
This runs Ollama in CPU-only mode temporarily, which can help reset GPU memory.
Restart Ollama completely if issues persist.
CLI Freezing on Windows#
Some Windows users report the CLI freezing:
ollama run mistral --verbose
Running with verbose output can help identify where issues occur.
The Windows version of Ollama is newer and may have more bugs than macOS/Linux versions.
Model Loading Timeout#
For very large models that time out during loading:
OLLAMA_TIMEOUT=600 ollama run llama3:70b
This increases the timeout to 10 minutes (from the default 3 minutes).
Adjust the timeout value based on your system's performance.
Maintenance#
Updating Ollama#
ollama pull ollama
This updates the Ollama software to the latest version.
It's recommended to update regularly for bug fixes and new features.
Backing Up Your Models#
tar -czf ollama-backup.tar.gz ~/.ollama
For Linux/macOS, this creates a compressed backup of your Ollama data directory.
For Windows, consider using a backup tool like 7-Zip to compress the Ollama directory.
Updating Models#
ollama pull mistral:latest
This updates a model to its latest version.
Note that this downloads the model again, so make sure you have enough disk space.
Advanced Usage#
Creating Custom Models#
You can create custom models by extending existing ones:
echo "FROM mistral PARAMETER temperature 0.7 SYSTEM You are a helpful coding assistant." > CustomModelfile ollama create coder -f CustomModelfile
This creates a custom model with specific parameters and system instructions.
Customizing models can help tailor them to specific tasks.
Running Models with Custom Parameters#
ollama run mistral --temperature 0.2
This runs the model with a lower temperature setting (more focused, less creative responses).
Different parameters can significantly change how the model responds.
Exporting Models#
ollama export mistral > mistral-exported.ollama
This exports a model to a file that can be transferred to another machine.
The exported file contains the complete model and can be large.
Importing Models#
ollama import < mistral-exported.ollama
This imports a previously exported model.
Make sure you have enough disk space before importing.
Additional Resources#
Official Documentation and Support#
- Official Documentation: Ollama Documentation
- GitHub Repository: Ollama on GitHub
- Community Discord: Ollama Discord Server
- Issue Tracker: GitHub Issues
Model Libraries and Resources#
- Ollama Library: Official Model Library
- Hugging Face: Model Repository
- Community Models: Ollama Community Models
These resources provide additional support, updates, and community-contributed content for Ollama users.
Ollama Tags Reference List#
Model Size Tags#
7b- 7 billion parameter models8b- 8 billion parameter models13b- 13 billion parameter models34b- 34 billion parameter models70b- 70 billion parameter modelslatest- Latest version of a model
Model Family Tags#
llama2- Meta's Llama 2 model familyllama3- Meta's Llama 3 model familymistral- Mistral AI modelsorca- Microsoft Research's Orca modelsgemma- Google's Gemma modelsphi- Microsoft's Phi modelswizard- WizardLM modelsvicuna- Berkeley's Vicuna modelsfalcon- Technology Innovation Institute's Falcon models
Specialization Tags#
instruct- Fine-tuned for following instructions (e.g.,mistral:instruct)chat- Optimized for conversation (e.g.,llama2:chat)code- Specialized for programming (e.g.,codellama:7b)vision- Models with image understanding capabilitiesmath- Models optimized for mathematical reasoningmedical- Models with medical knowledge focustiny- Extra small models for resource-constrained environmentsuncensored- Models with fewer content restrictions
Quantization Tags#
q4_0- 4-bit quantization, method 0 (smallest size, lowest quality)q4_1- 4-bit quantization, method 1 (better quality than q4_0)q5_0- 5-bit quantizationq5_1- 5-bit quantization, method 1q8_0- 8-bit quantization (better quality, larger size)f16- 16-bit float precision (high quality, largest size)
Usage Examples#
llama3:8b- 8B parameter version of Llama 3codellama:13b-instruct- 13B CodeLlama optimized for instruction followingmistral:7b-q4_0- 7B Mistral model with 4-bit quantization for smaller sizellama2:70b-chat-q5_0- 70B Llama 2 chat model with 5-bit quantizationgemma:2b-instruct- 2B Gemma instruction modelphi:2.7b- 2.7B Phi model
Custom Tags#
custom- User-created model variantsfinetune- Models that have been fine-tunedmerged- Models created by merging multiple base modelsrag- Models configured for retrieval-augmented generation
Conclusion#
Ollama provides a powerful way to run AI language models on your own hardware. With the commands in this guide, you can install, configure, and manage Ollama and its models effectively. As the project is actively developed, check the official documentation for the latest features and best practices.
Remember that running models locally requires substantial resources, especially for larger models. Start with smaller models if you're facing performance issues, and gradually explore larger ones as you become more familiar with the system.
Consider your security needs when deploying Ollama, especially in multi-user or networked environments. The privacy benefits of local AI only apply when the system is properly secured.
he system.