---
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]]
