Files
iLSP/README.md
Henrik Jess Nielsen 4e957133d0
All checks were successful
Build and Deploy iLSP / test (push) Successful in 25s
Build and Deploy iLSP / build-and-deploy (push) Successful in 3m13s
feat(catalog): sync 5 new Bicep modules; fix docs for broken /data hot-reload
- Refreshed bicep_modules_catalog.json from ACR (27 -> 32 modules): adds
  elasticpool, managedidentity, signalr, testmodule, virtualnetworks.
- Corrected README/EDITOR_SETUP: production ilsp.nomad has no /data volume
  mount (the Nomad client disables raw Docker bind mounts), so
  scripts/push_catalogs.sh + POST /reload silently no-op in prod. Catalog
  updates require commit + push (Gitea Actions rebuild + Nomad redeploy).
  /data hot-reload still works for local dev via `make run-with-data`.
2026-08-14 12:04:33 +02:00

1.7 KiB

iLSP — Internal LSP Proxy

Self-hosted Language Server Protocol proxy for LRU's internal tooling. Runs at https://ilsp.i80.dk (Nomad/Docker, autobox.i80.dk).

Provides smart autocomplete on top of standard LSPs:

Language Endpoint Extra completions
Bicep wss://ilsp.i80.dk/bicep Internal ACR modules, versions, params
YAML wss://ilsp.i80.dk/yaml AzDO pipeline templates, GHA reusable workflows
Python wss://ilsp.i80.dk/python Jedi (standard)

→ See EDITOR_SETUP.md for editor configuration and a full feature overview.

Quick start

# Check service health
curl https://ilsp.i80.dk/health

# Run smoke tests
python3 scripts/smoke_test_completions.py

# Local dev
make run        # build + start + health check
make run-quick  # start without rebuilding
make logs       # tail container logs
make health     # curl health endpoint

Updating catalogs

Catalogs are baked into the Docker image at build time — commit + push to update production (see EDITOR_SETUP.md for the full workflow and a note on why push_catalogs.sh / /reload don't take effect in prod).

python3 scripts/sync_pipeline_templates.py  # scan AzDO + GHA template repos
python3 scripts/sync_bicep_modules.py       # from DevOpsMCP repo — needs az CLI + ACR access
git add *_catalog.json && git commit -m "chore: refresh catalogs" && git push

Deploy

Push to main → Gitea Actions builds image → Nomad deploys automatically.

# Manual deploy (if CI is down)
git push
ssh autobox.i80.dk 'nomad job run /opt/nomad/jobs/ilsp.nomad'