Windows 10
Microsoft finally released Windows Subsystem for Linux 2 (WSL 2) in June of 2020. Before this time, development of large and complex NodeJS based servers/full-stack applications such as Rocket.Chat on Windows is close to impossible.
WSL 2 is a complete architectural overhaul of Linux on Windows, installing a full genuine Linux kernel (built by Microsoft) alongside the classic Windows kernel. The Linux kernel and Windows kernel can now share system resources, such as memory and CPU, at a granularity not previously possible. It also includes major performance optimization on cross-subsystems file sharing, boot, and other developer-relevant areas.
You must be using Windows 10, version 2004 or later to take advantage of WSL 2, and to setup Rocket.Chat development.

Requirements

Software Requirements

The following are prerequisites for developing Rocket.Chat on Windows 10:
  1. 1.
    Make sure you have Windows 10, version 2004 or later
  2. 2.
    Install and configure WSL 2 by following Microsoft documentation, making sure to select Ubuntu 20.04 LTS distribution as your choice of Linux
  3. 3.
    Download and install the latest Linux Kernel Updates

Machine Requirements

Building Rocket.Chat code requires a minimum of 8 GB of RAM memory on the Linux subsystem. (If you are not doing any development, and just deploying a Rocket.Chat server - the RAM required can be as low as 1GB.) On version 2004, about 4 GB of RAM appears to be reserved for the Windows subsystem. You will need a Windows machine with the following minimal requirement to develop Rocket.Chat:
  • 12 GB of RAM memory (16+ GB highly recommended)
  • 4 or more cores on CPU (at least 3 GHz boosted, 4.2 GHz or higher recommended)
  • 80 GB of available fast SSD storage ( PCIe 4.0 NVMe SSD recommended)

Setting up a Development Environment

IMPORTANT: Note that there is no need to install mongo, nodejs, or npm separately
IMPORTANT: You should work (clone) with Rocket.Chat code under ~ (/home/username) dir, otherwise MongoDB won't start.
NOTE: Development should be performed under a regular user account, not Administrator.
NOTE: During build, you may notice WARNING related to peer dependencies or other transitive dependencies. They are typically safe to ignore unless you are coding the feature or modules that require them.
  • Open a WSL 2 shell (not Powershell) and update the distro by running
1
sudo apt-get update && sudo apt-get dist-upgrade -y
Copied!
  • Install tools required
1
sudo apt-get install build-essential git curl python3-minimal pkg-config
Copied!
  • Install meteor
1
curl https://install.meteor.com/ | sh
Copied!
(Under some circumstances, you may need to install a specific (older) release of Meteor instead of the latest, always check the .meteor/release file of the Github code repository to determine if you need to do this before you install meteor)
There is no need to install node or npm, as meteor already includes them. Verify by executing
1
meteor node -v // v14.19.1
2
meteor npm -v // 6.14.16
Copied!
  • It is recommended to use the yarn package manager. Install it by running
1
npm install --global yarn
Copied!
1
git clone https://github.com/yourforkedrepo.git
Copied!
  • Now navigate into the directory and install all the dependencies by running the following code
1
cd Rocket.Chat
2
yarn
Copied!
  • When completed, build and run the server by executing
1
yarn build
2
yarn dev
Copied!
Start building (the first build can take 10 or more minutes, and you may see various warnings or minor errors -- please be patient; subsequent dev builds after the first will be 5 minutes or less)
The server will start up on port 3000 and you will see the following screen
A successful running of the server will open up port 3000 on your machine where you can access Rocket.Chat using any browser or the Rocket.Chat client app through http://localhost:3000
Other references:

Editing Rocket.Chat Files

On Windows 10, the best coding environment to use is Visual Studio Code. Install Visual Studio Code from Windows. Make sure you also install the VS Code extension named Remote - WSL Optionally install the Windows Terminal extension
Editing files is relatively simple. You can go to the cloned repository folder and edit or add files to Rocket.Chat. From a WSL shell, you can start Visual Studio for Code using the command code . .
When you make changes to Rocket.Chat the server will automatically rebuild.
Sometimes changes can shut down the server, if that happens just run yarn dev again.