mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:21:09 +02:00
mana-search-go → mana-search mana-notify-go → mana-notify mana-crawler-go → mana-crawler mana-api-gateway-go → mana-api-gateway Legacy NestJS versions are deleted, suffix no longer needed. Updated all references in docker-compose, CLAUDE.md, package.json, Forgejo workflows, and service package.json files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
mana-search (Go)
Go replacement for the NestJS mana-search service. Unified web search and content extraction microservice using SearXNG + Redis.
Architecture
- Language: Go 1.25
- Search Engine: SearXNG (meta-search)
- Cache: Redis (graceful degradation if unavailable)
- Metrics: Prometheus
- Port: 3021
Endpoints
Search
POST /api/v1/search— Web search via SearXNGGET /api/v1/search/engines— List available enginesGET /api/v1/search/health— Search service health + cache statsDELETE /api/v1/search/cache— Clear all cached results
Extract
POST /api/v1/extract— Extract content from URL (readability + optional markdown)POST /api/v1/extract/bulk— Bulk extract (max 20 URLs, configurable concurrency)
System
GET /health— Health check (SearXNG + Redis)GET /metrics— Prometheus metrics
Commands
go run ./cmd/server # Dev
go build -o bin/mana-search ./cmd/server # Build
go test ./... # Test
Environment Variables
| Variable | Default | Description |
|---|---|---|
PORT |
3021 | Server port |
SEARXNG_URL |
http://localhost:8080 | SearXNG base URL |
SEARXNG_TIMEOUT |
15000 | SearXNG timeout (ms) |
SEARXNG_DEFAULT_LANGUAGE |
de-DE | Default search language |
REDIS_HOST |
localhost | Redis host |
REDIS_PORT |
6379 | Redis port |
REDIS_PASSWORD |
Redis password | |
CACHE_SEARCH_TTL |
3600 | Search cache TTL (seconds) |
CACHE_EXTRACT_TTL |
86400 | Extract cache TTL (seconds) |
EXTRACT_TIMEOUT |
10000 | Content extraction timeout (ms) |
EXTRACT_MAX_LENGTH |
50000 | Max extracted text length (chars) |
CORS_ORIGINS |
localhost:3000,5173,8081 | Allowed CORS origins |
Search Categories
| Category | Engines |
|---|---|
general |
Google, Bing, DuckDuckGo, Brave, Wikipedia |
news |
Google News, Bing News |
science |
arXiv, Google Scholar, PubMed |
it |
GitHub, StackOverflow, NPM, MDN |
Docker
Uses the same docker-compose.dev.yml from services/mana-search/ for SearXNG + Redis.
# Start SearXNG + Redis
cd services/mana-search && docker-compose -f docker-compose.dev.yml up -d
# Run Go service
cd services/mana-search && go run ./cmd/server