Introduction

If you are already using MacOS, Ubuntu, or an official flavor of Ubuntu as your operating system and have Google Chrome as an installed browser, you can skip this lesson. Otherwise, click on the small arrow to the left of the method you would like to use below to expand that section, and then follow the installation instructions.

We can only support the operating systems indicated above. Our instructions have been tested with MacOS, Ubuntu, and official flavors of Ubuntu. We do not recommend installing an OS that is only based on Ubuntu (like Mint, Pop!_OS, ElementaryOS, etc).

1: OS Installation

IMPORTANT

This curriculum only supports using a laptop, desktop or supported Chromebook. We cannot help you set up a developer environment on a RaspberryPi or any other device. You only need to follow one of these sets of instructions or none of them if you are already using MacOS, Ubuntu, or an official flavor of Ubuntu as your operating system.

Pick your method of installation below:

Virtual Machine (Recommended)

Installing a Virtual Machine (VM) is the easiest and most reliable way to get started creating an environment for web development. A VM is an entire computer emulation that runs inside your current Operating System (OS), like Windows. The main drawback of a VM is that it can be slow because you’re essentially running two computers at the same time. We’ll do a few things to improve its performance.

Step 1: Download VirtualBox and Xubuntu

Installing a VM is a simple process. This guide uses Oracle’s VirtualBox program to create and run the VM. This program is open-source, free, and simple. What more can you ask for? Now, let’s make sure we have everything downloaded and ready for installation.

IMPORTANT

Once you have completed these instructions, you are expected to work entirely in the VM. Maximize the window, add more virtual monitors if you have them, fire up the Internet Browser in the Whisker Menu The blue-white rodent Whisker Menu Icon on the top left of the desktop. You should not be using anything outside of the VM while working on The Odin Project. If you feel like you have a good understanding after using the VM for a while, and or want to improve your experience, we recommend dual-booting Ubuntu, which there are instructions for below.

Step 1.1: Download VirtualBox

Click here and download VirtualBox for Windows hosts.

Step 1.2: Download Xubuntu

There are thousands of distributions of Linux out there, but Xubuntu is undoubtedly one of the most popular and user friendly. When installing Linux on a VM, we recommend downloading Xubuntu 22.04. There are a few files listed here, download the one ending in .iso. Xubuntu uses the same base software as Ubuntu but has a desktop environment that requires fewer computer resources and is therefore ideal for virtual machines. If you find the download speed slow, consider using a different mirror as the one linked before is a US one.

Step 2: Install VirtualBox and Set Up Xubuntu

Step 2.1: Install VirtualBox

Installing VirtualBox is very straightforward. It doesn’t require much technical knowledge and is the same process as installing any other program on your Windows computer. Double clicking the downloaded VirtualBox file will start the installation process. If you receive an error about needing Microsoft Visual C++ 2019 Redistributable Package, you can find it on official Microsoft Learn page. You most likely want the version with X64 Architecture (that means 64-bit) - download and install it then try installing VirtualBox again.

During the installation, you’ll be presented with various options. We suggest dropping the Python Support as you don’t need it by clicking on the drive icon with an arrow and choosing Entire feature will be unavailable:

The Python option is at the bottom of the list

This is how your installation window should look like after turning it off:

You want the Python option to have a scarlet "X" on it

Make sure you install the application on C: drive, as it has tendency to error out otherwise. The virtual machine itself can be installed anywhere but we’ll get to that soon. As the software installs, the progress bar might appear to be stuck; just wait for it to finish.

Step 2.2: Prepare VirtualBox for Xubuntu

Now that you have VirtualBox installed, launch the program. Once open, you should see the start screen.

The VirtualBox start screen

Click on the New button to create a virtual operating system. Give it a name of Xubuntu, if you want the VM installed somewhere else than default C: location, change that accordingly in the Folder option. This is the place where your virtual disk will reside, so make sure that you’ve got at least 30GB for that. In ISO Image choose Other - you’ll see a window open for you to find the .iso file on your PC. It most likely is in the Downloads folder. Leave Skip Unattended Installation as it is.

Half of the options being greyed out is normal. Don't worry about it.

Continue by pressing Next and follow the next steps:

Step 2.2.1: Unattended Guest OS Install Setup

You should see a window like this one now:

No need to worry about the Product Key.

You want to tick the Guest Additions and Install in Background options and also change your Username and Password fields to your liking. If you forget to change the default password, it will be changeme. Leave the Guest Additions ISO, Hostname and Domain Name as they are. Continue by pressing Next.

Step 2.2.2: Hardware

You might be tempted to give your VM more than 2 processors. Don't.

In the Hardware section of the installation you want to set your Base Memory to at least 2048 MB or more if possible - the upper limit is half of your total RAM but 4096 MB with the settings we recommend should give you a smooth experience.

For example, if you have 8 GB (8192 MB respectively) of RAM, you could allocate up to 4096 MB (1024 MB to 1 GB) to your VM’s operating system. If you do not know how much RAM is available to you, please run this Google query to learn how to find this out. If the VM runs a bit slow, try allocating more memory!

(note: Difficulty converting your GigaBytes into MegaBytes? 1 GB of RAM is equal to 1024 MB. Therefore, you can say that 8 GB = 8 x 1024 = 8192 MB.)

As for Processors you want this to be at 2 and no more. Leave Enable EFI (special OSes only) as it is and click Next to continue.

Step 2.2.3: Virtual Hard Disk

Don't Pre-allocate Full Size.

Now, you want to leave all the settings as they are besides the Disk Size, we recommend giving the VM at least 30GB of space. Reminder that this disk will be created in the folder that you’ve specified on the very first step of the VM creation process but nonetheless, the disk can be moved and resized in the future if needed.

Step 2.2.4: Begin the Unattended Installation

Click Next to be taken to a Summary page, on which you can simply click Finish to begin the process of unattended installation. The neat thing about it? It installs the OS and GuestAdditions on its own, without your input! Just let it do its own thing, you will know it is finished when you will see a login screen like this one in the Preview section:

The Preview section is in the top right of VirtualBox window.

Just click the green arrow called Show and you’ll be presented with a VM window and the login screen. Log in with the password you’ve set up during the installation process and we’ll have one bit of configuration left to do.

It is possible that you’ll receive an error like this one after clicking Finish:

The error shows up on the right side of the VirtualBox window and can be a little differently worded.

It means you have to enable virtualization in your computer’s BIOS/UEFI settings. Alternative set of instructions. If you have an AMD CPU, you’re probably looking for something called SVM to enable, for Intel CPUs, Intel Virtualization Technology. The error should tell you what it is looking for. After you deal with it, just Start the machine and let things happen, you’ll know that the process has finished when you see a login screen:

You can already make your VM full screen or just maximize the window.

Step 3: Setting Correct sudo Permissions

Due to how the unattended installation is configured by VirtualBox, your account doesn’t have proper sudo permissions. Think of them as the equivalent to Run as administrator on your Windows machine - you can imagine why it would be important to have them in order.

Step 3.1: Navigate to Users and Group

First, click on the The blue-white rodent Whisker Menu Icon in top left of your window, afterwards type in Users and you should see Users and Groups show up. Click on it.

It should be the top option you see. It is possible that due to localization it'll be called differently - try using the term in your language then.

Step 3.2: Manage Groups

In the window that just came up you want to click on Manage Groups, click somewhere on the list and type sudo on your keyboard. That should bring you to the sudo entry like in the picture:

You will find the search functionality like this in many corners of Xubuntu.

Step 3.2: Add Yourself to sudo

With sudo selected, click Preferences and in the window that shows up tick your user’s name like this:

No need to touch anything else.

And then click OK. You will be greeted with a password prompt - it’s the same one you logged in with.

Step 3.3: Reboot Your VM

Now that this is all done, you can close those windows and reboot your VM. You can open a Terminal window by doing CTRL + ALT + T and type in reboot and then press Enter to execute the command. Alternatively, you can click on the The blue-white rodent Whisker Menu Icon , then click on the power icon in bottom right and pick Restart.

You might want to take note of other options that you see in this menu.

Not the most exciting of menus, but take note of the Shut Down option.

Step 3.4: Test Your Newly Gained sudo Privileges

Now that you have access to sudo, we can use this to update our Xubuntu through the Terminal. Open the Terminal and use these commands, one after another:

sudo apt install
sudo apt upgrade

You will be asked for your password after using the first one - type it in and use Enter to provide your terminal with the password. There is no visual feedback about what you’re typing in but you are indeed doing so.

After sudo apt upgrade runs for a while you will be asked whether you want to install things - do so to update your machine. If you have any issues, do not hesitate to come over to our Discord server and ask for help in the #virtualbox-help channel.

Step 4: Understand Your New VM

Here are some tips to help you get started in a virtual environment:

  • Enable the toolbar in your VM settings - there are useful options there that you might want to play around with, especially the ones concerning full screen or multiple displays. To do so, click on Settings and then navigate to User Interface and finally tick Show at Top of Screen. It's a good idea to look around the settings overall to get a feel of what's possible.
  • All your work should happen in the VM. You will install everything you need for coding, including your text editor, language environments and various tools inside the VM. The Xubuntu installation inside of your VM also comes with a web browser pre-installed but we’ll be installing Chrome shortly.
  • To install software on your VM, you will follow the Linux (Ubuntu) installation instructions from inside the Xubuntu VM.
  • You might need to take screenshots when asking for help on our Discord, here’s how depending on where you use it:
    • Inside the VM: you can use Shift + PrtSrc to take screenshots of portion of your screen. Alternatively, you can click the Whisker Menu and type in Screenshot, in which you can choose to take a screenshot of your entire screen, the current window you are on or to select a certain area to capture.
    • On your host (Windows): you can use a shortcut of the Host Key (Right Ctrl + E) or click View -> Take Screenshot for a full screenshot. A different way would be unfocusing your VM window by clicking outside of it and then using the regular Windows shortcut of Windows key + Shift + S to take screenshots of portion of your screen.
  • Remember: all of the development that you’ll do related to TOP should be done in the VM.
  • We recommend going full screen (View -> Full-screen Mode) and forgetting about your host OS (Windows). For best performance, close all programs inside of your host OS when running your VM.
  • If you added additional monitors in the Display tab of your VM settings, with the VM running, clicking View -> Virtual Screen 2 -> Enable. You can run fullscreen with multiple monitors, but it may ask for more Video Memory, which you should have increased when adding more monitors. Make sure you enable your Virtual Screens in windowed mode before going fullscreen, otherwise they won’t work. Upon exiting fullscreen, your secondary display may close. You can reopen it with these instructions.

Frequent Issues/Questions:

  • If upon trying to start the VM you only get a black screen, close and power off the VM, click Settings -> Display and make sure Enable 3D Acceleration is UNCHECKED, and Video memory is set to AT LEAST 128MB.
  • Running out of space? Look at these instructions on our Discord.
  • Are you using a touchscreen? Here’s a video on how to enable touchscreen controls for VirtualBox.
  • VM performance tips:
    • When running the VM, minimize your Windows activity. You probably want to be plugged into power as well if you’re using a laptop.
    • Make sure your processors are set to only 2 and the Memory you’ve given your VM is at most half of your total RAM but at least 2GB. If you can’t spare the 2GB, dual boot.
    • If videos lag in the VM, make sure to max out Video Memory to whatever you can or alternatively play them on your Windows if your machine can handle it. Disable 3D Acceleration if you have it enabled.
    • Do look out for the Icon with a green turtle and a V icon in bottom right of your VM window, if you have it, here’s a VirtualBox forum thread on how to get rid of it. You want to have the Icon of a chip with a V icon instead. If you don’t see a Icon with a green turtle and a V or a Icon of a chip with a V in bottom right, you have to exit full screen mode to see them.
  • If your performance is still lacking, go for a dual boot as this will make sure you’re using all of your specs for one OS only, thus improving your experience significantly.
  • If your scroll wheel behaves oddly in Google Chrome and you have gone through VM performance tips to make sure your VM is working as intended, look into imwheel: see these AskUbuntu instructions for more information. If you have VSCode installed, use that instead of gedit, otherwise install it with sudo apt install gedit - if you install it with snap, it won’t let you save the file. To make sure imwheel works every startup, you need to click the whisker The blue-white rodent Whisker Menu Icon , type Session and click on Session and Startup that shows up, go to Application Autostart, click Add and put it imwheel for Name and imwheel -b "4 5 for Command. Click OK and you should be all set.

Step 5: Safely Shutting Down Your VM

You don’t pull the plug on your everyday use computer, right? Why would you do the same to your virtual computer? When you click the X button and just close out your VM, you might as well say goodbye to your files. In this section, you’ll understand three ways you can shut off your VM.

Option 1 - Shutting Down from Inside the VM with UI

Clicking on the Whisker Menu The blue-white rodent Whisker Menu Icon and clicking the power icon will give you several options on how to modify your session, including Shutting Down. Yep, that’s the same place you might’ve used to Restart before!

Option 2 - Shutting Down from Inside the VM with the Terminal

Simply enough, typing poweroff will do in this case. Your system will immediately shutdown.

Option 3 - Shutting Down from Outside the VM

The last way to accomplish this goal of safely shutting down is by using the VM interface. Clicking on the File tab and hitting the close button (which also has a Power Icon) will bring up a popup titled Close Virtual Machine. This popup asks if you want to Save the machine state, Send the shutdown signal, or Power off the machine.

VM File Menu

Close Virtual Machine Menu

To be safe, click the Send the shutdown signal radio and hit OK. This will safely power down your VM and your files will not get corrupted.

Ubuntu/Windows Dual-Boot

Read This Entire Section Before Starting

Dual-booting provides two operating systems on your computer that you can switch between with a simple reboot. One OS will not modify the other unless you explicitly tell it to do so. Before you continue, be sure to back up any important data and to have a way to ask for help. If you get lost, scared, or stuck, we’re here to help in the Odin Tech Support chat room. Come say “Hi”!

Step 1: Download Ubuntu

First, you need to download the version of Ubuntu you want to install on your computer. Ubuntu comes in different versions (“flavors”), but we suggest the standard desktop Ubuntu. If you’re using an older computer, we recommend Xubuntu. Be sure to download the 64-bit version of Ubuntu or Xubuntu.

Step 2: Create a Bootable Flash Drive

Next, follow this guide to create a bootable flash drive so that you can install Ubuntu on your hard drive. If you don’t have a flash drive, you can also use a CD or DVD.

Note: You can use this method to try out different flavors of Ubuntu if you’d like. These images allow you to try out different flavors without committing to an installation. Be aware that running the OS from a flash drive will cause the OS to be slow and can decrease the life of your flash drive.

Step 3: Install Ubuntu

Step 3.1: Boot from the Flash Drive

First, you need to boot Ubuntu from your flash drive. The exact steps may vary, but in general, you will need to do the following:

  • Insert the flash drive into the computer.
  • Reboot the computer.
  • Select the flash drive as the bootable device instead of the hard drive.

For example, on a Dell computer, you would need to plug in the flash drive, reboot the computer, and press the F12 key while the computer is first booting up to bring up the boot menu. From there, you can select to boot from the flash drive. Your computer may not be exactly the same, but Google can help you figure it out.

Step 3.2: Install Ubuntu

If you would like to test out the version of Ubuntu on the flash drive, click ‘Try me’. When you have found a flavor of Ubuntu you like, click ‘Install’ and continue to the next step.

Installing Ubuntu is where the real changes start happening on your computer. The default settings are mostly perfect, but be sure to “Install Ubuntu alongside Windows” and change the allocated disk space allowed for Ubuntu to 30 GB (or more if you can).

For step-by-step instructions, please follow this installation guide from the Dave’s RoboShack.

Intel RST (Rapid Storage Technology)

If you encounter an error requesting you to disable Intel RST while attempting to install Ubuntu, follow these instructions from Stack Exchange, specifically Choice #2. The process forces Windows to boot into safemode after you switch your motherboard storage driver to work with Ubuntu. Once it boots into Windows, the forced-on safemode is disabled and you are free to attempt an installation of Ubuntu once again.

ChromeOS/ChromeOS Flex

With the recent addition of being able to run a Linux terminal, the ChromeOS platform has been opened up to the ability to install native Linux applications. If you wish to use your Chromebook to complete The Odin Project, you will need to ensure you meet a couple requirements:

  1. You have a supported Chromebook:
  2. You can install Linux by following these instructions

Once you have successfully met both of these requirements, you should be able to follow along with the Linux instructions throughout the entire curriculum.

2: Google Chrome Installation

Why Google Chrome?

Because our lessons use Google Chrome, and Chrome/Chromium are overwhelmingly used by developers and consumers, the recommendations we make are very intentional. Look at this usage share of web browsers and see what other folks are using the most.

Choose your Operating System:

Linux

Step 1: Download Google Chrome

  • Open your Terminal
  • Run the following command to download latest Google Chrome .deb package
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

Step 2: Install Google Chrome

  • Enter the following command in your terminal to install Google Chrome .deb package

    sudo apt install ./google-chrome-stable_current_amd64.deb
    
  • Enter your password, if needed

(note: You might see a notice starting with N: Download is performed unsandboxed (...). You don’t need to worry about it. Read this reddit post for more information.)

Step 3: Delete the Installer File

rm google-chrome-stable_current_amd64.deb

Step 4: Using Google Chrome

You can start chrome in two ways,

  • Click Google Chrome from the Applications menu
  • Or, use the google-chrome command from the terminal
google-chrome

(note: Chrome is going to use this terminal to output various messages and won’t let you run other commands. Don’t worry about those messages. If you want to use the same terminal that you run Chrome in for other commands, use google-chrome & instead.)

MacOS

Step 1: Download Google Chrome

Step 2: Install Google Chrome

  • Open the Downloads folder
  • Double click the file googlechrome.dmg
  • Drag the Google Chrome icon to the Applications folder icon

Step 3: Delete the Installer File

  • Open Finder
  • Click the arrow next to Google Chrome in the sidebar
  • Go to the Downloads folder
  • Drag googlechrome.dmg to the trash

Step 4: Using Google Chrome

  • Go to your Applications folder
  • Double click Google Chrome

Additional Resources

This section contains helpful links to related content. It isn’t required, so consider it supplemental.

  • It looks like this lesson doesn’t have any additional resources yet. Help us expand this section by contributing to our curriculum.

Are you interested in accelerating your web development learning experience?

Get started
Thinkful Logo

Thinkful

  • 5-6 months

    5-6 months

  • Job Guarantee

    Job Guarantee

  • 1-on-1 Mentorship

    1-on-1 Mentorship