Files
NanoKVM-MIRROR/web/README.md
wj-xiao 6eb4a4ea62 update version to 2.1.6
feat: support downloading image from online URL
feat: add keyboard shortcut Ctrl+Alt+Del
fix: fix the CSRF issue
perf: add an option to configure custom ICE servers
perf: removed unnecessary modifications to DNS configuration
perf: add an SSH enable/disable toggle in the web UI
perf: add a Tailscale enable/disable toggle in the web UI
perf: download Tailscale installation package from the official source
perf: automatic enable/disable GOMEMLIMIT on tailscale start/stop
perf: add JWT configuration
perf: implement secure password storage using bcrypt hashing
perf: implement integrity checks for online updates
refactor: refactor HDMI module and remove the dependency libmaixcam_lib.so
refactor: web terminal use pty instead of SSH
refactor: move Tailscale APIs from the network module to the extensions module
2025-02-14 14:18:13 +08:00

2.2 KiB

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.