Windows 10
    • Dark
      Light
    • PDF

    Windows 10

    • Dark
      Light
    • PDF

    Article summary

    Setting up Rocket.Chat on Windows requires using the WSL2. Windows Subsystem for Linux 2 (WSL2) is a complete architectural overhaul of Linux on Windows, which installs an entire Linux kernel (built by Microsoft) alongside the classic Windows kernel. The Linux and Windows kernels can now share system resources, such as memory and CPU, at a previously impossible granularity.

    Prerequisites

    Software requirements

    Machine requirements

    To set up Rocket.Chat development environment, you'll require a Windows machine that meets the following minimum specifications:

    • 12 GB of RAM (16+ GB highly recommended)

    • Four 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)

    Set up a Rocket.Chat development environment on Windows

    1. Open the Ubuntu WSL 2 shell and update the distro by running this command:

      sudo apt-get update && sudo apt-get dist-upgrade -y
    2. Install the necessary build tools:

      sudo apt-get install build-essential python3 make g++
    3. Install NodeJs 14.x (LTS) either manually or using a tool like nvm or volta.

    Check the releases to see the required NodeJS version for Rocket.Chat.

    1. Install Deno by running:

      curl -fsSL https://deno.land/install.sh | sh
    2. Install Meteor with this command:

      npx [email protected]

    Occasionally, you might have to install an older Meteor release as Rocket.Chat currently only supports Meteor 2.x. Ensure to verify the required Meteor version for Rocket.Chat from the .meteor/release file.

    1. Alternatively, Install a specific Meteor version using the command below, replacing x.x with the version number:

      curl https://install.meteor.com/?release=x.x | sh
    2. Install the yarn package manager with this command.

      npm install --global yarn
    3. Fork the Rocket.Chat repository on GitHub.

    To install Git on Linux, see the official guide.

    1. Open the WSL 2 shell, navigate into the (~/home/yourusername) directory. Clone the forked repository by running the command below:

      git clone https://github.com/<your-username>/Rocket.Chat.git

    Navigating into the specified directory above is necessary, otherwise, MongoDB won't start

    1. Navigate into the Rocket.Chat directory and install all the dependencies by running these commands:

      cd Rocket.Chat
      yarn

    During the build, you may notice warnings about peer or transitive dependencies. These are typically safe to ignore unless you are developing the specific features or modules that require them.

    1. When completed, build and run the server by executing this command:

      yarn dsv

    The first build can take ten or more minutes, and you may see various warnings or minor errors. Subsequent dev builds will take lesser time.

    A successful running 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

    Edit Rocket.Chat files on Windows

    On Windows 10, the recommended IDE to use is Visual Studio Code. Install Visual Studio Code from Microsoft’s store and ensure you install the VS Code extension named Remote - WSL. Optionally, you can install the Windows Terminal extension.

    To edit Rocket.Chat files,

    • Open the cloned repository folder in your IDE.

    • When you make changes to Rocket.Chat the server will automatically rebuild.

    • Sometimes, changes can shut down the server. If that happens, run yarn dsv again.

    Troubleshooting

    Fixing symbolic link issues with libcuda.so.1

    Please follow these steps if you encounter the error message, “/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link” while building your Rocket.Chat project.

    1. Open a terminal and check the status of the libcuda.so.1 file by running:

      ls -l /usr/lib/wsl/lib/libcuda.so.1

      If the output shows this:

      -r-xr-xr-x 1 root root 154088 Dec 19  2023 /usr/lib/wsl/lib/libcuda.so.1

      This means the libcuda.so.1 file exists but is not a symbolic link, as indicated by the file permissions and type (-r-xr-xr-x indicates a regular file, not a symbolic link). To resolve this issue, remove this file and create a symbolic link pointing to the correct libcuda.so file.

    2. Remove libcuda.so.1 file:

      sudo rm /usr/lib/wsl/lib/libcuda.so.1
    3. Check for the actual libcuda files in the directory to determine the correct target for the symbolic link:

      ls -l /usr/lib/wsl/lib/

      Look for the actual libcuda files, such as libcuda.so.1.1.

    4. Create a symbolic link, assuming libcuda.so.1.1 is the correct target file:

      sudo ln -s /usr/lib/wsl/lib/libcuda.so.1.1 /usr/lib/wsl/lib/libcuda.so.1
    5. Verify the symbolic link is set up correctly:

      ls -l /usr/lib/wsl/lib/libcuda.so.1

      The output should show that libcuda.so.1 is a symbolic link pointing to libcuda.so.1.1 (or another appropriate version):

      lrwxrwxrwx 1 root root 31 Jun 24 19:04 /usr/lib/wsl/lib/libcuda.so.1 -> /usr/lib/wsl/lib/libcuda.so.1.1
    6. Clean Yarn cache:

      yarn cache clean
    7. Install dependencies and build the project:

      yarn
      yarn dsv

    For more troubleshooting guides, check out the development environment troubleshooting.

    Now that your development server is running, you can contribute to the Rocket.Chat server! See participate in Rocket.Chat development to learn more about Rocket.Chat contributions.


    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.
    ESC

    Eddy AI, facilitating knowledge discovery through conversational intelligence