UserVM Handbook/Windows: Difference between revisions
No edit summary |
No edit summary |
||
Line 87: | Line 87: | ||
{{code|lang=batch| |
{{code|lang=batch| |
||
cd C:\collabvm |
cd C:\collabvm |
||
git clone https://github.com/computernewb/collab-vm-1.2-webapp.git |
git clone https://github.com/computernewb/collab-vm-1.2-webapp.git --recursive |
||
cd collab-vm-1.2-webapp |
cd collab-vm-1.2-webapp |
||
}} |
}} |
Revision as of 05:11, 5 August 2024
This guide details how to set up a UserVM on a host machine running Microsoft Windows.
We do not support CollabVM server on Windows. We strongly recommend that you install a Linux distribution and follow the main UserVM Handbook instead. If you experience problems with this guide, you may receive help in the CollabVM discord, but this is not a guarantee and you may be on your own if it's not a simple fix. |
The Rules
First, the boring part. We ask that all hosts review and follow the UserVM Hosting Rules.
Prerequisites
You'll need:
- A machine with decent specs (8GB of RAM and a modern CPU, probably)
- Microsoft Windows 10 or later. For Linux, see the main UserVM Handbook.
- A decently fast network that allows you to forward a port. We will not accept UserVMs behind services like ngrok. Cloudflare tunnels are fine. You must also have a URL that stays persistent. If your IP is dynamic, you can use services like NOIP or setup a script to auto-update your domain using cloudflare.
- Basic knowledge of how computers and Windows systems work. We aren't going to hold your hand, you need to be comfortable with a command line
- A few hours
Compiling the server
Install dependencies
Open Command Prompt as administrator.
First, install the Chocolatey package manager. If you already have it installed, you can skip this step.
powershell -c "Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"
Restart CMD to apply the changes to PATH. Now, we'll install the various dependencies CollabVM has:
choco install qemu git mingw llvm nasm cmake nodejs nssm rust-ms visualstudio2019-workload-vctools
Once again, restart CMD to apply PATH changes.
Enable corepack:
corepack enable
Prepare the server
We can now get the server ready. First, create a directory for all CollabVM related files. For the purposes of this guide, we use C:\collabvm
. If you use a different directory, be sure to substitute it in all future commands.
mkdir C:\collabvm
Clone the CollabVM server source:
git clone https://github.com/computernewb/collabvm-1.2.ts.git C:\collabvm\collabvm-1.2.ts --depth 1 --recursive
cd C:\collabvm\collabvm-1.2.ts
Install dependencies and build the server:
yarn
yarn build
Set up your VM
Now is a good time to get your VM set up. Currently, the only supported hypervisor is QEMU. We have many guides on this wiki for setting up different OSes in QEMU, check them out here. Here are some ideas to make your VM interesting:
- A funny wallpaper
- Development software (Visual Studio, etc.)
- Some games
- Some harmless malware (for the love of god no GDI rapists)
Setting up a Virtual Network
TODO: Windows version of CollabNet Guide host shit using OpenVPN wintun bullshit (pain)
Configuration
Now we need to fill out the config file for your VM. Copy config.example.toml to config.toml, and open it in an editor. It is well commented so each value should be self-explanatory. If you have questions, feel free to ask in our Discord server.
Running your VM
Now that everything is set up, you can bring your VM online. To run the server right from your terminal, run the following command:
yarn serve
Or alternatively, to run it directly:
node cvmts/dist/index.js
Running a local webapp
Before you put your VM on the UserVM roster, you'll probably want to test it out for yourself. For that, we'll throw up a test webapp. Start by cloning the source:
cd C:\collabvm
git clone https://github.com/computernewb/collab-vm-1.2-webapp.git --recursive
cd collab-vm-1.2-webapp
Then, copy config.example.json
to config.json
, and replace ServerAddresses with your server address:
"ServerAddresses": [
"ws://127.0.0.1:6004",
],
Now you can build the webapp, and serve it:
yarn
yarn build
yarn serve
This will run the webapp at 127.0.0.1:1234
, which you can navigate to in your browser. If all went well, your VM should show up. If not, and you don't know why, join our discord and ask for help there!