You will find below the instructions to set up you computer for Le Wagon Web Development course
Please read them carefully and execute all commands in the following order. If you get stuck, don't hesitate to ask a teacher for help 🙋
Let's start 🚀
To be able to interact when we are not in the same physical room, we will be using Zoom, a video conferencing tool.
- Go to https://zoom.us/download
- Under Zoom Client click the Download button
- Open the file you have just downloaded to install the app
- Open the Zoom app
- If you already have a Zoom account, sign in using your credentials
- If not, click on the Sign Up Free link:
You will be redirected to Zoom's website to complete a form.
When it's done, go back to the Zoom app and sign in using your credentials.
You should then see a screen like this:
You can now close the Zoom app.
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.
Let's install Visual Studio Code text editor.
Copy (CTRL
+ C
) the commands below then paste them in your terminal (CTRL
+ SHIFT
+ v
):
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt update
sudo apt install code
These commands will ask for your password: type it in.
ENTER
.
Now let's launch VS Code from the terminal:
code
✔️ If a VS Code window has just opened, you're good to go 👍
❌ Otherwise, please contact a teacher
Let's install some useful extensions to VS Code.
Copy-paste the following commands in your terminal:
code --install-extension ms-vscode.sublime-keybindings
code --install-extension emmanuelbeziat.vscode-great-icons
code --install-extension MS-vsliveshare.vsliveshare
code --install-extension rebornix.ruby
code --install-extension dbaeumer.vscode-eslint
Here is a list of the extensions you are installing:
Visual Studio Live Share is a VS Code extension which allows you to share the code in your text editor for debugging and pair-programming: let's set it up!
Launch VS Code from your terminal by typing code
and pressing ENTER
.
Click on the little arrow at the bottom of the left bar 👇
- Click on the "Share" button, then on "GitHub (Sign in using GitHub account)".
- A popup appears asking you to sign in with GitHub: click on "Allow".
- You are redirected to a GitHub page in you browser asking you to authorize Visual Studio Code: click on "Continue" then "Authorize github".
- VS Code may display additional pop-ups: close them by clicking "OK".
That's it, you're good to go!
git
is a command line software used for version control.
To install git
:
- Open a terminal
- Copy and paste the following commands:
sudo apt update
sudo apt install -y git
These commands will ask for your password: type it in.
ENTER
.
Let's now install GitHub official CLI (Command Line Interface). It's a software used to interact with your GitHub account via the command line.
In your terminal, copy-paste the following commands and type in your password if asked:
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
Then copy-paste the following command:
sudo apt install -y gh
To check that gh
has been successfully installed on your machine, you can run:
gh --version
✔️ If you see gh version X.Y.Z (YYYY-MM-DD)
, you're good to go 👍
❌ Otherwise, please contact a teacher
Instead of using the default bash
shell, we will use zsh
.
In a terminal execute the following command and type in your password if asked:
sudo apt install -y zsh curl vim imagemagick jq unzip
Let's install the zsh
plugin Oh My Zsh.
In a terminal execute the following command:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
If asked "Do you want to change your default shell to zsh?", press Y
At the end your terminal should look like this:
✔️ If it does, you can continue 👍
❌ Otherwise, please ask for a teacher
CLI is the acronym of Command-line Interface.
In this section, we will use GitHub CLI to perform interact with GitHub directly from the terminal.
It should already be installed on your computer from the previous commands.
First in order to login, copy-paste the following command in your terminal:
email
gh auth login -s 'user:email' -w
You will get the following output:
! 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 press 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, press ENTER
again, and that's it.
To check that you are properly connected, type:
gh auth status
✔️ If you get Logged in to github.com as <YOUR USERNAME>
, then all good 👍
❌ If not, contact a teacher.
Then run the following configuration line:
gh config set git_protocol ssh
We need to generate SSH keys which are going to be used by GitHub to authenticate you. You can think of it as a way to log in, but different from the well known username/password pair.
Open a terminal and copy-paste this command, replacing the email with yours (the same one you used to create your GitHub account).
mkdir -p ~/.ssh && ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/id_ed25519 -C "[email protected]"
It will prompt for information. Just press enter until it asks for a passphrase.
ENTER
.
Now, you will give your public key to GitHub.
In your terminal copy-paste the following command:
gh auth refresh -s write:public_key
It will prompt a one time code (####-####) on the screen. Copy it and press ENTER
, then paste the code in your browser and follow the instructions to Authorize GitHub.
Back in the terminal, press ENTER
and run this:
gh ssh-key add ~/.ssh/id_ed25519.pub
This should return ✓ Public key added to your account
. If not, do not hesitate to contact a teacher.
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. So you will fork Le Wagon repository.
Forking means that you will create a new repo in your own GitHub account $GITHUB_USERNAME/dotfiles
, identical to the original Le Wagon one that you will be able to modify at will.
Open your terminal and run the following commands:
export GITHUB_USERNAME=`gh api user | jq -r '.login'`
echo $GITHUB_USERNAME
✔️ You should see your GitHub username printed.
❌ If not, stop here and ask for help. There may be a problem with the previous step (gh auth
).
Time to fork the repo and clone it on your computer:
mkdir -p ~/code/$GITHUB_USERNAME && cd $_
gh repo fork lewagon/dotfiles --clone
Run the dotfiles
installer:
cd ~/code/$GITHUB_USERNAME/dotfiles
zsh install.sh
Check the emails registered with your GitHub Account. You'll need to pick one at the next step:
gh api user/emails | jq -r '.[].email'
✔️ If you see the list of your registered emails, you can proceed 👍
❌ If not, please reauthenticate to GitHub before running this command ☝️ again.
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.
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.
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
:
First, open the .zshrc
file:
code ~/.zshrc
Then:
- Spot the line starting with
plugins=
- Add
ssh-agent
at the end of the plugins list
The list should look like:
plugins=(gitfast last-working-dir common-aliases zsh-syntax-highlighting history-substring-search pyenv ssh-agent)
✔️ Save the .zshrc
file with CTRL
+ S
and close your text editor.
Let's install rbenv
, a software to install and manage ruby
environments.
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 ~/.rbenv
Then in the terminal, run:
sudo apt install -y build-essential tklib zlib1g-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev libreadline-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Close your terminal and open it again
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.7.4
Once the ruby installation is done, run this command to tell the system to use the 2.7.4 version by default.
rbenv global 2.7.4
Then restart your terminal again (close it and reopen it).
ruby -v
✔️ If you see something starting with ruby 2.7.4p
then you can proceed +1:
❌ If not, ask a teacher
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 now
In the ruby world, we call external libraries gems
: they are pieces of ruby code that you can download and execute on your computer. Let's install some!
In your terminal, copy-paste the following command:
gem install rake bundler rspec rubocop rubocop-performance pry pry-byebug colored http
✔️ If you get xx gems installed
, then all good 👍
❌ If 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 ~/.gemrc
Rerun the command to install the gems.
sudo gem install
! Even if you stumble upon a Stackoverflow answer (or the terminal) telling you to do so.
Node.js is a JavaScript runtime to execute JavaScript code in the terminal. Let's install it with nvm, a version manager for Node.js.
In a terminal, execute the following command:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | zsh
Restart your terminal and run the following:
nvm -v
You should see a version. If not, ask a teacher.
Now let's install node:
nvm install 14.15
When the installation is finished, run:
node -v
✔️ If you see v14.15
, the installation succeeded 👍
❌ If not, contact a teacher
yarn
is a package manager to install JavaScript libraries. Let's install it:
In a terminal, run the following command:
npm install --global yarn
Restart your terminal and run the following command:
yarn -v
✔️ If you see a version, you're good 👍
❌ If not, ask for a teacher
In a few weeks, we'll talk about databases and SQL and you'll need something called PostgreSQL, an open-source robust and production-ready database system.
Let's install it now.
Run the following commands:
sudo apt install -y postgresql postgresql-contrib libpq-dev build-essential
sudo -u postgres psql --command "CREATE ROLE `whoami` LOGIN createdb;"
Let'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 _.rb || rm _.rb
:check_mark: If you get a green Awesome! Your computer is now ready!
, then you're good 👍
❌ If not, contact a teacher.
If you are unsure about what to do, you can follow this link. If you are already logged in, you can safely skip this section. If you are not logged in, click on 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
lewagon
team. Accept it otherwise you won't be able to access the lecture slides.
Slack is a communcation platform pretty popular in the tech industry.
Download the Slack app and install it.
Launch the app and sign in to lewagon-alumni
organization.
Make sure you upload a profile picture 👇
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.
To ensure that everything is working fine for video calls, let's test your camera and microphone:
- Open the Slack app
- In any channel message bar type
/call --test
and pressENTER
- Click on the "Start test" green button
✔️ When the test is finished, you should see green "Succeed" messages at least for your microphone and camera. 👍
❌ If not, contact a teacher.
You can also install Slack app on your phone and sign in lewagon-alumni
!
On our pedagogical platform (Kitt, you'll soon discover it!), we have some videos. By default Firefox on Linux cannot play them as they use an unsupported codec (H264). To get those videos working for you, you need to run this:
sudo apt install libavcodec-extra -y
tree
is a nice tool to visualize a directory tree inside the terminal:
ncdu
is a text-based interface disk utility.
htop
is an interactive process viewer.
tig
is a text-mode interface for git
.
sudo apt install tree ncdu htop tig
Ubuntu is always tracking changes in your folders and to do this it uses inotify. By default the Ubuntu limit is set to 8192 files monitored.
As programming involves a lot of files, we need to raise this limit. In your terminal run:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
You are going to use most of the apps you've installed today really often. So let's pin them to your dock so that they are just one click away!
To pin an app to your dock, launch the app, right-click on the icon in the dock to bring up the context menu and choose "Add to Favorites".
You must pin:
- Your terminal
- Your file explorer
- VS Code
- Your Internet browser
- Slack
- Zoom
Your computer is now all set for Le Wagon Web Development course 💪 👏
Enjoy the bootcamp, you will nail it 🚀