Files
NanoKVM-MIRROR/web
wj-xiao 0e30a26db4 Streaming Refactor:
- H.264 WebRTC: Refactored to significantly reduce video latency
- H.264 Direct: Optimized data transmission; data parsing now continues correctly even when the tab is in the background
- MJPEG: Refactored to ensure the correct data length is sent

Bug Fixes
- Fixed an issue where certain keyboard modifier keys were not recognized
- Fixed vertical mouse cursor drift when the page is zoomed in or out

Optimizations
- Optimized HID write logic and updated the HID reset mechanism
- Added support for deleting images
- Added a Swap Memory option to the Tailscale page
- Added a confirmation dialog when uninstalling Tailscale to prevent accidental removal
- Improved the logic for updating the web page title
- Improved the UI for the Clipboard, Settings, Image Mounting, and App Update pages

Security
- Added a mandatory delay after failed login attempts to prevent brute-force attacks
- Updated dependencies to patch known security vulnerabilities
2025-11-26 10:57:30 +08:00
..
2025-11-26 10:57:30 +08:00
2024-08-09 19:45:45 +08:00
2025-01-10 10:31:38 +08:00
2024-08-09 19:45:45 +08:00
2024-08-09 19:45:45 +08:00
2024-08-09 19:45:45 +08:00
2025-11-26 10:57:30 +08:00
2025-11-26 10:57:30 +08:00
2024-08-09 19:45:45 +08:00
2025-02-23 09:31:51 +09:00
2025-02-14 14:18:13 +08:00
2025-02-14 14:18:13 +08:00
2024-08-09 19:45:45 +08:00
2025-11-26 10:57:30 +08:00
2024-08-09 19:45:45 +08:00
2024-08-09 19:45:45 +08:00

NanoKVM Frontend

This is NanoKVM web project. For more documentation, please refer to the Wiki.

Structure

src
├── api                // backend api
├── assets             // static resources
├── components         // public components
├── i18n               // language resources
├── jotai              // Global jotai variables
├── lib                // util libs
├── pages              // web pages
│    ├── auth             // login and password
│    ├── desktop          // remote desktop
│    └── terminal         // web terminal
├── router.tsx         // routers
└── types              // types

Local Development

Development requires SSH. You can enable it in the Web Settings: Settings > SSH.

Due to CORS restrictions, authentication needs to be disabled during local development.

To develop authentication features, you need to build the project and test in NanoKVM.

  1. Log in to NanoKVM via SSH: ssh root@your-nanokvm-ip (default password is root).
  2. Open the configuration file /etc/kvm/server.yaml/ and add authentication: disable. ⚠️CAUTION: This option disables all authentication and should NOT be enabled in production environment!
  3. Restart the service: /etc/init.d/S95nanokvm restart.
  4. Edit the .env.development file and change VITE_SERVER_IP to your NanoKVM IP address.
  5. Run pnpm dev to start the server and visit http://localhost:3001/ in browser.

It's recommended to disable browser caching to avoid access issues during development:

  1. Open the browser Developer Tools;
  2. Go to the Network tab;
  3. Check Disable cache option;
  4. Refresh the page.

Deployment

Build:

cd web
pnpm install
pnpm build
  1. After the compilation is complete, the dist folder will be generated.
  2. Rename the folder to web.
  3. Upload web to /kvmapp/server/ in NanoKVM.
  4. Restart the service by executing /etc/init.d/S95nanokvm restart in NanoKVM.

Tips:

  1. File uploads requires SSH. You can enable it in the Web Settings: Settings > SSH.
  2. Browser may have old version cache. If you can't open the page, try a force refresh or clear the cache.