Self-Host Perplexica AI: Easy Docker & Ollama Guide
This guide offers a step-by-step walkthrough of how you can deploy your own personal AI assistant, Perplexica, using two powerful, modern technologies: Docker Desktop and the Ollama model.
The objective is to demystify the process of setting up a sophisticated AI application in a local, controlled environment.
- Perplexica – An open-source, personalized AI assistant application that functions as a powerful tool for information retrieval and generation.
- Docker Desktop – Provides the containerization environment, allowing you to package the Perplexica application and its dependencies into a single, isolated unit. This ensures the assistant runs reliably and consistently on any machine, regardless of the operating system.
- Ollama – The engine that brings the intelligence to the assistant. Ollama simplifies running Large Language Models (LLMs) such as
llama3and embedding models likenomic-embed-textdirectly on your own hardware.
Architecture of Perplexica AI

Step 1: Install Docker Desktop
The process starts with navigating to the official Docker website and downloading the installer specific to your operating system (Windows or macOS).
For macOS:
- Go to the official Docker website and download the Docker Desktop for Mac installer (a
.dmgfile). - Double-click the downloaded
.dmgfile to open the installer. - Drag the Docker icon to the Applications folder.
- Double-click the Docker app in your Applications folder to start it. You may need to grant it permissions.

Step 2: Pull the Ollama Models
This step uses the OLLAMA command-line tool to download pre-trained AI models directly to your local machine. By “pulling” the models, you are retrieving the model files from a remote repository, making them available for OLLAMA to run.
Run the following commands in your terminal:
ollama pull llama3
ollama pull nomic-embed-text
llama3– A powerful Large Language Model (LLM) used for generating and understanding human-like text. This forms the core intelligence for the Perplexica assistant.nomic-embed-text– An embedding model crucial for efficient information retrieval. It converts text into numerical vectors (embeddings), allowing the assistant to quickly search and understand the context of information.
Expected Output:
pulling manifest
pulling 6a0746a1ec1a: 100% ▕██████████████████████████████████████▏ 4.7 GB
pulling 4fa551d4f938: 100% ▕██████████████████████████████████████▏ 12 KB
pulling 8ab4849b038c: 100% ▕██████████████████████████████████████▏ 254 B
pulling 577073ffcc6c: 100% ▕██████████████████████████████████████▏ 110 B
pulling 3f8eb4da87fa: 100% ▕██████████████████████████████████████▏ 485 B
verifying sha256 digest
writing manifest
success
pulling manifest
pulling 970aa74c0a90: 100% ▕██████████████████████████████████████▏ 274 MB
pulling c71d239df917: 100% ▕██████████████████████████████████████▏ 11 KB
pulling ce4a164fc046: 100% ▕██████████████████████████████████████▏ 17 B
pulling 31df23ea7daa: 100% ▕██████████████████████████████████████▏ 420 B
verifying sha256 digest
writing manifest
success
Step 3: Clone the Perplexica Repository
Clone the Perplexica source code from GitHub and navigate into the project directory:
git clone https://github.com/ItzCrazyKns/Perplexica.git
cd Perplexica
Expected Output:
Cloning into 'Perplexica'...
remote: Enumerating objects: 6991, done.
remote: Counting objects: 100% (448/448), done.
remote: Compressing objects: 100% (91/91), done.
remote: Total 6991 (delta 386), reused 357 (delta 357), pack-reused 6543 (from 2)
Receiving objects: 100% (6991/6991), 108.62 MiB | 3.19 MiB/s, done.
Resolving deltas: 100% (4362/4362), done.
Note: The original guide references copying a sample config file (
cp sample.config.toml config.toml), but this file may not exist in newer versions of the repository. The configuration is now handled through the web UI (covered in Step 5).
Step 4: Deploy Perplexica AI with Docker Compose
Launch the complete application stack using Docker Compose:
docker compose up -d
docker compose up– Reads thedocker-compose.ymlconfiguration file and starts all defined services.-d– Runs containers in detached (background) mode, freeing up your terminal.

What Happens During Deployment:
| Component | Description |
|---|---|
| Image Pull | The Docker image itzcrazykns1337/perplexica:latest is downloaded from the registry |
| Network | A network (perplexica_default) is created for container communication |
| Volume | A volume (perplexica-data) is created for persistent data storage |
| Container | The Perplexica application starts as an isolated container |
Expected Output:
✔ Image itzcrazykns1337/perplexica:latest Pulled
✔ Network perplexica_default Created
✔ Volume perplexica-data Created
✔ Container perplexica-perplexica-1 Created
Step 5: Access and Configure the AI
Once Perplexica is deployed, access and configure the AI model through its web interface.
Access the UI
Open a web browser and navigate to:
http://localhost:3000
Configure the Model
- Click the Settings icon (cog icon in the bottom left).
- Select Ollama as the Chat Model Provider.
- Set the Ollama API URL to:
http://host.docker.internal:11434This is the correct address for the Docker container to communicate with the OLLAMA service running on your host machine. - Select
llama3:latestas the Chat Model. - Select
nomic-embed-textas the Embedding Model. - Click Save Changes.

Conclusion
This guide walked through a multi-step deployment process to successfully launch a personal AI assistant using a powerful combination of technologies:
- Docker Desktop established the containerization environment.
- OLLAMA models provided the core intelligence —
llama3for LLM capabilities andnomic-embed-textfor efficient information retrieval through embeddings. - Perplexica tied it all together into a clean, accessible web interface running entirely on your local machine.