--- tags: - service - josiedot - devtools domain: devspaces.apps.hub.euw.container.mom status: active stack: - Neovim - ttyd - Podman - OpenShift Dev Spaces auth: Dev Spaces (Keycloak) --- # neoche (Dev Spaces Neovim Editor) Neovim editor integration for Eclipse Che / Red Hat OpenShift Dev Spaces. Runs Neovim in the browser via ttyd using the init container injection pattern from che-code. ## URLs - Dashboard: https://devspaces.apps.hub.euw.container.mom - Editor endpoint: port 7681 on workspace route - Launch: append `?che-editor=neoche/neovim/insiders` to dashboard URL ## Stack - Neovim 0.10.4 (glibc + musl builds) - ttyd 1.7.7 (web terminal) - machine-exec (Che terminal multiplexing) - Container: FROM scratch, multi-stage UBI9 rootfs - Registry: quay.io/pfeifferj/neoche:insiders ## Architecture 1. **preStart**: `neovim-injector` init container copies binaries to shared `/neovim` volume 2. **postStart**: workspace container runs `entrypoint-volume.sh` which detects platform (glibc/musl via `ldd`), starts machine-exec, and launches ttyd+nvim on port 7681 Ships both glibc and musl Neovim builds; runtime detection selects the right one for any base image. ## Customization - **Dotfiles**: set Dotfiles URI in Dev Spaces preferences to a repo with `.config/nvim/` - **NVIM_DISTRO env var**: `lazyvim`, `astrovim`, `nvchad`, `kickstart` -- bootstraps on first launch if no existing config - **Persistent storage**: Dev Spaces PVC keeps plugins across restarts ## Deployment - Image built with `make build` (podman, multi-stage Dockerfile) - Push with `make push` - Register editor with `make deploy-editor` (ConfigMap with `app.kubernetes.io/part-of=che.eclipse.org` + `app.kubernetes.io/component=editor-definition` labels) - Global pull secret configured for quay.io access - Storage: `devspaces-storage` StorageClass, local PV on master-0 ## Source - Repo: `/home/josie/development/personal/neoche` - License: EPL-2.0 ## Related - [[services]]