# 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 - **Host:** searxng LXC (CT 102 on utility node, 192.168.1.241) - **IP:** 192.168.1.102 / 100.64.0.15 (Tailscale) - **Install:** `/opt/searxng/` (Docker Compose) - **User:** zvx - **URL:** https://echo6.co - **Redirect:** https://search.echo6.co → https://echo6.co (301 permanent) ## 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//`) ## 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 ```bash # Access CT 102 via utility Proxmox host ssh root@192.168.1.241 'pct exec 102 -- ' # 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.co` → `100.64.0.15:8080` + Matrix `.well-known` handlers - `search.echo6.co` → 301 redirect to `https://echo6.co` **dnsmasq (Contabo):** - `echo6.co` → `100.64.0.8` (utility Caddy) **GoDaddy DNS:** - `@` (echo6.co) → `199.6.36.163` (home) - `search` → `199.6.36.163` (home) --- *Last updated: 2026-02-17 — Initial creation after Echo6 homepage deployment*