Perplexica Docker 설치 가이드: AI 검색 엔진 (Perplexity 대안)




개요

Perplexica는 Perplexity AI의 오픈소스 대안으로, 프라이버시 중심의 AI 검색 엔진입니다. 질문을 이해하고, 웹을 검색하며, 출처가 인용된 명확한 답변을 제공합니다. OpenAI, Anthropic, Groq, Ollama 등 다양한 LLM을 지원하며, SearXNG 메타검색 엔진을 통해 최신 정보를 가져옵니다. 모든 검색이 로컬에서 처리되어 완전한 프라이버시를 보장합니다.

항목내용
GitHubhttps://github.com/ItzCrazyKns/Perplexica
라이선스MIT
GitHub Stars15K+

Perplexica란?

왜 Perplexica인가?

❌ 기존 검색의 문제점:
   - Google: 광고와 SEO 스팸
   - Perplexity: 월 $20, 데이터 수집
   - ChatGPT: 웹 검색 제한적

✅ Perplexica의 해결책:
   - AI가 질문을 이해하고 답변
   - 출처 인용으로 신뢰성
   - 완전한 프라이버시 (로컬 실행)
   - 무료, 오픈소스
   - 로컬 LLM 지원 (Ollama)

핵심 개념

"검색이 아닌 답변"
- 질문 → AI가 이해 → 웹 검색 → 출처 인용된 답변
- 키워드 매칭이 아닌 의미 검색
- SearXNG로 실시간 최신 정보
- 프라이버시 완전 보장

아키텍처

┌─────────────────────────────────────────┐
│           Perplexica UI                  │
│         (Next.js Frontend)               │
├─────────────────────────────────────────┤
│         Perplexica Backend               │
│    (질문 분석 + 답변 생성)                │
├──────────────┬──────────────────────────┤
│   SearXNG    │         LLM              │
│ (메타검색)   │ (OpenAI/Ollama/Groq)    │
└──────────────┴──────────────────────────┘

주요 기능

🔍 검색 모드

모드설명
Speed Mode빠른 답변
Balanced Mode일반 검색
Quality Mode깊은 연구

🎯 포커스 모드

모드설명
All전체 웹 검색
Academic학술 논문, 연구
YouTubeYouTube 동영상
RedditReddit 토론
Writing Assistant글쓰기 도우미 (웹 검색 없음)
Wolfram Alpha계산, 데이터 분석

🤖 AI 제공자 지원

제공자설명
OpenAIGPT-4, GPT-3.5
AnthropicClaude 3.5, Claude 3
Groq초고속 추론 (3-4초)
Google GeminiGemini Pro
Ollama로컬 LLM (Llama, Mistral)
CustomOpenAI 호환 API

🧩 위젯

위젯설명
날씨실시간 날씨
계산수학 계산
주가주식 가격
기타빠른 참조 카드

🔐 프라이버시

기능설명
로컬 실행모든 처리 로컬
SearXNG익명 메타검색
데이터 저장 없음검색 기록 비공개
Ollama완전 오프라인 가능

시스템 요구 사항

항목최소권장
CPU2 코어4+ 코어
RAM4GB16GB+ (Ollama 사용 시)
GPUNVIDIA RTX (로컬 LLM)
저장소5GB20GB+
포트3000

Docker 설치

방법 1: 원커맨드 설치 (권장)

docker run -d \
  -p 3000:3000 \
  -v perplexica-data:/home/perplexica/data \
  --name perplexica \
  itzcrazykns1337/perplexica:latest

포함 내용: Perplexica + SearXNG (번들)

접속: http://localhost:3000 → 설정 화면에서 API 키 입력

방법 2: Slim 버전 (외부 SearXNG)

docker run -d \
  -p 3000:3000 \
  -e SEARXNG_API_URL=http://your-searxng-url:8080 \
  -v perplexica-data:/home/perplexica/data \
  --name perplexica \
  itzcrazykns1337/perplexica:slim-latest

방법 3: Docker Compose (기본)

# docker-compose.yml
services:
  perplexica:
    image: itzcrazykns1337/perplexica:latest
    container_name: perplexica
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./perplexica-data:/home/perplexica/data

방법 4: Docker Compose + 외부 SearXNG

# docker-compose.yml
services:
  perplexica:
    image: itzcrazykns1337/perplexica:slim-latest
    container_name: perplexica
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - SEARXNG_API_URL=http://searxng:8080
    volumes:
      - ./perplexica-data:/home/perplexica/data
    depends_on:
      - searxng

  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=http://localhost:8080

방법 5: Ollama 통합 (로컬 LLM)

# docker-compose.yml
services:
  perplexica:
    image: itzcrazykns1337/perplexica:latest
    container_name: perplexica
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./perplexica-data:/home/perplexica/data
    extra_hosts:
      - "host.docker.internal:host-gateway"

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ./ollama:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

Perplexica UI에서 설정:

  • Provider: Ollama
  • API URL: http://host.docker.internal:11434
  • Model: llama3.2 또는 원하는 모델

방법 6: 공식 저장소 빌드

# 저장소 클론
git clone https://github.com/ItzCrazyKns/Perplexica.git
cd Perplexica

# Docker Compose로 빌드 및 실행
docker compose up -d

방법 7: Groq (초고속 추론)

Perplexica UI 설정:

  • Provider: Groq
  • API Key: gsk_your-groq-api-key
  • Model: llama-3.1-70b-versatile

특징: 3-4초 응답 시간 (가장 빠름)

방법 8: Traefik + HTTPS

# docker-compose.yml
services:
  perplexica:
    image: itzcrazykns1337/perplexica:latest
    container_name: perplexica
    restart: unless-stopped
    volumes:
      - ./perplexica-data:/home/perplexica/data
    networks:
      - traefik_network
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.perplexica.rule=Host(`search.example.com`)"
      - "traefik.http.routers.perplexica.entrypoints=websecure"
      - "traefik.http.routers.perplexica.tls.certresolver=letsencrypt"
      - "traefik.http.services.perplexica.loadbalancer.server.port=3000"

networks:
  traefik_network:
    external: true

환경 변수

기본 설정

변수설명
SEARXNG_API_URLSearXNG API URL (slim 버전)
PORT서버 포트 (기본: 3000)

UI 설정 (웹 인터페이스)

첫 접속 시 설정 화면에서 구성:

설정설명
Chat Model ProviderOpenAI, Anthropic, Groq, Ollama 등
Chat Model사용할 모델
Embedding Model Provider임베딩 제공자
Embedding Model임베딩 모델
API Keys각 제공자 API 키

config.json 구조

설정은 /home/perplexica/data/config.json에 저장됩니다:

{
  "providers": [
    {
      "name": "openai",
      "apiKey": "sk-your-key",
      "apiUrl": "https://api.openai.com/v1"
    },
    {
      "name": "ollama",
      "apiUrl": "http://host.docker.internal:11434"
    }
  ],
  "chatModel": {
    "provider": "openai",
    "model": "gpt-4o"
  },
  "embeddingModel": {
    "provider": "openai",
    "model": "text-embedding-3-small"
  }
}

초기 설정

1) 첫 접속

URL: http://localhost:3000
→ 설정 화면 자동 표시

2) AI 제공자 설정

OpenAI 사용:

  1. Chat Model Provider → OpenAI
  2. API Key 입력
  3. Model → gpt-4o 선택

Ollama 사용:

  1. Chat Model Provider → Ollama
  2. API URL → http://host.docker.internal:11434
  3. Model → llama3.2

Groq 사용 (추천 – 가장 빠름):

  1. Chat Model Provider → Groq
  2. API Key 입력
  3. Model → llama-3.1-70b-versatile

3) 임베딩 모델 설정

  • OpenAI: text-embedding-3-small
  • Ollama: nomic-embed-text

4) 검색 시작

  1. 검색창에 질문 입력
  2. 포커스 모드 선택 (All, Academic 등)
  3. 답변 + 출처 확인

사용 가이드

검색 예시

일반 검색:

"2025년 AI 트렌드는 무엇인가요?"

학술 검색:

Focus: Academic
"트랜스포머 모델의 최신 최적화 기법"

YouTube 검색:

Focus: YouTube
"Docker 초보자 튜토리얼"

Reddit 검색:

Focus: Reddit
"셀프호스팅 추천 앱"

브라우저 검색 엔진으로 추가

  1. 브라우저 설정 → 검색 엔진
  2. 새 검색 엔진 추가
  3. URL: http://localhost:3000/?q=%s
  4. 주소창에서 바로 Perplexica 사용

API 사용

# 검색 API
curl -X POST 'http://localhost:3000/api/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "Docker best practices 2025",
    "focusMode": "all"
  }'

# 채팅 API
curl -X POST 'http://localhost:3000/api/chat' \
  -H 'Content-Type: application/json' \
  -d '{
    "messages": [
      {"role": "user", "content": "Kubernetes vs Docker Swarm 비교"}
    ]
  }'

SearXNG 설정

SearXNG settings.yml

# searxng/settings.yml
use_default_settings: true

server:
  secret_key: "your-secret-key"
  bind_address: "0.0.0.0"
  
search:
  formats:
    - html
    - json  # JSON 필수!

engines:
  - name: wolframalpha
    disabled: false  # Wolfram Alpha 활성화

JSON 출력 활성화

Perplexica가 SearXNG를 사용하려면 JSON 포맷이 필수입니다.


백업 및 복원

데이터 구조

./perplexica-data/
├── config.json      # 설정
└── database.sqlite  # 채팅 기록

백업

# 컨테이너 정지
docker compose down

# 백업
tar -czvf perplexica-backup-$(date +%Y%m%d).tar.gz perplexica-data/

# 재시작
docker compose up -d

복원

tar -xzvf perplexica-backup.tar.gz
docker compose up -d

업데이트

# 이미지 업데이트
docker pull itzcrazykns1337/perplexica:latest

# 컨테이너 재시작
docker compose down
docker compose up -d

Git 클론 방식:

cd Perplexica
git pull
docker compose up -d --build

트러블슈팅

Ollama 연결 안 됨

Linux: Ollama가 0.0.0.0에 바인딩되어야 함:

# /etc/systemd/system/ollama.service
Environment="OLLAMA_HOST=0.0.0.0"

Docker:

extra_hosts:
  - "host.docker.internal:host-gateway"

API URL: http://host.docker.internal:11434

모델 제공자 미설정 오류

  1. 설정 화면에서 제공자 선택
  2. API 키 입력
  3. 저장

느린 응답

제공자응답 시간
Groq3-4초 (가장 빠름)
OpenAI5-6초
Ollama (로컬)5-10초

추천: 빠른 응답이 필요하면 Groq 사용

SearXNG JSON 오류

settings.yml에서 JSON 포맷 활성화:

search:
  formats:
    - html
    - json

대안 비교

기능PerplexicaPerplexityKhoj
오픈소스
셀프호스팅
로컬 LLM✅ Ollama
출처 인용
포커스 모드✅ 6종
프라이버시✅ 완전
비용무료$20/월무료
설치 난이도쉬움N/A중간

선택 가이드

용도추천
프라이버시 중시Perplexica + Ollama
빠른 응답Perplexica + Groq
간편 사용Perplexity (유료)
개인 AI 어시스턴트Khoj

활용 사례

1. 프라이버시 검색

목적: 검색 기록 비공개

  • Perplexica + Ollama 로컬 LLM
  • SearXNG 익명 검색
  • 데이터 외부 전송 없음

2. 연구/학술

목적: 논문 및 연구 검색

  • Academic 포커스 모드
  • 출처 인용 확인
  • 여러 논문 요약

3. 기술 조사

목적: 개발 관련 검색

  • Stack Overflow, GitHub 등 검색
  • 코드 예제 포함 답변
  • 최신 기술 동향

4. 콘텐츠 리서치

목적: 블로그/기사 작성

  • 다양한 출처 수집
  • 요약 및 비교
  • 인용 정리

5. 브라우저 기본 검색

목적: Google 대체

  • 브라우저 검색 엔진 등록
  • 주소창에서 바로 사용
  • 광고/SEO 스팸 없음

마무리

Perplexica는 Perplexity AI의 강력한 오픈소스 대안입니다. 질문을 이해하고, 웹을 검색하며, 출처가 인용된 답변을 제공합니다. 완전히 로컬에서 실행되어 프라이버시를 보장하며, Ollama를 통해 무료로 사용할 수 있습니다.

핵심 장점

장점설명
프라이버시모든 처리 로컬
출처 인용신뢰할 수 있는 답변
다중 LLMOpenAI, Groq, Ollama
포커스 모드학술, YouTube, Reddit 등
오픈소스무료, 커스터마이징
빠른 설치원커맨드 Docker
SearXNG익명 메타검색

이런 분께 추천

프라이버시 중시하는 검색 사용자
Perplexity 대신 셀프호스팅 원하는 분
연구/학술 검색이 많은 분
로컬 LLM으로 무료 사용하고 싶은 분
Google 광고/스팸에 지친 분



댓글 남기기