Files changed: .gitignore CLAUDE.md credentials engine/.embcache.json engine/changelog.md engine/config.yaml engine/lib/__pycache__/agent.cpython-312.pyc engine/lib/agent.py engine/lib/lint.py engine/lint-report.md engine/sweep-full.log engine/sweep.sh vault/.obsidian/graph.json vault/.obsidian/workspace.json vault/INDEX.md vault/archive/projects/mmud/last-ember-chronicle.html vault/archive/projects/mmud/last-ember-howto.html vault/archive/projects/mmud/last-ember.html vault/archive/projects/mmud/mmud-phase5-prompt.md vault/archive/projects/mmud/mmud-phase6-prompt.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/01-update-planned.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/02-npc-nodes.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/03-darkcragg.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/04-dcrg-node.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/05-phase5.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/06-phase6.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/README.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/mmud-project.md vault/docs/hardware/environment.md vault/docs/hardware/ip-allocation.md vault/docs/matrix/archivist.md vault/docs/matrix/matrix_host.md vault/docs/matrix/mautrix_signal.md vault/docs/matrix/synapse.md vault/docs/matrix/synapse_retention_discovery.md vault/docs/navi/cc-rules.md vault/docs/navi/deployment.md vault/docs/navi/themes.md vault/docs/services/ots-setup.md vault/docs/services/services.md vault/docs/services/usenet.md vault/docs/software/authentik.md vault/docs/software/caddy.md vault/docs/software/dns.md vault/docs/software/geo-tools.md vault/docs/software/recon.md vault/docs/software/searxng.md vault/glossary.md vault/notes/echo6-landing-page-data-export.md vault/notes/ia-download-queue.md vault/plans/vaultwarden-plan.md vault/projects/advbbs-project.md vault/projects/argus.md vault/projects/deploy-livesync.md vault/projects/matrix-synapse-deployment.md vault/projects/meshtastic-headscale-runbook.md vault/projects/mmud-project.md vault/runbooks/add-peertube-channel.md vault/runbooks/authentik-access-groups.md vault/runbooks/authentik-create-invitation.md vault/runbooks/authentik-oidc-application.md vault/runbooks/authentik-upgrade.md vault/runbooks/ct-runbook.md vault/runbooks/edge2-access-reference.md vault/runbooks/expose-service-contabo.md vault/runbooks/expose-service-edge2.md vault/runbooks/expose-service-home.md vault/runbooks/headscale-onboard-node.md vault/runbooks/ia-cli-reference.md vault/runbooks/ia-download-mirror.md vault/runbooks/idahomesh-bridge-setup.md vault/runbooks/idahomesh-vpn-device-setup.md vault/runbooks/lxc-service-migration.md vault/runbooks/mailcow-create-mailbox.md vault/runbooks/meshmonitor-password-reset.md vault/runbooks/meshtastic-sidecar-node.md vault/runbooks/meshtasticd-sim-nodes-runbook.md vault/runbooks/nordvpn-lxc.md vault/runbooks/peertube-remote-runner.md vault/runbooks/pg-backup.md vault/runbooks/pi-nas-omv-runbook.md vault/runbooks/pipeline-patterns.md vault/runbooks/proxmox-create-ubuntu-vm.md vault/runbooks/proxmox-onboard-node.md vault/runbooks/recon-operations.md vault/runbooks/recon-service-integration.md vault/runbooks/syncthing-add-node.md vault/session-resume/SESSION-HANDOFF-meshai-test.md
144 lines
5.1 KiB
Markdown
144 lines
5.1 KiB
Markdown
---
|
|
title: SearXNG — Echo6 Search Homepage
|
|
type: reference
|
|
tags:
|
|
- proxmox
|
|
aliases: []
|
|
related:
|
|
- [[echo6-landing-page-data-export]]
|
|
- [[caddy]]
|
|
- [[ip-allocation]]
|
|
- [[headscale-onboard-node]]
|
|
- [[services]]
|
|
updated: 2026-06-18
|
|
---
|
|
# 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`: 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 -- <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-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]]*
|