Files
infrastructure/roles/codesearch/templates/codesearch-webserver.service.j2
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

15 lines
335 B
Django/Jinja

[Unit]
Description=Zoekt code search web server
After=network.target
[Service]
Type=simple
User={{ codesearch_user }}
Group={{ codesearch_group }}
ExecStart=/usr/local/bin/zoekt-webserver -index {{ codesearch_index_dir }} -listen :{{ codesearch_zoekt_web_port }}
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target