MCPcopy Index your code
hub / github.com/gnmyt/Nexterm

github.com/gnmyt/Nexterm @main sqlite

repository ↗ · DeepWiki ↗
1,445 symbols 4,024 edges 548 files 0 documented · 0%
README

Contributors Forks Stargazers Issues MIT License Release

    <img alt="Nexterm Banner" src="https://i.imgur.com/TBMT7dt.png">

🤔 What is Nexterm?

Nexterm is an open-source server management software that allows you to:

  • Connect remotely via SSH, VNC and RDP
  • Manage files through SFTP
  • Deploy applications via Docker
  • Manage Proxmox LXC and QEMU containers
  • Secure access with two-factor authentication and OIDC SSO
  • Separate users and servers into Organizations

📷 Screenshots

Servers Connections SFTP
Snippets Monitoring Recordings

🚀 Install

You can install Nexterm by clicking here.

💻 Development

Prerequisites

  • Node.js 18+
  • Yarn
  • FlatBuffers compiler (flatc)
  • Docker (optional)

Install FlatBuffers:

Platform Command
macOS brew install flatbuffers
Ubuntu / Debian sudo apt install flatbuffers-compiler
Windows winget install Google.FlatBuffers

Local Setup

Clone the repository

git clone https://github.com/gnmyt/Nexterm.git
cd Nexterm

Configure environment

Create a local environment file:

cp .env.example .env

Make sure ENCRYPTION_KEY is set in .env.

You can generate a secure key using:

Platform Command
macOS / Linux openssl rand -hex 32

Install dependencies

yarn install
cd client && yarn install
cd ..

Generate FlatBuffers schemas

yarn schema:generate

This step is required before starting the development server.

Start development mode

yarn dev

Start an engine

The development server does not automatically start an engine. To connect to servers, an engine must be running separately:

yarn dev:engine

If using local engine registration, set LOCAL_ENGINE_TOKEN in the server environment and use the same value as REGISTRATION_TOKEN for the engine.

🔧 Configuration

Docker Images

Image Description
nexterm/aio All-In-One — server, client, and engine bundled together
nexterm/server Server + web client only (requires external engine)
nexterm/engine Engine only

The server listens on port 6989 by default. You can modify this behavior using environment variables:

  • SERVER_PORT: Server listening port (default: 6989)
  • CONTROL_PLANE_PORT: TCP port for engine communication (default: 7800)
  • NODE_ENV: Runtime environment (development/production)
  • ENCRYPTION_KEY: Encryption key for passwords, SSH keys and passphrases. Supports Docker secrets via /run/secrets/encryption_key`
  • AI_SYSTEM_PROMPT: System prompt for AI features (example: You are a Linux command generator assistant.)
  • LOG_LEVEL: Logging level for application and engine (system/info/verbose/debug/warn/error, default: system)

🛡️ Security

  • Two-factor authentication
  • Session management
  • Password encryption
  • Docker container isolation
  • Oauth 2.0 OpenID Connect SSO

🤝 Contributing

Contributions are welcome! Please feel free to:

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🔗 Useful Links

💜 Powered by

JetBrains logo

📄 License

Distributed under the MIT license. See LICENSE for more information.

Core symbols most depended-on inside this repo

close
called by 97
server/lib/GuacdClient.js
destroy
called by 96
server/lib/ScriptLayer.js
getRequest
called by 67
client/src/common/utils/RequestUtil.js
delete
called by 66
server/utils/backupProviders/smb.js
onClose
called by 55
server/hooks/pve-lxc.js
useToast
called by 52
client/src/common/contexts/ToastContext.jsx
postRequest
called by 43
client/src/common/utils/RequestUtil.js
broadcast
called by 40
server/lib/ScriptLayer.js

Shape

Function 1,277
Method 146
Class 22

Languages

TypeScript100%

Modules by API surface

server/lib/controlPlane/ControlPlaneServer.js41 symbols
client/src/pages/Servers/components/ServerList/ServerList.jsx35 symbols
server/lib/EngineSftpClient.js31 symbols
client/src/pages/Servers/Servers.jsx24 symbols
server/lib/ConnectionService.js19 symbols
client/src/pages/Servers/components/ViewContainer/renderer/FileRenderer/FileRenderer.jsx19 symbols
server/utils/monitoringService.js18 symbols
server/lib/ScriptLayer.js16 symbols
client/src/pages/Servers/components/ViewContainer/renderer/XtermRenderer.jsx16 symbols
client/src/common/utils/RequestUtil.js16 symbols
server/utils/recordingService.js15 symbols
server/lib/StateBroadcaster.js15 symbols

Dependencies from manifests, versioned

@eslint/js10.0.1 · 1×
@fontsource/plus-jakarta-sans5.2.8 · 1×
@fortawesome/fontawesome-svg-core7.1.0 · 1×
@fortawesome/free-brands-svg-icons7.1.0 · 1×
@fortawesome/free-solid-svg-icons7.1.0 · 1×
@inquirer/password5.1.1 · 1×
@mdi/js7.4.47 · 1×
@mdi/react1.6.1 · 1×
@monaco-editor/react4.7.0 · 1×
@simplewebauthn/server13.3.1 · 1×

For agents

$ claude mcp add Nexterm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact