Skip to content

Latest commit

 

History

1,283 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 JumpServer

A modern, cross-platform desktop client for JumpServer built with Electron

License: MIT Platform Electron Vue

English | 中文

JumpServer


✨ Features

  • 🎯 Cross-Platform Support - Native applications for macOS, Windows, and Linux
  • 🔐 Secure Connections - Support for SSH, RDP, VNC, and database protocols
  • 🗄️ Multi-Database Support - Connect to MySQL, PostgreSQL, Redis, MongoDB, Oracle, SQL Server, ClickHouse, and more
  • 🖥️ Device Management - Manage Linux and Windows servers seamlessly
  • 🎨 Modern UI - Beautiful, responsive interface built with Vue 3 and Nuxt UI
  • Desktop Integration - Isolated Electron runtime with Node-based desktop services
  • 🔗 Deep Link Support - Launch connections directly from web browsers via custom protocol (jms2://)
  • 🌓 Theme Support - Light and dark mode
  • 🌍 Internationalization - Multi-language support (English, Chinese)
  • 📋 Clipboard Integration - Easy copy-paste functionality
  • 🔔 Notifications - Real-time connection status notifications
  • 💾 Persistent Storage - Save your favorite connections and settings

🖼️ Screenshots

Main Interface MacOS


Windows Windows

🛠️ Tech Stack

Frontend

  • Vue 3 - Progressive JavaScript framework
  • Nuxt UI - Fully styled and customizable components

Desktop

  • Electron 44 - Cross-platform windowing, native integration, and packaging
  • Node.js - SSH helper, replay processing, and desktop services
  • Optional FFmpeg plugin - Downloaded from Settings for H.264 replay encoding; system FFmpeg is never required

📦 Installation

macOS

  1. Download the .dmg file from the Releases page
  2. Open the downloaded .dmg file
  3. Drag JumpServer.app to your Applications folder
  4. Double-click JumpServer.app to launch (this will register the custom protocol)

Windows

  1. Download the .msi or .exe installer from the Releases page
  2. Double-click the installer file
  3. Follow the installation wizard (may take 10-15 seconds)
  4. Launch JumpServer from the Start menu

Linux

Debian/Ubuntu (.deb)

# Download the .deb package
wget https://github.com/jumpserver/clients/releases/latest/download/jumpserver-client_*.deb

# Install using dpkg
sudo dpkg -i jumpserver-client_*.deb

# Or install using apt
sudo apt install ./jumpserver-client_*.deb

RPM-based (Red Hat, Fedora, CentOS)

# Download the .rpm package
wget https://github.com/jumpserver/clients/releases/latest/download/jumpserver-client_*.rpm

# Install using rpm
sudo rpm -i jumpserver-client_*.rpm

# Or install using dnf/yum
sudo dnf install ./jumpserver-client_*.rpm

🚀 Usage

Launching Connections

  1. From JumpServer Web Interface: Click on any asset connection link - the client will automatically launch
  2. From the Client: Browse your assets, select a connection, and click connect
  3. Custom Protocol: Use jms2:// links to launch connections programmatically

Supported Connection Types

  • SSH/Telnet - Terminal connections (PuTTY, XShell, SecureCRT, iTerm2)
  • RDP - Remote Desktop Protocol for Windows servers
  • VNC - Virtual Network Computing for remote desktop access
  • Database Connections:
    • MySQL
    • PostgreSQL
    • Redis
    • MongoDB
    • Oracle
    • SQL Server
    • ClickHouse
    • 达梦 (DM)

Managing Assets

  • Favorites - Star frequently used assets for quick access
  • Search - Quickly find assets by name or IP address
  • Categories - Organize assets by type (Linux, Windows, Database)
  • Rename - Customize asset display names

🛠️ Development

Prerequisites

  • Node.js >= 24
  • pnpm >= 11
  • System Dependencies:
    • macOS: Xcode Command Line Tools
    • Windows: Microsoft Visual C++ Build Tools
    • Linux: build-essential, fakeroot, and rpm when producing DEB/RPM packages
    • Windows: WiX Toolset 3 (candle and light) when producing MSI packages

Getting Started

# Clone the repository
git clone https://github.com/jumpserver/clients.git
cd clients

# Install dependencies
pnpm install

# Start development server
pnpm electron:dev

Build for Production

# Build for current platform
pnpm electron:build

# Build an unpacked application directory
pnpm electron:package:dir

Build the Web Docker Image

The Docker build installs only the Web workspace dependency graph and writes the generated Nuxt application to /opt/luna. Electron code and native desktop dependencies are excluded from its build context.

docker build -t jumpserver/luna:local .

The Web workflow builds linux/amd64 and linux/arm64, and publishes tagged images to jumpserver/luna. Desktop clients are packaged separately for macOS, Linux, and Windows by the client release workflow.

Project Structure

clients/
├── ui/                    # Frontend (Vue/Nuxt)
│   ├── components/        # Vue components
│   ├── pages/            # Application pages
│   ├── composables/      # Vue composables
│   └── layouts/          # Layout components
├── electron/              # Electron main process and preload bridge
│   ├── src/              # TypeScript desktop runtime by domain
│   └── tests/            # Electron unit tests and fixtures
└── i18n/                 # Internationalization files

Available Scripts

pnpm web:dev          # Start Nuxt web development
pnpm electron:dev     # Start Electron development
pnpm electron:build   # Build production artifacts
make docker-build     # Build the Web Docker image
pnpm fmt              # Format frontend code with Oxfmt
pnpm lint             # Run lint checks
pnpm reset            # Clean build artifacts

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your 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

Development Guidelines

  • Follow the existing code style
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Ensure all checks pass before submitting

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • JumpServer - The open-source bastion host
  • Electron - Cross-platform desktop runtime
  • Vue.js - The Progressive JavaScript Framework
  • Nuxt - The Intuitive Vue Framework

📚 Related Resources

📮 Support


Made with ❤️ by the JumpServer Team

⭐ Star us on GitHub | 📖 Documentation | 🐛 Report Bug

About

Luna is the JumpServer workspace.

Topics

Resources

Stars

310 stars

Watchers

17 watching

Forks

Releases

Packages

Used by

Contributors

Languages