- 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>
4.8 KiB
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
- 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/<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: simpleui.theme_args.simple_style: darkui.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.co→100.64.0.15:8080+ Matrix.well-knownhandlerssearch.echo6.co→ 301 redirect tohttps://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