echo6-docs/docs/software/searxng.md
Matt Johnson e9231ac24a Migration: consolidate Echo6 docs to cortex with full infrastructure cleanup sync
- Documents recent infrastructure cleanup (8 CTs destroyed, 35 DNS records removed, Headscale cleanup)
- Adds 24 new runbooks covering Authentik, PeerTube, Meshtastic, RECON, Proxmox, Mailcow, Internet Archive, GPU routing
- Adds project documentation for headscale, vaultwarden, peertube, matrix, mmud, advbbs, arr stack
- Updates services.md, environment.md, caddy.md, authentik.md to match live infrastructure
- Removes 4 deprecated runbook duplicates (canonical versions live in projects/)
- Adds .gitignore for binary archives and editor temp files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 06:02:16 +00:00

4.8 KiB

SearXNG — Echo6 Search Homepage

Overview

SearXNG is deployed as the branded Echo6 search homepage at echo6.co. The default simple theme is overridden with custom templates (base.html, index.html) and static assets via Docker bind mounts. Features a cyberpunk aesthetic with JetBrains Mono font, cyan/yellow palette, top navigation bar with service links, and a waffle app launcher menu.

Location

Stack

Component Technology Location
Search engine SearXNG (Docker, v2026.2.6) searxng container
Cache Valkey (Redis-compatible) valkey container
Reverse proxy Utility Caddy (CT 101) 192.168.1.101
SSL certs acme.sh (Let's Encrypt) /etc/caddy/certs/ on CT 101

Theme Customization

Custom Echo6 theme applied via Docker bind mounts that override SearXNG's simple theme:

Overridden Files

Override Container Path Purpose
custom/templates/simple/base.html /usr/local/searxng/searx/templates/simple/base.html Nav bar, CSS, JS, footer, waffle menu
custom/templates/simple/index.html /usr/local/searxng/searx/templates/simple/index.html Homepage (Echo6 logo + search bar)
custom/img/echo6-logo.png /usr/local/searxng/searx/static/themes/simple/img/echo6-logo.png Echo6 logo
custom/img/favicon.png /usr/local/searxng/searx/static/themes/simple/img/favicon.png Echo6 favicon

Brand Palette

Variable Value Usage
--bg-primary #0a0e17 Page background
--bg-secondary #111827 Cards, nav, waffle
--bg-tertiary #1a2332 Hover states
--accent-cyan #28C0E8 Links, focus glow, active states
--accent-yellow #F0D848 Logo accents, highlights
--text-primary #e0e6ed Main text
--text-secondary #7a8ca0 Muted text
--border #1e3a5f Borders
--border-focus #28C0E8 Focus ring
Font JetBrains Mono All text

Layout

  • Homepage: Centered Echo6 logo + pill-shaped search bar (viewport-locked, no scroll)
  • Results page: Two-column grid (1fr 25rem) — results left, sidebar right
  • Nav bar: Left: .//files, .//stream — Right: .//photos, .//mail, waffle menu, login avatar
  • Waffle menu: 3x3 grid of service tiles (Aurora, Stream, Files, Watchtower, Photos, Mail, Cloud, Admin, Search) with inline SVG icons
  • All nav links: Use Authentik SSO launch URLs (https://auth.echo6.co/application/launch/<slug>/)

Configuration

Config file: /opt/searxng/searxng-config/settings.yml (mounted to /etc/searxng/settings.yml)

Key settings:

  • general.instance_name: "Echo6"
  • ui.default_theme: simple
  • ui.theme_args.simple_style: dark
  • ui.center_alignment: false (enables full-width results layout)
  • server.base_url: "https://echo6.co/"

Environment: Set in docker-compose.yml:

  • SEARXNG_BASE_URL=https://echo6.co/
  • INSTANCE_NAME=Echo6

Key Files

/opt/searxng/
├── docker-compose.yml        # Compose config (searxng + valkey)
├── searxng-config/
│   └── settings.yml          # SearXNG configuration
└── custom/
    ├── templates/simple/
    │   ├── base.html          # Custom base template (nav, CSS, JS, footer, waffle)
    │   └── index.html         # Custom homepage (Echo6 logo + search bar)
    └── img/
        ├── echo6-logo.png     # Echo6 logo
        └── favicon.png        # Echo6 favicon

Commands

# Access CT 102 via utility Proxmox host
ssh root@192.168.1.241 'pct exec 102 -- <command>'

# Restart SearXNG
ssh zvx@192.168.1.102 'cd /opt/searxng && docker compose restart searxng'

# View logs
ssh zvx@192.168.1.102 'cd /opt/searxng && docker compose logs -f searxng'

# Full recreate (after compose changes)
ssh zvx@192.168.1.102 'cd /opt/searxng && docker compose down && docker compose up -d'

# Push template file via pct
scp /tmp/file.html root@192.168.1.241:/tmp/
ssh root@192.168.1.241 'pct push 102 /tmp/file.html /opt/searxng/custom/templates/simple/file.html'

# Test locally
curl -s http://192.168.1.102:8080 | head -30

Caddy Configuration

Utility Caddy (CT 101):

  • echo6.co100.64.0.15:8080 + Matrix .well-known handlers
  • search.echo6.co → 301 redirect to https://echo6.co

dnsmasq (Contabo):

  • echo6.co100.64.0.8 (utility Caddy)

GoDaddy DNS:

  • @ (echo6.co) → 199.6.36.163 (home)
  • search199.6.36.163 (home)

Last updated: 2026-02-17 — Initial creation after Echo6 homepage deployment