# Perplexica Web Reasearch AI ## Preperation ``` apt update && apt upgrade -y apt install docker.io docker-compose git -y ``` ## Download The Project ``` git clone https://github.com/ItzCrazyKns/Perplexica cd Perplexica mv sample.config.toml config.toml mv .env.example .env nano config.toml ``` ### Edit config.toml run the following command ``` nano config.toml ``` make sure it looks like the following ```yaml [GENERAL] SIMILARITY_MEASURE = "cosine" KEEP_ALIVE = "5m" [MODELS.OPENAI] API_KEY = "" [MODELS.GROQ] API_KEY = "" [MODELS.ANTHROPIC] API_KEY = "" [MODELS.GEMINI] API_KEY = "" [MODELS.CUSTOM_OPENAI] API_KEY = "" API_URL = "" MODEL_NAME = "" [MODELS.OLLAMA] API_URL = "http://ollama:11434" [API_ENDPOINTS] SEARXNG = "http://searxng:8080" ``` ### Edit The Docker Compose File run the following command ``` nano docker-compose.yaml ``` Make Sure It Looks Like The following ```yaml services: searxng: image: docker.io/searxng/searxng:latest volumes: - ./searxng:/etc/searxng:rw ports: - 4000:8080 networks: - perplexica-network restart: unless-stopped ollama: image: ollama/ollama:latest ports: - "11434:11434" volumes: - ollama_data:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] environment: - OLLAMA_HOST=0.0.0.0:11434 networks: - perplexica-network restart: unless-stopped app: image: itzcrazykns1337/perplexica:main build: context: . dockerfile: app.dockerfile environment: - SEARXNG_API_URL=http://searxng:8080 - OLLAMA_API_URL=http://ollama:11434 # Added Ollama API URL ports: - 3000:3000 networks: - perplexica-network volumes: - backend-dbstore:/home/perplexica/data - uploads:/home/perplexica/uploads - ./config.toml:/home/perplexica/config.toml depends_on: - ollama #Ensure ollama is started first restart: unless-stopped networks: perplexica-network: volumes: backend-dbstore: uploads: ollama_data: # Add ollama volume so it does not get lost ``` ### Finally - Execute Docker Compose run the following command ``` docker-compose down && docker-compose up --build -d ``` ## In Case Of Failour run the following commands, i will clean the docker engin from all containers, volumes, images etc ``` docker rm -v -f $(docker ps -qa) docker rmi -f $(docker images -aq) docker volume prune docker system prune sudo systemctl restart docker ``` then start over again