The following instructions will help you to get ready for Le Wagon fullstack bootcamp:
- Grab a text editor, where you will spend your days and nights
- Install a package manager
- Pimp your Terminal
- Setup git and GitHub
- Install Ruby
Before we start, it is important you meet the following prerequisites to ensure the smooth running of the setup. Take your time to read through everything and do not hesitate to ask for help if you feel stuck.
Ready? Let's go 😎
For this setup, you need to be using the latest version of Windows.
This means that you need to be on Windows 10, with all the latest updates installed.
To check your Windows version:
- Press
Windows+R
- Typewinver
- PressEnter
❌ If it does not mention Windows 10, you cannot proceed with this setup — but do not panic! You can always upgrade to Windows 10!
✅ If the first words of this window are Windows 10 you're good to go! 💪
Upgrade to Windows 10
- Download Windows 10 from Microsoft
- Install it. It should take roughly an hour, but this is dependent on your computer
Once you're sure that you're using Windows 10, you will need to check that your computer has all the latest updates.
Open Windows Update:
- Press
Windows+R- Typems-settings:windowsupdate- PressEnter- Click on
Check updates
❌ If you have an error message about Windows not being able to apply updates, please contact a teacher.
✅ If you have updates available please install them and repeat the process until it says that you are up to date ⭐.
Activate Windows Update Service to fix Updates
Some antiviruses and pieces of software deactivate the Update service we need, resulting in the error you see. Let's fix that!
- Press
Windows+R- Typeservices.msc- PressEnter- Double Click
Windows Update Service- Set itsStartuptoAutomatic- Click onStart- Click onOk
Then let's try updates again!
Some of the tools we need to install have been release with the 1903 version or above of Windows 10 so we need to make sure you have at least this one.
- Press
Windows+R- Typewinver- PressEnter
Check the Version number:
❌ If it is below 1903, just follow the Latest version of Windows paragraph above to install the latest updates.
✅ If it says at least 1903, you are good to go! 😎
We need to ensure that the Virtualization options are enabled in the BIOS of your computer.
For many computers, this is already the case. Let's check:
- Press
Windows+R- Typetaskmgr- PressEnter- Click on the
Performancetab - Click onCPU
❌ If the line is missing or if it is disabled, please contact a teacher before trying to activate the Virtualization.
✅ The status will be listed under the graph and will say "Virtualization: Enabled" if this tool is enabled.
Activate Virtualization
We need to access the BIOS / UEFI of the computer to activate it.
- Press
Windows + R- Typeshutdown.exe /r /o /t 1- PressEnter- Wait for the computer to shutdown
- Click on
Troubleshoot- Click onAdvanced Options- Click onUEFI Firmware Settings- Click onRestart
You need to activate the virtualization option for your processor here:
- Most of the time, in the advanced settings, the CPU settings, or the Northbridge settings
- The option can be called differently according to your computer:
- Intel:
Intel VT-x,Intel Virtualization Technology,Virtualization Extensions,Vanderpool... - AMD:
SVM ModeorAMD-V
- Intel:
- Save the changes after activation and reboot the computer through the appropriate option
Have you signed up to GitHub? If not, do it right away.
👉 Upload a picture and put your name correctly on your GitHub account. This is important as we'll use an internal dashboard with your avatars. Please do this now, before you continue with this guide.
To be able to interact when we are not in the same physical room, we will be using two tools:
Zoom is a video conferencing tool. To create an account and install the app, go to https://zoom.us/download and under Zoom Client for Meetings click the Download button. Open the file you have just downloaded. A progress bar will appear, then Zoom will start. Click on Connection and create an account with the Sign Up Free option:
Once connected, you should see:
You can close Zoom now.
For the most complicated problems, a teacher might have to take control of your computer. To be able to do this, we will need to use the Teamviewer tool. Go to the Teamviewer download page. It should automatically detect your operating system. If it doesn't, choose your operating system from the list at the top of the page. Click on Download Teamviewer and open the file you just have downloaded. Leave the default settings as they are and click on Accept. A progress bar will appear, then Teamviewer will start when the installation is over. It should look like this:
This will only be used as last resort when debugging becomes too tricky through spoken word. Nobody will ever be able to take control of your screen without you knowing it 👌
You can close Teamviewer now.
If you are not familiar with video calls, here is a great article full of good practices 📷 🎤
WSL is the development environment we are using to run Ubuntu. You can learn more about WSL here.
We will install WSL through the PowerShell Terminal:
Ctrl + Shift + Enter key stroke to execute Windows PowerShell with administrator privileges instead of just clicking on Okor pressing Enter.
- Press
Windows+R- Typepowershell- PressCtrl+Shift+Enter
A blue terminal window will appear:
- Copy the following commands - Paste them into the PowerShell window by right-clicking into it (
Ctrl+Vdoes not work here!) - Run them by pressingEnter
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linuxdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
❌ If you encounter an error message (or if you see some text in red in the window), please contact a teacher!
✅ When all three commands ran without any error, you can restart your computer.
Once your computer has restarted, we need to download the WSL2 installer.
- Go to the download page and get the installer - Click
Next- ClickFinish
❌ If you encounter the error This update only applies to machines with the Windows Subsystem for Linux, right click on the program and select uninstall; you shall be able to install it normally this time.
✅ If everything is fine, we are ready to use WSL 2 instead of WSL 1!
Now that WSL 2 is installed, let's use it by default when we deal with WSL:
- Press
Windows+R- Typecmd- PressEnter
In the window which appears, type:
wsl --set-default-version 2
❌ If the message you get talks about Virtualization, please contact a teacher
✅ You can close this Command Prompt terminal; we are ready to install Ubuntu!
- Click on
Start- TypeMicrosoft Store- Click on the Microsoft Windows Store in the list- Search for
Ubuntuin the search bar - Select version without any number, just plain "Ubuntu"- Click on
Install
Uninstall wrong versions of Ubuntu
To uninstall a wrong version of Ubuntu, you just have to go to the Installed Program List of Windows 10:
- Press
Windows+R- Typems-settings:appsfeatures- PressEnter
Find the right software to uninstall and click on the uninstall button.
Once the installation is done, the Install button becomes a Launch button:
- Click on
Launch
At first launch, you will be asked some information:
- Choose a username:
- one word
- lowercase
- no special characters
- for example:
lewagonor yourfirstname
- Choose a password
- Confirm your password
✅ The installation should be complete; you can close the Ubuntu window now that it is installed on your computer.
- Press
Windows+R- Typecmd- PressEnter
Type the following command:
wsl -l -v
❌ If the version of Ubuntu WSL is 1, we will need to convert it to version 2.
✅ If the version of Ubuntu WSL is 2, you are ready to install VS Code!
Convert Ubuntu WSL V1 to V2
In the Command Prompt window, type:
wsl --set-version Ubuntu 2
✅ After a few seconds, you should get the following message: The conversion is complete.
❌ If it does not work, we need to be sure that Ubuntu files are not compressed.
Check for Uncompressed Files
- Press
Windows+R- Type%localappdata%\Packages- PressEnter- Open the folder named
CanonicalGroupLimited.UbuntuonWindows...- Right Click on theLocalStatefolder - Click onProperties- Click onAdvanced- Make sure that the optionCompress contentis not ticked, then click onOk.
Apply changes to this folder only and try to convert the Ubuntu WSL version again.
❌ If the conversion still does not work, please contact a teacher.
(You can now close this Command Prompt window.)
We use Visual Code Studio for writing code on Windows, because it integrates nicely with the Ubuntu terminal.
For this integration to work, you need to uninstall other code editor, like for example SublimeText, as their WSL integration interferes with the integration of VS Code.
- Go to the Visual Studio Code page - Choose the Windows version of VS Code
The tool should start to download automatically.
- Open the file you have just downloaded. - Install it with a few options: - Register VS Code as an editor for supported file types - Let the other options as they are
- Launch VS Code a first time, then:
- Pin it to the taskbar; you will be using it a lot!
- You should have a frame at the bottom-right corner of VS Code saying it detects WSL
- Accept the installation of the WSL extension for VS Code
In VS Code:
- Click on
File- Click onPreferences- Click onKeymaps- Click onSublime Text Keymap and Settings Importer- Click onInstall
Let's gain time now and add other extensions that will be helpful during your Bootcamp.
For each of these extensions:
- On the web page, click on
install- In the browser, accept to use VS Code to install the extension - In VS Code, click oninstall
For everyone
For the Web Development bootcamp:
For the Data Science bootcamp:
- Press
Ctrl+,on your keyboard to open the settings - In the search bar, typeemmet- Click on the firstEdit in settings.jsonlink
Paste the following just before the last }:
"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
"erb": "html"
},It should look like this:
] like line 26 in the image above ☝️
To make sure everything works fine, close VS Code, then open your Ubuntu terminal:
- Press
Windows+R- Typeubuntu- PressEnter
In Ubuntu, let's try to launch VS Code:
code
❌ If Visual Studio Code does not open, please contact a teacher
✅ If Visual Studio Code opens, your code editor is ready! 💪
We need an easy way to transfer files from Windows to Ubuntu and vice versa.
In order to do that, we will create shortcuts to Ubuntu directories in the Windows File Explorer.
Here are the steps:
- Open the Windows File Explorer (or use the shortcut Win + E)
- In the Address Bar, enter
\\wsl$\(or\\wsl$\Ubuntuif it does not work) - You now have acces to the Ubuntu file system
- Dive into the Ubuntu file system in order to look for directories of interest
- Drag the desired folders into the Address Bar in order to create shortcuts
Another option to move files around is to open the Windows File Explorer from the WSL shell.
In order to do that:
- Open a WSL shell
- Go to the directory you wish to explore
- Run the
explorer.exe .command - If you get an input output error message, run
wsl --shutdownin the Windows PowerShell and reopen a WSL shell
You might want to figure out the exact location of a Windows directory in the Ubuntu file system, or the other way around.
In order to convert a Windows path to and from a WSL path:
- Open a WSL shell
- Use the
wslpath "C:\Program Files"command in order to translate a Windows path into a WSL path - Use the
wslpath -w "/home"command in order to translate a WSL path into a Windows path - In particular, the
wslpath -w $(pwd)command returns the Windows path of the current directory in the WSL shell
The standard Ubuntu terminal is a very crude way of using Ubuntu; let's use a real modern terminal!
We first need to install Windows Terminal from the Microsoft Windows Store:
- Click on
Start- TypeMicrosoft Store- Click on the Microsoft Windows Store in the list- Search for
Windows Terminalin the search bar- Click on
Install
Once the installation is done, the Install button becomes a Launch button:
- Click on
Launch- Right Click on the icon in the taskbar - Choose to pin the app to the bar
This terminal allows you to open multiple terminal sessions, including PowerShell, Command Prompt and Ubuntu that you installed earlier.
This terminal has tabs: you can choose to open a new terminal tab clicking on the down arrow / v-shape next to the current one.
Let's make Ubuntu the default terminal of your Windows Terminal application.
- Press
Ctrl+,
It should open the settings:
We have put in red the part we will use or change.
First, let us ask Ubuntu to start directly inside your Ubuntu Home Directory instead of the Windows one:
- Locate the
"name": "Ubuntu",- Add the following line after it:
"startingDirectory": "//wsl$/Ubuntu/home/the-username-you-chose-at-the-ubuntu-install",
Now, let us ask Windows Terminal to start directly an Ubuntu Terminal when launched:
- Locate the
"guid"for Ubuntu - Copy the value between{and}- Locate the"defaultProfile"- Replace the value between{and}with what you copied from above
✅ Voilà, your Windows Terminal is setup! 🎊 From now on, every time we will refer to the terminal or the console it will be this one.
To install git:
- Open an Ubuntu terminal. - Copy and paste the following lines:
sudo apt updatesudo apt install -y git apt-transport-https unzip gnome-terminalLet's now install GitHub official CLI (Command Line Interface) with the following commands:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C99B11DEB97541F0
sudo apt-add-repository https://cli.github.com/packages
sudo apt update
sudo apt install -y ghTo check that gh has been successfully installed on your machine, you can run:
gh --versionIf you don't get a prompt saying gh version X.Y.Z (YYYY-MM-DD) with at least version 1.4, please refer to the documentation where they list some troubleshooting information. In doubt, ask a TA.
We will use the shell named zsh instead of bash, the default one.
# it will ask for your session password
sudo apt install -y zsh curl vim imagemagick jqsh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"At then end, your terminal should look like this:
❌ If it does not, please contact a teacher.
✅ If everything is correct, let's configure GitHub!
Error: "chsh command unsuccessful. Change your default shell manually."
You probably typed the wrong password when asked. Starting the script again will not work as it will try to create a configuration folder that now already exists!
We need to remove it first:
rm -rf ~/.oh-my-zshThen let's try again!
We need to generate SSH keys which are going to be used by GitHub and Heroku to authenticate you. Think of it as a way to log in, but different from the well known username/password couple. If you already generated keys that you already use with other services, you can skip this step.
Open a terminal and type this, replacing the email with yours (the same one you used to create your GitHub account). It will prompt for information. Just press enter until it asks for a passphrase.
mkdir -p ~/.ssh && ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/id_ed25519 -C "TYPE_YOUR_EMAIL@HERE.com"NB: when asked for a passphrase, put something you want (and that you'll remember),
it's a password to protect your private key stored on your hard drive. You'll type,
nothing will show up on the screen, that's normal. Just type the passphrase,
and when you're done, press Enter.
Then you need to give your public key to GitHub. Run:
cat ~/.ssh/id_ed25519.pubIt will prompt on the screen the content of the id_ed25519.pub file.
- Copy that text from
sshto the end of your email address - Go to github.com/settings/ssh - Click on the green buttonNew SSH key- Fill in the Title with your computer name (Macbook Profor instance) - Paste the Key - Finish by clicking on the Add key green button.
To check that this step is completed, in the terminal run this.
ssh -T git@github.comyes then Enter.
This is the expected result:
# Hi --------! You've successfully authenticated, but GitHub does not provide shell access
✅ If you got this message, the keys were added successfully!
❌ If you encountered an error, you will have to try again. Do not hesitate to contact a teacher.
If ssh -T git@github.com does not work
Try running this command before trying again:
ssh-add ~/.ssh/id_ed25519Don't be in a rush, take time to read this article to get a better understanding of what those keys are used for.
To be sure that you can interact with your browser installed on Windows from your new Ubuntu terminal, we need to set it as your default browser there.
Google Chrome as your default browser
Run the command:
ls /mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exeIf you get an error like ls: cannot access... Run the following command:
echo "export BROWSER='\"/mnt/c/Program Files/Google/Chrome/Application/chrome.exe\"'" >> ~/.zshrcElse run:
echo "export BROWSER='\"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe\"'" >> ~/.zshrcMozilla Firefox as your default browser
Run the command:
ls /mnt/c/Program\ Files\ \(x86\)/Mozilla\ Firefox/firefox.exeIf you get an error like ls: cannot access... Run the following command:
echo "export BROWSER='\"/mnt/c/Program Files/Mozilla Firefox/firefox.exe\"'" >> ~/.zshrc echo "export BROWSER='\"/mnt/c/Program Files (x86)/Mozilla Firefox/firefox.exe\"'" >> ~/.zshrcMicrosoft Edge as your default browser
Run the command:
echo "export BROWSER='\"/mnt/c/Program Files (x86)/Google/Chrome/Application/msedge.exe\"'" >> ~/.zshrcPlease make sure that the following command returns "Browser defined 👌":
[ -z "$BROWSER" ] && echo "ERROR: please define a BROWSER environment variable ⚠️" || echo "Browser defined 👌"If it does not, choose a browser in the list above and execute the corresponding command.
Restart your terminal.
CLI is the acronym of Command-line Interface.
In this section, we will install GitHub CLI to perform useful actions with GitHub data directly from the Terminal.
It should already be installed on your laptop from the previous commands. First you need to login:
gh auth login -s 'user:email' -wYou will get the following output:
- Logging into github.com
! First copy your one-time code: 0EF9-D015
- Press Enter to open github.com in your browser...Select and copy the code (0EF9-D015 in the example), then type Enter. Your browser will open and ask you to authorize GitHub CLI to use your GitHub account. Accept and wait a bit. Come back to the terminal, type Enter again, and that should be it 🎉
To check that you are properly connected, type:
gh auth statusIf you get Logged in to github.com as <YOUR USERNAME> , then all good. If not, ask a teacher.
Then run the following configuration line:
gh config set git_protocol sshFinally, create a gist to make sure gh is working:
echo "Hello [Le Wagon](https://www.lewagon.com) :wave:" | gh gist create -d "Starting my coding journey..." -f "SETUP_DAY.md" -p -wThis line should open your browser on the newly created gist page. See, we've just created a Markdown file!
Hackers love to refine and polish their shell and tools.
We'll start with a great default configuration provided by Le Wagon: lewagon/dotfiles.
As your configuration is personal, you need your own repository storing it. Forking means
that it will create a new repo in your GitHub account, identical to the original one.
You'll have a new repository on your GitHub account, $GITHUB_USERNAME/dotfiles.
We need to fork because each of you will need to put specific information (e.g. your name) in those files.
Open your terminal and run the following command:
export GITHUB_USERNAME=`gh api user | jq -r '.login'`
echo $GITHUB_USERNAMEYou should see your GitHub username printed. If it's not the case, stop here and ask for help.
There seems to be a problem with the previous step (gh auth).
Time to fork the repo and clone it on your laptop:
mkdir -p ~/code/$GITHUB_USERNAME && cd $_
gh repo fork lewagon/dotfiles --cloneRun the dotfiles installer.
cd ~/code/$GITHUB_USERNAME/dotfiles && zsh install.shCheck the emails registered with your GitHub Account. You'll need to pick one at the next step:
gh api user/emails | jq -r '.[].email'Run the git installer:
cd ~/code/$GITHUB_USERNAME/dotfiles && zsh git_setup.sh☝️ This will prompt you for your name (FirstName LastName) and your email. Be careful
you need to put one of the email listed above thanks to the previous gh api ... command. If you
don't do that, Kitt won't be able to track your progress.
Please now quit all your opened terminal windows.
Let us open the ~/.zshrc profile file in Visual Code Studio and change slightly its content:
code ~/.zshrc- Locate the line
# Actually load Oh-My-Zsh- Above it write the following line:
ZSH_DISABLE_COMPFIX=true
You don't want to be asked for your passphrase every time you communicate with a distant repository. So, you need to add the plugin ssh-agent to oh my zsh:
- Spot the line starting with
plugins=- Addssh-agentto the plugins list.
The list should look like:
plugins=(gitfast last-working-dir common-aliases sublime zsh-syntax-highlighting history-substring-search ssh-agent)
✅ Save the .zshrc file with Ctrl + S and close Visual Code Studio.
Installing Ruby (with rbenv)
First, we need to clean up any previous Ruby installation you might have:
rvm implode && sudo rm -rf ~/.rvm
# If you got "zsh: command not found: rvm", carry on. It means `rvm` is not
# on your computer, that's what we want!
rm -rf ~/.rbenvThen in the terminal, run:
sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-devsudo apt cleangit clone https://github.com/rbenv/rbenv.git ~/.rbenvgit clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-buildClose your terminal and open it again (Alt+F4 and restart it). If you get a warning, just ignore it from now (Ruby is not installed yet).
Now, you are ready to install the latest ruby version and set it as the default version.
Run this command, it will take a while (5-10 minutes)
rbenv install 2.6.6Once the ruby installation is done, run this command to tell the system to use the 2.6.6 version by default.
rbenv global 2.6.6Then restart your Terminal again (close it and reopen it).
ruby -vYou should see something starting with ruby 2.6.6p. If not, ask a teacher.
Click here if you are in 🇨🇳 China
# China only!
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com/
gem sources -l
# *** CURRENT SOURCES ***
# https://gems.ruby-china.com/
# Ruby-china.com must be in the list nowAll, please run the following line:
gem install rake bundler rspec rubocop rubocop-performance pry pry-byebug colored httpIf you encounter the following error:
ERROR: While executing gem ... (TypeError) incompatible marshal file format (can't be read) format version 4.8 required; 60.33 given
Run the following command:
rm -rf ~/.gemrcRerun the command to install the gems.
Never install a gem with sudo gem install! Even if you stumble upon a Stackoverflow answer
(or the Terminal) telling you to do so.
Installing Node (with nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | zshRestart your terminal and run the following:
nvm -vYou should see a version. If not, ask a teacher.
Now let's install node:
nvm install 14.15.0When the command returns, run
node -vYou should see v14.15.0. If not, ask a teacher.
In a few weeks, we'll talk about SQL and Databases and you'll need something called PostgreSQL, an open-source robust and production-ready database.
Let's install it now.
sudo apt install -y postgresql postgresql-contrib libpq-dev build-essentialsudo /etc/init.d/postgresql startsudo -u postgres psql --command "CREATE ROLE `whoami` LOGIN createdb;"You can configure PostgreSQL to autostart, so you don't have to execute sudo /etc/init.d/postgresql start each time you open a new terminal:
sudo echo "`whoami` ALL=NOPASSWD:/etc/init.d/postgresql start" | sudo tee /etc/sudoers.d/postgresqlsudo chmod 440 /etc/sudoers.d/postgresqlecho "sudo /etc/init.d/postgresql start" >> ~/.zshrcLet's check if you successfully installed everything.
Quit all opened Terminal, open a new one and run the following commands:
curl -Ls https://raw.githubusercontent.com/lewagon/setup/master/check.rb > _.rb && ruby _.rb || rm _.rbIt should tell you if your workstation is ready :) If not, ask a teacher.
Enter Kitt as a Student. If you manage to login, you can safely skip this step. Otherwise ask a teacher whether you should have received an email or follow the instructions below.
Register as a Wagon alumni by going to kitt.lewagon.com/onboarding. Select your batch, sign in with GitHub and enter all your information.
Your teacher will then validate that you are indeed part of the batch. You can ask him to do it as soon as you completed the registration form.
Once the teacher has approved your profile, go to your email inbox. You should have 2 emails:
- One from Slack, inviting you to the Le Wagon Alumni slack community (where you'll chat with your buddies and all the previous alumni). Click on Join and fill the information.
- One from GitHub, inviting you to
lewagonteam. Accept it otherwise you won't be able to access the lecture slides.
Download and install the Slack app from slack.com.
Launch the app and sign in to lewagon-alumni organization.
Make sure you upload a picture there.
You can also sign in to Slack on your iPhone or Android device!
The idea is that you'll have Slack open all day, so that you can share useful links / ask for help / decide where to go to lunch / etc.
In case of remote tickets, you will use Slack audio or video call to get help. To ensure that everything is working fine, test your camera and microphone. If your browser is asking your permission to access your microphone and camera, click on yes.
After the test are finished, you should have green "All clear" messages at least for your microphone and camera. If not, ask a teacher.














