Skip to content

Releases: techquestsdev/code-search

v1.0.0

06 Mar 20:11
7718655

Choose a tag to compare

Code Search v1.0.0

Self-hosted code search and bulk operations across all your repositories.

Changelog

Others

Installation

# macOS
brew install techquestsdev/tap/code-search

# Go
go install github.com/techquestsdev/code-search/cmd/cli@v1.0.0

Full Changelog: ...v1.0.0

Helm Chart: code-search-website v1.0.0

06 Mar 19:17
helm-website/1.0.0
44b0db0

Choose a tag to compare

Installation

helm install code-search-website oci://ghcr.io/techquestsdev/charts/code-search-website --version 1.0.0

Upgrade

helm upgrade code-search-website oci://ghcr.io/techquestsdev/charts/code-search-website --version 1.0.0

Note: The GHCR packages page incorrectly shows docker pull — this is a Helm chart, not a Docker image. Use helm install or helm pull as shown above.


Code Search Website Helm Chart

A Helm chart for deploying the Code Search documentation website to Kubernetes.

Prerequisites

  • Kubernetes 1.24+
  • Helm 3.0+

Installation

helm install code-search-website oci://ghcr.io/techquestsdev/charts/code-search-website --version <version>

With Ingress

helm install code-search-website oci://ghcr.io/techquestsdev/charts/code-search-website --version <version> \
  --set ingress.enabled=true \
  --set ingress.host=docs.example.com

Configuration

Parameter Description Default
replicaCount Number of replicas 1
image.repository Image repository ghcr.io/techquestsdev/code-search-website
image.tag Image tag (defaults to appVersion) ""
service.type Service type ClusterIP
service.port Service port 4321
ingress.enabled Enable ingress false
ingress.host Ingress hostname code-search-website.example.com
env Additional environment variables {}

See values.yaml for all available options.

Uninstalling

helm uninstall code-search-website

Helm Chart: code-search v1.0.0

06 Mar 19:17
helm-code-search/1.0.0
44b0db0

Choose a tag to compare

Installation

helm install code-search oci://ghcr.io/techquestsdev/charts/code-search --version 1.0.0

Upgrade

helm upgrade code-search oci://ghcr.io/techquestsdev/charts/code-search --version 1.0.0

Note: The GHCR packages page incorrectly shows docker pull — this is a Helm chart, not a Docker image. Use helm install or helm pull as shown above.


Code Search Helm Chart

A Helm chart for deploying Code Search to Kubernetes.

Prerequisites

  • Kubernetes 1.24+
  • Helm 3.0+
  • PV provisioner (for persistence)
  • External PostgreSQL and Redis (connection details provided via secrets)

Installation

From OCI Registry

# Create secrets for database and Redis
kubectl create secret generic code-search-postgres-url \
  --from-literal=url='postgres://user:pass@postgres:5432/codesearch?sslmode=disable'
kubectl create secret generic code-search-redis-password \
  --from-literal=password='redis-password'

# Install from OCI registry
helm install code-search oci://ghcr.io/techquestsdev/charts/code-search --version <version>

With Ingress

helm install code-search oci://ghcr.io/techquestsdev/charts/code-search --version <version> \
  --set ingress.enabled=true \
  --set ingress.host=code-search.example.com

Configuration

Key Values

Parameter Description Default
api.replicaCount Number of API replicas 1
web.replicaCount Number of web replicas 1
indexer.replicaCount Number of indexer workers 1
ingress.enabled Enable ingress false
ingress.host Ingress hostname code-search.example.com
sharding.enabled Enable hash-based sharding false
sharding.replicas Number of indexer+zoekt shard pairs 3

Database and Redis

PostgreSQL and Redis are configured via existing Kubernetes secrets:

Parameter Description Default
postgresql.host PostgreSQL host code-search-postgres
postgresql.port PostgreSQL port 5432
postgresql.existingSecret Secret containing database URL code-search-postgres-url
postgresql.existingSecretKey Key in the secret url
redis.host Redis host code-search-redis
redis.port Redis port 6379
redis.existingSecret Secret containing Redis password code-search-redis-password
redis.existingSecretKey Key in the secret password

Persistence

Parameter Description Default
indexer.persistence.enabled Enable persistence for repos and index true
indexer.persistence.size Storage size 50Gi
indexer.persistence.accessMode PVC access mode ReadWriteOnce

Zoekt runs as a sidecar in the indexer pod and shares its volume — no separate persistence config needed.

Code Hosts

Configure code host tokens via secrets:

codehosts:
  github:
    existingSecret: github-token
    existingSecretKey: token
    envVar: CS_GITHUB_TOKEN

Application Config

Provide a config.yaml via ConfigMap:

config:
  existingConfigMap: my-config  # Use existing ConfigMap
  # Or inline:
  inline: |
    codehosts:
      github:
        type: github
        token: "$CS_GITHUB_TOKEN"

Resources

See values.yaml for default resource requests/limits.

Sharding

For large deployments (1000+ repositories), enable hash-based sharding:

sharding:
  enabled: true
  replicas: 3  # Creates indexer-0, indexer-1, indexer-2 (each with zoekt sidecar)
  federatedAccess:
    enabled: true  # Enable file browsing and replace via proxy

Each shard handles a subset of repositories using consistent hashing.

For simpler parallelism without sharding, increase indexer.replicaCount with RWX storage:

indexer:
  replicaCount: 3
  persistence:
    accessMode: ReadWriteMany

Upgrading

helm upgrade code-search oci://ghcr.io/techquestsdev/charts/code-search --version <version>

Database migrations run automatically as a pre-upgrade hook (when migrations.enabled: true).

Uninstalling

helm uninstall code-search

Note: PVCs are not deleted automatically. To delete all data:

kubectl delete pvc -l app.kubernetes.io/instance=code-search

Troubleshooting

Check pod status

kubectl get pods -l app.kubernetes.io/instance=code-search

View logs

# API logs
kubectl logs -l app.kubernetes.io/component=api

# Indexer logs
kubectl logs -l app.kubernetes.io/component=indexer

# Zoekt logs
kubectl logs -l app.kubernetes.io/component=zoekt

Migration issues

# Check migration job
kubectl logs job/code-search-migrate

# Re-run migrations
kubectl delete job code-search-migrate
helm upgrade code-search ./deploy/helm/code-search