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
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 📷 🎤
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 install git
, first open a terminal. To open a terminal, you can click on the Ubuntu Start button in the sidebar and type Terminal
. Then click on the terminal icon.
Then copy this line with Ctrl
+ C
:
sudo apt install -y git
💡 To paste it in the terminal, you need to use Ctrl
+ Shift
+ V
.
Let'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 gh
To check that gh
has been successfully installed on your machine, you can run:
gh --version
If 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.
A text editor is one of the most important tools of a developer. Follow these instructions in the Terminal:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
☝️ This command will ask for your password with: [sudo] password for <username>:
. Don't panick! Calmy type your password key by key. You won't have a visual feedback (like little *
), that's perfectly normal, keep on typing. When you're done, hit Enter
💪.
sudo apt install -y apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt update
sudo apt install -y sublime-text
Sublime Text is free without any time limitation but a popup will appear every ten saves to remind you there is a license to buy. You can hit Esc
when this happens, but feel free to buy Sublime Text if you really like this one (there are alternatives).
We will use the shell named zsh
instead of bash
, the default one.
sudo apt install -y zsh curl vim imagemagick jq
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# it will ask for your session password
Be careful, those commands will ask you to type your password twice. At the end your prompt should look like this:
If it doesn't, ask a teacher.
To make this change stick, restart your laptop (or virtual machine):
sudo reboot
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 "[email protected]"
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.pub
It will prompt on the screen the content of the id_ed25519.pub
file.
- Copy that text from
ssh
to 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 Pro
for 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 [email protected]
yes
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 [email protected]
does not work
Try running this command before trying again:
ssh-add ~/.ssh/id_ed25519
Don't be in a rush, take time to read this article to get a better understanding of what those keys are used for.
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' -w
You 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 status
If 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 ssh
Finally, 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 -w
This 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_USERNAME
You 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 --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'
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.
Open a new terminal and type this:
cd ~/code
stt
It will open Sublime Text in the context of your current folder. That's how we'll use it.
Close Sublime text and open it again:
stt
Wait 1 minute for additional packages to be automatically installed (New tabs with text will automatically open, containing documentation for each new package installed). TO follow package installation, you can go to View > Show console
.
To check if plugins are installed, open the Command Palette (⌘
+ ⇧
+ P
on OSX, Ctrl
+ ⇧
+ P
on Linux), type in Packlist
and then Enter
, you should see a couple of packages installed (like Emmet).
If you don't, please install all of them manually. The list is referenced here.
When it's done, you can close Sublime Text.
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 ~/.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
sudo apt clean
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 (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.6
Once 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.6
Then restart your Terminal again (close it and reopen it).
ruby -v
You 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 now
All, please run the following line:
gem install rake bundler rspec rubocop rubocop-performance pry pry-byebug colored http
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.
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 | 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.0
When the command returns, run
node -v
You 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-essential
sudo -u postgres psql --command "CREATE ROLE `whoami` LOGIN createdb;"
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
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
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
It 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
lewagon
team. Accept it otherwise you won't be able to access the lecture slides.
Install Slack for Linux (beta).
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.