Titan Search — Self-Hosted Private AI Search
A private, self-hosted search infrastructure that solves Google's CAPTCHA blocking of automated browsing — with zero tracking, unlimited queries, and an AI synthesis layer.
Problem
Google blocks automated browsing with CAPTCHAs. For an AI Operating System that needs to research continuously, this was a hard wall:
- Every automated research query eventually hit a CAPTCHA challenge
- Browser automation against Google is unreliable and rate-limited
- The system needed unlimited, private, reliable search — not a workaround
Solution
A fully self-hosted search stack:
- SearXNG (open-source metasearch engine) in Docker — aggregates results from multiple engines without tracking users
- Custom AI synthesis layer — wraps raw results with an AI-generated summary
- Private by design — no search history, no tracking, no third-party cookies
Architecture
AI Agents (Hermes, Claude, Gemini)
│
▼
titan-search (synthesis wrapper)
│
▼
SearXNG (Docker, 127.0.0.1:8888)
│
▼
Multiple search engines (aggregated, untracked)
Key decisions:
- SearXNG bound to
127.0.0.1only — never exposed publicly (ADR-010) - Custom
settings.ymlbranded “Titan Search” - UID permissions fixed for container security (not running as root)
- Result: 42 results per query, no CAPTCHAs, unlimited volume
Live Evidence
| Metric | Result |
|---|---|
| CAPTCHA blocks | 0 (vs constant with Google) |
| Results per query | 42 |
| Cost | €0 (self-hosted, existing VPS) |
| Privacy | No tracking, no history |
| Availability | 24/7, no rate limits |
Learnings
- Self-hosted beats workaround. Google’s CAPTCHA isn’t a technical challenge to solve — it’s a signal to own your infrastructure.
- Metasearch is the privacy answer. Aggregating engines means no single provider builds a profile of you.
- The AI layer changes everything. Raw search results are data; synthesized answers are intelligence.
Self-Critique
- Search result quality varies by engine health — needs better failover
- No caching layer yet — repeated queries re-fetch
- Synthesis quality depends on the model used; could be improved with a dedicated ranking step
Evidence References
- Repo:
/root/2nd-brain(architecture docs) - Live:
127.0.0.1:8888(private, Tailscale-only)