/neovim-server

📡 The Ultimate Containerized NeoVim Remote Server

Primary LanguageVim ScriptMIT LicenseMIT

☁️ NeoVim Server

A containerized IDE-like text editor that runs on a web server

CICD License Version NeoVim Platform

This tool is for running NeoVim remotely and continuing the development process at 🚀 speed. You can use it to implement an IDE-like web-based terminal text editor.

screenshot

✨ Features

  • Portable and light-weight
  • Support popular languages
  • Syntax highlight
  • Intellisense autocomplete
  • Markdown snippets and preview
  • Easy to deploy
  • Versatile and customizable
  • Containerized
  • Run on a web browser
  • Build with multi-arch (ARM/x86)
  • Supported platforms: arm64, arm64, arm/v7

Prerequisites

  • Driod Sans Mono Nerd Font is required to be downloaded since its the default font of the container. You may find the installation guide below. To use other fonts, please find the instructions on the Nerd Font repository.
  • Choose a web browser in your preference. Google Chrome, Microsoft Edge, and FireFox should work fine, whereas Safari does not work temporarily.

Font Installation

Notes: reboot might be needed after the font installation

Linux

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

macOS

cd ~/Library/Fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

Arch User ONLY

yay -S nerd-fonts-droid-sans-mono

📥 Installation

Run with the pre-built image

docker run -d \
  --name nvim-server \
  --restart unless-stopped \
  -p 6080:3000 \
  -p 8090:8090 \
  -v ~/workspace:/workspace \
  -v /appdata/nvim-server:/config \
  -e UID=$UID \
  -e GId=$GID \
  -e TZ=Asia/Shanghai \
  -e USER=<USER> \
  -e SECRET=<PASSWORD> \
  hikariai/nvim-server:latest

Notes:

  • Wait for a couple seconds until the container finishes its bootstrap process, then visit http://localhost:6080/wetty
  • You may check the log by running docker logs nvim-server
Parameters Usage
--name nvim-server Specify the name for the container
-p 6080:3000 Map the port for accessing the Web UI
-p 8090:8090 Map the port for the Instant Markdown Preview Server
-v ~/workspace:/workspace Map the working directory
-v /appdata/nvim-server:/config Contain all relevant configuration config directory
-e UID=$UID Map current user ID
-e GID=$GID Map current group ID
-e TZ=<TZ> Specify a timezone to use e.g. Asia/Shanghai
-e USER=<USER> Specify the username for user login, default is set to guest
-e SECRET=<SECRET> Specify the password for user login, default is set to password

Build the image manually

Follow the instruction HERE

UNRAID User ONLY

NeoVim Sever is now available on unRAID CA. Search nvim server and install

Detailed installation guide is available HERE

💡 Usage

  • After logging in with username and password in the web console, type vim to finish the initial setup.

  • For the first launch, NeoVim will install the coc-extensions defined in coc.settings. You may also download additional coc-extensions followed by the instructions

  • All the functionalities and usage cases are written in the Wiki Page, feel free to check it out.

  • To get familiar with the default key mappings, please visit the Cheat Sheet Page

📋 Wiki

💬F.A.Q

TODO

  • Add a customizable base image
  • Add more customizable features
  • Add more advanced usage cases
  • Add demo and usage guide for selection, registers, substitution, and macro

Reference

License

MIT (C) Kevin Yu