Nalvo.ai Fleet Manager - rent out a Windows PC

A Windows 11 PC with an NVIDIA graphics card can be rented out through Nalvo. Nalvo is in closed beta, and renting is not open yet. A renter gets one Linux container on your PC (Docker inside WSL, the Windows Subsystem for Linux) and logs in with an SSH key. Renters do not get your desktop or your Windows account. Nothing is listed until you choose Nalvo for the PC in the Fleet Manager.

The GPU is shared with your desktop. Renters are told that this is a Windows PC, that you may use the GPU yourself, and that they are credited automatically when the agent detects that you do, or when the PC sleeps, restarts or signs out during their rental.

What you need

Why rentals use a separate Windows account

Renters run their own programs. Microsoft states that a WSL Linux system is not a security boundary: a program that broke out of the rental container would act with the rights of the Windows account that runs WSL. So Nalvo never runs rentals under your account. The script creates a separate standard account (default name nalvo): never an administrator, and while it has no password it can sign in only at this PC, never over the network. Its WSL and settings are separate from yours, so your own WSL, Docker Desktop or Salad keep their settings. Rental containers cannot reach this PC, your router (also not through your connection's public address) or other devices at home; they can reach only the internet.

What the rentals account can and cannot open

Windows lets every account read, and often change, many places by default, for example a second drive or a folder you created directly on C:. The Admin stage therefore adds a "deny" permission for the rentals account, and only for it, on:

Your own user folder (Documents, Desktop, Pictures and so on) and other people's user folders are private to their owners already. Every permission the script adds is recorded in C:\ProgramData\Nalvo\acl-backup.json, and exactly those are taken away when you remove Nalvo. On a drive with many files this step can take several minutes. A folder whose permissions the script cannot read or change is skipped with a warning and listed as not protected; the other places are still denied.

Not protected:

Keep personal files in your own user folder.

1. Download the script and check it

Open Windows PowerShell as administrator in your own account (Start, type PowerShell, right-click Windows PowerShell, Run as administrator) and run these three lines:

cd $env:USERPROFILE\Downloads
curl.exe -fLo prepare-rentals.ps1 https://fleet.nalvo.ai/installer/prepare-rentals.ps1
(Get-FileHash .\prepare-rentals.ps1 -Algorithm SHA256).Hash

The hash must be e2b253f70b0eb4d994ccd152c05fa376682f14832572f288f67c75a0b0610f0b (capital or small letters do not matter). If it is different, do not run the file. The script is plain text; you can read it in Notepad first. Nalvo never asks you to paste a command that downloads and runs code in one step.

2. Admin stage (your administrator window, about 5 minutes)

powershell -NoProfile -ExecutionPolicy Bypass -File .\prepare-rentals.ps1 -Stage Admin

It lists what it will change, including every drive and folder it will deny to the rentals account, and waits for you to type YES. Then it:

Running the Admin stage again is safe: it keeps the account, the rental ports and every saved setting, and only adds what is missing.

Options: -Account name for another account name; -PortFirst 41000 -PortLast 41019 if Windows has reserved the default ports on your PC (the script tells you; after a change run the User stage again and change your router forward to the new range); -AutoSignIn, see "Keep the rentals account signed in" below.

A password for the rentals account

Without a password, anyone who can use this PC can open nalvo with one click on the sign-in screen, and locking the screen does not stop them. From that account they can open the renters' Linux system and everything in it. The Admin stage therefore offers a password, which Nalvo recommends unless only you can physically use the PC. You type it twice; it is hidden, and the script never shows, logs or saves it. The trade-off: Windows cannot sign in to an account with a password by itself, so automatic sign-in (below) is not possible, and after every restart someone has to sign in to nalvo before rentals run again. If you set a password in a later run while automatic sign-in is on, the script turns automatic sign-in off and says so. With a password the account can also sign in over the network, for example to shared folders; it never gets administrator rights.

3. Switch to the rentals account

Start, click your account picture, choose nalvo (with the password if you set one). Use Switch user, not Sign out, so your own account stays signed in. The first sign-in takes a minute; if Windows asks privacy questions, choose the minimum.

4. Pair it with the Fleet Manager

One PC can be only one node. If this PC is already in your Fleet Manager because you paired it from your own account, first remove it in the Fleet Manager. The Nalvo agent in your own account then uninstalls itself. Only then pair the PC from the nalvo account. The Admin stage warns you when it finds that agent.

If you installed Nalvo for Windows in your own account, removing the PC in the Fleet Manager does not uninstall it. Uninstall it first in Windows Settings, Apps, Installed apps, Nalvo, then remove the PC in the Fleet Manager, then pair from the nalvo account.

In the nalvo account, first install Python 3 for that account only: download it from python.org, run the installer, clear "Use admin privileges when installing py.exe" and choose Install Now, which installs it for this user. Do not rely on a Python installed for all users in a folder directly on C:\: the Admin stage denies that folder to nalvo, warns you when it finds one, and stops if the agent in nalvo already runs from it.

Then open the Fleet Manager in a browser in the nalvo account, tap + Add a computer, tap Show the line, and copy the On Windows line. Open Windows PowerShell normally (not as administrator) and paste it. The Nalvo agent installs itself in this account and starts whenever the account signs in.

5. User stage (in the rentals account, 10 to 30 minutes)

In the same normal PowerShell window in the nalvo account:

powershell -NoProfile -ExecutionPolicy Bypass -File C:\ProgramData\Nalvo\prepare-rentals.ps1 -Stage User

It:

It restarts the WSL of the nalvo account only; your own account's WSL keeps running. While it runs, the Nalvo agent does not restart that WSL. If it stops part-way, run it again: it continues where it stopped. Do not open NalvoRental from the Start menu or Windows Terminal.

6. Router: forward the rental ports

  1. Give the PC a fixed address in your router: a DHCP reservation for the address the script printed.
  2. Forward the rental ports the script printed, TCP 40000-40019 unless you chose another range with -PortFirst and -PortLast, from the internet to that address, same ports. Only TCP and only these ports. Do not use "DMZ host" or UPnP for this PC.
  3. The script also prints your public IPv4 address. If your router's status page shows a different WAN or Internet address, or one between 100.64.0.0 and 100.127.255.255, your provider uses carrier-grade NAT and forwarding cannot work: ask the provider for a public IPv4 address.

What the Fleet Manager checks before the PC is offered

The Nalvo agent in the nalvo account reports these checks, and the Fleet Manager shows them for the PC. The PC is offered to renters only while every one of them passes:

  1. a separate standard Windows account for rentals is set up and signed in, and the agent runs in it;
  2. the rentals account cannot open the other drives, the folders directly on C:\ outside Windows, Program Files, ProgramData and Users, other people's user folders, C:\Users\Public or the other folders in C:\Users;
  3. the agent can read the Windows GPU usage counters for the NVIDIA card (this is how it notices when you use the GPU);
  4. WSL 2 and the NalvoRental Linux system are installed;
  5. mirrored WSL networking is on;
  6. Docker is installed and running;
  7. the network guard that keeps renters off your home network is on;
  8. rental containers can see the GPU;
  9. the NVIDIA driver is version 580 or newer.

While Windows waits to restart for an update, the PC takes no new bookings. The Fleet Manager also shows whether the PC uses the default rental ports 40000-40019; that is for your information only.

Not checked before the PC is offered: whether renters can reach it from the internet through your router (Nalvo checks that after the PC is listed), whether Windows keeps the PC awake from the background account, and automatic sign-in. Windows rentals are new, and these depend on your exact PC.

Keep the rentals account signed in

Rentals run only while nalvo is signed in. Go back to your own account with Switch user; locking the screen is fine. Signing out of nalvo, restarting, shutting down or sleep stop running rentals. If the PC is away for more than about 3 minutes during a rental, that rental ends as a host fault: the renter pays only for the time delivered, the PC gets a reliability mark, and the Compute Market takes it out of the market. Fix the cause, make sure the PC is online, then open the Compute Market and choose List again for the PC under My nodes.

Optional automatic sign-in: run the Admin stage again with -AutoSignIn. It works only while nalvo has no password. After a restart, including Windows Update restarts, Windows then signs in to nalvo by itself, so the PC can take new bookings again without you. It does not save a rental that was running during the restart (see above). You confirm by typing the account name; no password is stored anywhere. Because the account then has no password, use automatic sign-in only on a PC that only you can physically use.

Sleep and Windows Update

Games, Salad and other GPU programs

The GPU is shared with your desktop. When another program uses the GPU heavily during a rental, for example a game or Salad, the renter gets less of it. The agent reads the GPU usage counters in Windows: when another program keeps a 3D, graphics or compute engine of the GPU busy above 15% for at least half of a minute, it sends Nalvo only a yes/no "the PC is busy", and the renter is credited automatically for that time (50%). Time in which the agent cannot measure this is credited the same way. Shorter or lighter use is not noticed, and video encoding or decoding (recording or streaming, for example) is not counted. To earn the most, do not run Salad or other heavy GPU programs while the PC is rented out.

If you want the GPU for yourself for a longer time, schedule a maintenance window for the PC in the Compute Market (the Maintenance section, below My nodes): no booking can be placed over it, and the PC takes no rentals while it runs. A window cannot overlap a booking that is already made, so start it after the current rental; a running rental is never stopped for it. The Fleet Manager has no button to pause renting.

Remove everything

  1. In the nalvo account, normal PowerShell:
    powershell -NoProfile -ExecutionPolicy Bypass -File C:\ProgramData\Nalvo\prepare-rentals.ps1 -Stage User -Remove
    It permanently deletes NalvoRental after you type DELETE, and restores that account's WSL settings.
  2. In your own account, administrator PowerShell:
    powershell -NoProfile -ExecutionPolicy Bypass -File C:\ProgramData\Nalvo\prepare-rentals.ps1 -Stage Admin -Remove
    It removes the firewall rule and every deny permission it added, restores the sleep settings of each power plan it changed and your sign-in settings, offers to delete the nalvo account and its files (only an account this script created; an account that stays is taken out of the groups the script added it to), and deletes C:\ProgramData\Nalvo. WSL itself stays installed. While a rental is running it stops unless you add -Force. A deny permission that Windows does not let it take away (it names the folder) keeps it from finishing only while the nalvo account still exists; once that account is deleted, such a permission names no account and does nothing.
  3. Remove the PC in the Fleet Manager.

If something goes wrong

Every step is safe to run again. The script ends with an exit code:

CodeMeaning
0Done.
2A wrong option, or you cancelled. Nothing was changed by that run.
3Restart Windows, then run the same command again.
4Something the PC needs is missing, a rental is running, or the rentals account's user folder or Python lies in a place the script must deny to it; the message says what. Nothing was changed by that check.
5A step or check failed; the message says which. Fix it and run the same command again.
6Wrong account or window: the Admin stage needs an administrator window in your own account; the User stage needs a normal window in the rentals account. An existing account that this script did not create needs -AdoptExistingAccount.

Linux machines: make a Nalvo install USB - Back to the Fleet Manager