|
1 | | -# Jumpserve Client |
| 1 | +<div align="center"> |
2 | 2 |
|
3 | | -JumpServer client, supports local client pull up. |
| 3 | +# 🚀 JumpServer Client |
4 | 4 |
|
5 | | -English | [中文](README_CN.md) |
| 5 | +**A modern, cross-platform desktop client for JumpServer built with Tauri** |
6 | 6 |
|
7 | | -## Overview |
| 7 | +[](https://opensource.org/licenses/MIT) |
| 8 | +[](https://github.com/jumpserver/clients) |
| 9 | +[](https://tauri.app/) |
| 10 | +[](https://vuejs.org/) |
8 | 11 |
|
9 | | - |
| 12 | +[English](README.md) | [中文](README_CN.md) |
10 | 13 |
|
11 | | -## Install |
| 14 | + |
12 | 15 |
|
13 | | -### Mac |
| 16 | +</div> |
14 | 17 |
|
15 | | -Download the Mac installation package, install JumpServer.dmg and put JumpServer.app into Applications. Double-click to open JumpServer.app to complete the custom protocol. |
| 18 | +--- |
16 | 19 |
|
| 20 | +## ✨ Features |
17 | 21 |
|
18 | | -### Win |
| 22 | +- 🎯 **Cross-Platform Support** - Native applications for macOS, Windows, and Linux |
| 23 | +- 🔐 **Secure Connections** - Support for SSH, RDP, VNC, and database protocols |
| 24 | +- 🗄️ **Multi-Database Support** - Connect to MySQL, PostgreSQL, Redis, MongoDB, Oracle, SQL Server, ClickHouse, and more |
| 25 | +- 🖥️ **Device Management** - Manage Linux and Windows servers seamlessly |
| 26 | +- 🎨 **Modern UI** - Beautiful, responsive interface built with Vue 3 and Nuxt UI |
| 27 | +- ⚡ **High Performance** - Lightweight and fast, powered by Tauri (Rust backend) |
| 28 | +- 🔗 **Deep Link Support** - Launch connections directly from web browsers via custom protocol (`jms://`) |
| 29 | +- 🌓 **Theme Support** - Light and dark mode |
| 30 | +- 🌍 **Internationalization** - Multi-language support (English, Chinese) |
| 31 | +- 📋 **Clipboard Integration** - Easy copy-paste functionality |
| 32 | +- 🔔 **Notifications** - Real-time connection status notifications |
| 33 | +- 💾 **Persistent Storage** - Save your favorite connections and settings |
19 | 34 |
|
20 | | -Download the Win installation package and double-click the JumpServer installation package file (you need to wait for 10 seconds). |
| 35 | +## 🖼️ Screenshots |
21 | 36 |
|
| 37 | +<div align="center"> |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +*Main interface showing asset management* |
| 42 | + |
| 43 | +</div> |
| 44 | + |
| 45 | +## 🛠️ Tech Stack |
| 46 | + |
| 47 | +### Frontend |
| 48 | +- **Vue 3** - Progressive JavaScript framework |
| 49 | +- **Nuxt UI** - Fully styled and customizable components |
| 50 | + |
| 51 | +### Backend |
| 52 | +- **Tauri 2.9** - Build smaller, faster, and more secure desktop applications |
| 53 | +- **Rust** - Systems programming language |
| 54 | +- **Go** - Native client components for protocol handling |
| 55 | + |
| 56 | +## 📦 Installation |
| 57 | + |
| 58 | +### macOS |
| 59 | + |
| 60 | +1. Download the `.dmg` file from the [Releases](https://github.com/jumpserver/clients/releases) page |
| 61 | +2. Open the downloaded `.dmg` file |
| 62 | +3. Drag `JumpServer.app` to your `Applications` folder |
| 63 | +4. Double-click `JumpServer.app` to launch (this will register the custom protocol) |
| 64 | + |
| 65 | +### Windows |
| 66 | + |
| 67 | +1. Download the `.msi` or `.exe` installer from the [Releases](https://github.com/jumpserver/clients/releases) page |
| 68 | +2. Double-click the installer file |
| 69 | +3. Follow the installation wizard (may take 10-15 seconds) |
| 70 | +4. Launch JumpServer Client from the Start menu |
22 | 71 |
|
23 | 72 | ### Linux |
24 | 73 |
|
25 | | -Download the Linux installation package, double-click the Deb installation package file, and open the installation package manager to install it. Or install it using the command |
| 74 | +#### Debian/Ubuntu (.deb) |
| 75 | + |
| 76 | +```bash |
| 77 | +# Download the .deb package |
| 78 | +wget https://github.com/jumpserver/clients/releases/latest/download/jumpserver-client_*.deb |
| 79 | + |
| 80 | +# Install using dpkg |
| 81 | +sudo dpkg -i jumpserver-client_*.deb |
26 | 82 |
|
| 83 | +# Or install using apt |
| 84 | +sudo apt install ./jumpserver-client_*.deb |
27 | 85 | ``` |
28 | 86 |
|
29 | | -sudo dpkg -i <package_file> |
| 87 | +#### RPM-based (Red Hat, Fedora, CentOS) |
30 | 88 |
|
| 89 | +```bash |
| 90 | +# Download the .rpm package |
| 91 | +wget https://github.com/jumpserver/clients/releases/latest/download/jumpserver-client_*.rpm |
| 92 | + |
| 93 | +# Install using rpm |
| 94 | +sudo rpm -i jumpserver-client_*.rpm |
| 95 | + |
| 96 | +# Or install using dnf/yum |
| 97 | +sudo dnf install ./jumpserver-client_*.rpm |
31 | 98 | ``` |
32 | 99 |
|
| 100 | +## 🚀 Usage |
33 | 101 |
|
34 | | -## uninstall |
| 102 | +### Launching Connections |
35 | 103 |
|
36 | | -### Windows |
| 104 | +1. **From JumpServer Web Interface**: Click on any asset connection link - the client will automatically launch |
| 105 | +2. **From the Client**: Browse your assets, select a connection, and click connect |
| 106 | +3. **Custom Protocol**: Use `jms://` links to launch connections programmatically |
37 | 107 |
|
38 | | -Just uninstall the control panel directly. |
| 108 | +### Supported Connection Types |
39 | 109 |
|
| 110 | +- **SSH/Telnet** - Terminal connections (PuTTY, XShell, SecureCRT, iTerm2) |
| 111 | +- **RDP** - Remote Desktop Protocol for Windows servers |
| 112 | +- **VNC** - Virtual Network Computing for remote desktop access |
| 113 | +- **Database Connections**: |
| 114 | + - MySQL |
| 115 | + - PostgreSQL |
| 116 | + - Redis |
| 117 | + - MongoDB |
| 118 | + - Oracle |
| 119 | + - SQL Server |
| 120 | + - ClickHouse |
| 121 | + - 达梦 (DM) |
40 | 122 |
|
41 | | -### Mac |
| 123 | +### Managing Assets |
42 | 124 |
|
43 | | -Remove JumpServer.app. |
| 125 | +- **Favorites** - Star frequently used assets for quick access |
| 126 | +- **Search** - Quickly find assets by name or IP address |
| 127 | +- **Categories** - Organize assets by type (Linux, Windows, Database) |
| 128 | +- **Rename** - Customize asset display names |
44 | 129 |
|
| 130 | +## 🛠️ Development |
45 | 131 |
|
46 | | -### Linux |
| 132 | +### Prerequisites |
| 133 | + |
| 134 | +- **Node.js** >= 20 |
| 135 | +- **pnpm** >= 10.20.0 |
| 136 | +- **Rust** (latest stable) |
| 137 | +- **System Dependencies**: |
| 138 | + - macOS: Xcode Command Line Tools |
| 139 | + - Windows: Microsoft Visual C++ Build Tools |
| 140 | + - Linux: `build-essential`, `libwebkit2gtk-4.0-dev`, `libssl-dev`, `libayatana-appindicator3-dev`, `librsvg2-dev` |
| 141 | + |
| 142 | +### Getting Started |
| 143 | + |
| 144 | +```bash |
| 145 | +# Clone the repository |
| 146 | +git clone https://github.com/jumpserver/clients.git |
| 147 | +cd clients |
| 148 | + |
| 149 | +# Install dependencies |
| 150 | +pnpm install |
47 | 151 |
|
48 | | -Click to open Software Manager to uninstall. Or use the command to uninstall |
| 152 | +# Start development server |
| 153 | +pnpm tauri:dev |
| 154 | +``` |
| 155 | + |
| 156 | +### Build for Production |
| 157 | + |
| 158 | +```bash |
| 159 | +# Build for current platform |
| 160 | +pnpm tauri:build |
49 | 161 |
|
| 162 | +# Build for specific platform (requires cross-compilation setup) |
| 163 | +pnpm tauri:build --target x86_64-pc-windows-msi |
| 164 | +pnpm tauri:build --target x86_64-apple-darwin |
| 165 | +pnpm tauri:build --target x86_64-unknown-linux-gnu |
50 | 166 | ``` |
51 | 167 |
|
52 | | -sudo dpkg --purge <package_file> |
| 168 | +### Project Structure |
53 | 169 |
|
54 | 170 | ``` |
| 171 | +clients/ |
| 172 | +├── ui/ # Frontend (Vue/Nuxt) |
| 173 | +│ ├── components/ # Vue components |
| 174 | +│ ├── pages/ # Application pages |
| 175 | +│ ├── composables/ # Vue composables |
| 176 | +│ └── layouts/ # Layout components |
| 177 | +├── src-tauri/ # Backend (Rust/Tauri) |
| 178 | +│ ├── src/ |
| 179 | +│ │ ├── commands/ # Tauri commands |
| 180 | +│ │ ├── service/ # Business logic |
| 181 | +│ │ └── setup/ # App setup |
| 182 | +│ └── resources/ # Native binaries |
| 183 | +├── go-client/ # Go client components |
| 184 | +└── i18n/ # Internationalization files |
| 185 | +``` |
| 186 | + |
| 187 | +### Available Scripts |
| 188 | + |
| 189 | +```bash |
| 190 | +pnpm dev # Start Nuxt dev server |
| 191 | +pnpm tauri:dev # Start Tauri dev mode |
| 192 | +pnpm tauri:build # Build production app |
| 193 | +pnpm lint # Run ESLint |
| 194 | +pnpm prettier # Format code with Prettier |
| 195 | +pnpm reset # Clean build artifacts |
| 196 | +``` |
| 197 | + |
| 198 | +## 🤝 Contributing |
| 199 | + |
| 200 | +Contributions are welcome! Please feel free to submit a Pull Request. |
| 201 | + |
| 202 | +1. Fork the repository |
| 203 | +2. Create your feature branch (`git checkout -b feature/AmazingFeature`) |
| 204 | +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) |
| 205 | +4. Push to the branch (`git push origin feature/AmazingFeature`) |
| 206 | +5. Open a Pull Request |
| 207 | + |
| 208 | +### Development Guidelines |
| 209 | + |
| 210 | +- Follow the existing code style |
| 211 | +- Write meaningful commit messages |
| 212 | +- Add tests for new features |
| 213 | +- Update documentation as needed |
| 214 | +- Ensure all checks pass before submitting |
| 215 | + |
| 216 | +## 📝 License |
| 217 | + |
| 218 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 219 | + |
| 220 | +## 🙏 Acknowledgments |
| 221 | + |
| 222 | +- [JumpServer](https://github.com/jumpserver/jumpserver) - The open-source bastion host |
| 223 | +- [Tauri](https://tauri.app/) - Build smaller, faster, and more secure desktop applications |
| 224 | +- [Vue.js](https://vuejs.org/) - The Progressive JavaScript Framework |
| 225 | +- [Nuxt](https://nuxt.com/) - The Intuitive Vue Framework |
| 226 | + |
| 227 | +## 📚 Related Resources |
| 228 | + |
| 229 | +- [JumpServer Documentation](https://docs.jumpserver.org/) |
| 230 | +- [Packaging Guide](https://github.com/jumpserver/apps/blob/master/README_PACK.md) |
| 231 | +- [Browser Deep Link Protocol](https://juejin.cn/post/6844903989155217421) |
| 232 | +- [Linux Custom Protocol Handling](https://medium.com/swlh/custom-protocol-handling-how-to-8ac41ff651eb) |
| 233 | + |
| 234 | +## 📮 Support |
| 235 | + |
| 236 | +- **Issues**: [GitHub Issues](https://github.com/jumpserver/clients/issues) |
| 237 | +- **Discussions**: [GitHub Discussions](https://github.com/jumpserver/clients/discussions) |
| 238 | +- **JumpServer Community**: [JumpServer Community](https://github.com/jumpserver/jumpserver) |
| 239 | + |
| 240 | +--- |
| 241 | + |
| 242 | +<div align="center"> |
55 | 243 |
|
| 244 | +Made with ❤️ by the JumpServer Team |
56 | 245 |
|
57 | | -## package |
| 246 | +[⭐ Star us on GitHub](https://github.com/jumpserver/clients) | [📖 Documentation](https://docs.jumpserver.org/) | [🐛 Report Bug](https://github.com/jumpserver/clients/issues) |
58 | 247 |
|
59 | | -- [packaging scheme](https://github.com/jumpserver/apps/blob/master/README_PACK.md) |
| 248 | +</div> |
0 commit comments