disable zoekt code search + delete indexes (#162) #165

Sammanfogat
supernaut sammanfogade 1 incheckning från feat/162-disable-zoekt in i main 2026-07-20 08:57:35 +00:00
Ägare

Disables instance-wide zoekt code search and deletes the existing index. Per the #162 investigation, the lack of granular control is a showstopper: Forgejo v16 has no per-repo/per-owner indexer control (INCLUDE/EXCLUDE glob file paths inside repos, not owners) and no quota subject for index bytes, so a few users can grow the shared index (~6× repo footprint) without bound or attribution, and there's no supported way to scope it to paying tiers.

  • forgejo_repo_indexer_enabled default → false; app.ini renders REPO_INDEXER_ENABLED = false and search falls back to per-repo git-grep.
  • The forgejo role deletes WORK_PATH/indexers on apply when disabled (idempotent podman exec … rm -rf), sequenced after Forgejo restarts with the indexer off so it can't rebuild what we remove. Reclaims the on-disk shards.
  • forgejo_work_path default added (/data/gitea, current rootful; ADR 0031 moves it to /var/lib/gitea — kept in sync with app.ini's WORK_PATH).
  • Local preview (local/vars.local.yml) deliberately left with the indexer on so the enabled template path is still exercised in dev.

Re-enable when upstream ships a per-repo indexer toggle (Forgejo PR 8106): set the var true + apply (first apply re-indexes the whole corpus — off-peak).

Runbook updated. syntax-check + ansible-lint (production profile) clean.

⚠️ Applying this to prod restarts Forgejo and deletes the index dir — a prod-mutating apply (infra-apply skill / off-peak).

Closes #162.

Disables instance-wide zoekt code search and deletes the existing index. Per the #162 investigation, the lack of granular control is a showstopper: Forgejo v16 has **no per-repo/per-owner indexer control** (INCLUDE/EXCLUDE glob file paths inside repos, not owners) and **no quota subject for index bytes**, so a few users can grow the shared index (~6× repo footprint) without bound or attribution, and there's no supported way to scope it to paying tiers. - `forgejo_repo_indexer_enabled` default → **false**; `app.ini` renders `REPO_INDEXER_ENABLED = false` and search falls back to per-repo git-grep. - The forgejo role **deletes `WORK_PATH/indexers`** on apply when disabled (idempotent `podman exec … rm -rf`), sequenced *after* Forgejo restarts with the indexer off so it can't rebuild what we remove. Reclaims the on-disk shards. - `forgejo_work_path` default added (`/data/gitea`, current rootful; ADR 0031 moves it to `/var/lib/gitea` — kept in sync with app.ini's WORK_PATH). - Local preview (`local/vars.local.yml`) deliberately left with the indexer **on** so the enabled template path is still exercised in dev. Re-enable when upstream ships a per-repo indexer toggle (Forgejo PR 8106): set the var true + apply (first apply re-indexes the whole corpus — off-peak). Runbook updated. syntax-check + ansible-lint (production profile) clean. ⚠️ Applying this to prod restarts Forgejo and deletes the index dir — a prod-mutating apply (infra-apply skill / off-peak). Closes #162.
supernaut tvångsskickade feat/162-disable-zoekt från 4387ef7181
Alla kontroller lyckades
ci / ci (pull_request) Successful in 2m26s
till 316e5b33c3
Alla kontroller lyckades
ci / ci (pull_request) Successful in 3m29s
2026-07-20 08:52:01 +00:00
Jämför
supernaut sammanfogade incheckning 96d9d6d244 till main 2026-07-20 08:57:35 +00:00
supernaut tog bort grenen feat/162-disable-zoekt 2026-07-20 08:57:35 +00:00
supernaut refererade denna ändringsförfrågan från en incheckning 2026-07-20 08:57:36 +00:00
supernaut refererade denna ändringsförfrågan från en incheckning 2026-08-03 09:41:34 +00:00
Logga in för att delta i denna konversation.
Inga granskare
Ingen milstolpe
Inget projekt
Inga tilldelade
1 deltagare
Notiser
Förfallodatum
Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet "åååå-mm-dd".

Inget förfallodatum satt.

Beroenden

Inga beroenden satta

Referens
bitborg/bitborg-infra!165
Ingen beskrivning angiven.