Files
infrastructure/roles/codesearch/defaults/main.yml
Leonidas SpyropoulosandLeonidas Spyropoulos a37df93f21 feat(codesearch): implement zoekt-based code search role
Add complete codesearch role with zoekt implementation. Zoekt provides
disk-based sharded indexing that avoids OOM issues on 8GB systems,
with per-package .zoekt shard files and automatic discovery.

- Implement fetch-sources script that clones archlinux/packaging/state
  to determine current package list and versions, then downloads
  PKGBUILDs and upstream sources from GitLab with parallel job support
  and idempotent re-runs
- Add zoekt-webserver systemd service for search frontend
- Add zoekt-index service/timer for incremental index generation
- Configure nginx reverse proxy to port 6070 with TLS
- Set up firewall rules for HTTP/HTTPS and monitoring access

Architecture:
- codesearch-extract.timer: Daily fetch trigger
- codesearch-extract.service: Runs fetch-sources to download sources
- codesearch-index.timer: Runs every 5 minutes after extraction
- codesearch-index.service: Builds zoekt shards
- codesearch-webserver.service: Serves search UI from disk shards

Fixes: infrastructure#808

Signed-off-by: Leonidas Spyropoulos <artafinde@archlinux.org>
2026-05-26 14:40:32 +01:00

26 lines
945 B
YAML

---
codesearch_volume_device: /dev/sdb
codesearch_domain: codesearch.archlinux.org
codesearch_state_repo_url: "https://gitlab.archlinux.org/archlinux/packaging/state.git"
codesearch_state_repo_dir: /srv/codesearch/packaging-state
codesearch_state_repos: "core-x86_64 core-any extra-x86_64 extra-any"
codesearch_user: codesearch
codesearch_group: codesearch
codesearch_extract_schedule: "*-*-* 02,14:30:00"
codesearch_zoekt_version: "latest"
codesearch_zoekt_web_port: 6070
codesearch_index_parallelism: 4
codesearch_index_concurrent: 1
codesearch_sources_dir: /srv/codesearch/sources
codesearch_index_dir: /srv/codesearch/index
codesearch_state_dir: /srv/codesearch/state
codesearch_fetch_workdir: /var/lib/codesearch/fetch-work
codesearch_log_dir: /var/log/codesearch
codesearch_gitlab_base: "https://gitlab.archlinux.org/archlinux/packaging/packages"
codesearch_gitlab_token: "{{ vault_codesearch_gitlab_token }}"
codesearch_fetch_jobs: 2