Hey guys what's up Roman here from TechGuides
and welcome to my ultimate Ubuntu Server installation and setup
tutorial series! Over the course of the next few videos I'm gonna show you
everything you need to know in order to set up your own home server. We're gonna
start off with how to install Ubuntu on a new machine, then I'm gonna show you
everything you need to know in order to actually secure your home server - this is
a very important topic - then I'm gonna also talk about how to install ZFS and a
raid volume on your server, how to create your own private cloud using Nextcloud,
how to get your own Wiki using Confluence, your project management tool
with JIRA, and finally I'll also discuss how to install and setup the best
password manager in my opinion. And if you're watching this video sometime in
the future then I'll have left links to each of these video topics in the
description below. Now in today's first video I'm gonna walk you through the
basics of how to setup and install Ubuntu 20.04 long-term support on any
machine of your liking. I will show you what kind of BIOS settings I like to
change, how to burn the Ubuntu ISO on a USB drive, walk you through each of the
installation steps off Ubuntu 20.04, then I'm gonna show you how to access
your home server from windows, and what kind of tools I would recommend to
install right after installing Ubuntu 20.04. As always you can find timestamps
to each topic in the description below. Also, if you rather like to follow along
this tutorial in a written form then definitely check out my blog where I
have this entire video written down for you guys to follow along. And with that
let's jump right into the first part on how to install an Ubuntu home server. For
this first download Ubuntu by going to Google and type in Ubuntu 20.04, click on
the first result, and download this server install image. Once downloaded we
need to burn the ISO to a USB stick. For this I'm gonna use a tool called Rufus,
which you can find under rufus.ie Download and run the tool and
then plug in the USB Drive that you want to use to install Linux with. Make sure
that you don't have any important data on that drive as this process is going
to wipe all data from the USB Drive. Select the proper device in the drop-down menu and make sure that the boot selection is on disk or ISO image. Next
click on the select button and select the Ubuntu 20.04 ISO. If you want to you
can give it a custom volume label but you don't really need to
change any of the other options. Simply click on start. On this pop-up select yes,
make sure that write in ISO image mode is selected, and click on OK, and confirm
that all data will be wiped upon proceeding. Once you have your bootable
Ubuntu USB stick it's time to adjust some of the BIOS settings for your new
home server. Obviously where exactly you can find the settings in your specific
BIOS it's gonna very highly depending on the motherboard manufacturer and also on the
motherboard version that you have. So if you don't find some of these options then
simply consult your motherboards manual. After turning on the server for the
first time you should always check if all memory is correctly recognized. Here
you can also see whether the motherboard correctly recognized your CPU. Also, go to
the hardware monitor, and check whether the CPU temperature is in a reasonable
range. Here you can generally also set up the fan curves for the CPU and your
chassis fans. I personally like to set up my fans of my server such that it
doesn't get too hot but at the same time also doesn't get too loud. Also if you
don't have a dedicated graphics card installed in your system then you should
also check if the primary graphics adapter is set to unboard rather than
PCIe. In this example you can find this under the Northbridge configuration. Also
I like to set my servers up such that when the power is cut it will simply boot
back on as soon as power is reinstated. And the final option that I usually
check is whether the server is able to wake on lan. And with that we're ready to
plug the USB stick into our new home server. Back in the BIOS make sure that
on the the boot menu, your USB stick is the first boot option rather than one of
the other drives that you have in your home server. And once everything is ready
and setup reboot your computer and start the Ubuntu 20.04 installation procedure.
First, we can select which kind of language we want to use. Obviously we're
gonna select English, and then we also ask whether we want to update the
installer. Now since we want to install the 20.04 long-term support version on
this home server, I would highly recommend not to update on this screen.
Here you can specify your keyboard layout and since I'm Swiss I have to
change this to Switzerland. Now under the network configuration you should see your primary internet adapter and whether it has
received a valid IP address from your router. By using the arrow keys you can
navigate to your primary internet adapter and if you want to you can also
change the ipv4 method. However, at this stage I would simply recommend to use
DHCP instead of manually entering the IP address. The next page allows you to set
up a proxy address but in most circumstances you simply want to skip
this option. Here you can specify another Ubuntu archive mirror but generally you
want to leave this at the default. Now for this tutorial I'm gonna be using an
entire disk to install Linux on. Now make sure that you actually select the proper
drive for your operating system. If you want to you could also add this to an LVM group but I generally like to set up my hard drives
after I've installed Linux. Go to the next page where you can now see a
filesystem summary of your storage configuration. As you can see I've set up
the Samsung 840 NVMe as my operating drive. On this page you could also set up
a raid or LVM but I prefer to set up these kind of things only after I've
installed Linux. So make sure that everything looks exactly like on screen
right here, click on done and accept that the hard drive will be formatted. Next we
want to enter a user name as well as the server's name. In my case I'm gonna call
this server "Kyrill" and use "Roman" both as my name and as my user name. Here you
should also enter a rather strong password. Next you can select if you want
to install the SSH client. Now this is a means of accessing your home server from
the outside world. Generally if you want to be able to administrate your Linux
server from another computer. Then you should install the OpenSSH server. And
finally on this page you're asked if you want to install snap environments. Now
snaps are basically self-contained images of software that come with their
own Apache or nginx servers and are extremely easy to run and maintain. Now I
used to be a big fan of snap but honestly you can basically install
anything that you can install with snap in the regular way and it's usually much
more stable and you can customize the software much more to your liking and
therefore I do not like to install snaps anymore or my Server.
Once the Installer is done let it download and install security updates
and hit reboot. Now once Ubuntu is installed don't forget to unplug your USB
stick from your server because otherwise you'll simply gonna go into an infinite
loop of installing Ubuntu over and over again. So after a quick reboot you should
now be able to log in to your home server using the username and password
that you provided during the installation. Next I'm going to show you
how to access your home server even from the outside world using SSH. First you're
gonna have to forward a port in order to access your home server from the outside
world. Usually this is done in the router configuration in my case I have a FritzBox and this is located behind 192.168.178.1 If you don't know the standard
gateway for your router you can simply flip it around and generally there will
be a sticker on your router informing you how to access the router
configuration. Also if you don't know the user name and password this is also
where you usually find it. First, make sure that the router always assigns the
same IP address to your home server. You can generally find this under the network
tab. Here you sometimes also find the option to allow wake-on-lan. Next, go to
permit access and forward port 22 to your home server. This is only gonna be
necessary if you want to access your home server from a different network. Now
I will be discussing security concerns then I have it linked in the card right
now. Now in order to access our home server from
Windows I generally like to use the WSL or the Windows Subsystem for Linux
coming with Windows 10. Reason being is that with WSL it is super easy to
access our new home server from windows. Now I'm not going to show you how to
install the WSL on your Windows machine. If you're interested in that
then definitely check out the video linked in the card right now, where I
covered that topic. Also, there is gonna be a new version of the WSL coming to
Windows in one of the future updates and when this has happened then I'll replace
the video that I showed before in the card and discuss how to install WSL
version 2 on Windows 10. Now in order to access my Linux subsystem I like to use
the Windows Terminal. This is basically a much improved and nicer version of the
old command prompt. To install the Windows Terminal go to the Microsoft Store, search for Windows Terminal, and there
you can install it. Once installed click on the drop down menu and click on
settings. First make sure that the default profile is for Ubuntu. Also you
can change the color scheme of your terminal. And there's an entire website
of predefined Microsoft color themes. In my case I like to use the one half dark color
theme. And with that let's discuss how we can now access our home server. Now I
prefer to save an alias in the .bashrc file. You can edit this file by typing in
<cd> and then typing in <nano .bashrc>. To setup an alias for quick connection
to your server simply type in <alias name username@localIPaddress> Now you can simply enter the name that you gave
your alias and the connection to the server will be established. Type yes to
accept the fingerprint and enter your Linux password. And there you go you're
successfully connected to your own home server. Now the first thing you
definitely want to do is update your server, so type in <sudo apt update> - what
this will do is that it simply downloads the package information from the
internet for all of the repositories that you've got set up. Next type <sudo
apt upgrade> to install the updates. Now something else that I generally like to
do after I've installed Ubuntu 20.04 is to completely remove the snappy
environment. This because snappy always comes with these /dev/loop
file systems that kind of clutter up the system. To completely remove snap type in
<sudo snap list> and remove all snaps. In my case I first remove lxd followed by
core18 and finally snapd. Then you can completely remove snap by typing in
<sudo apt purge snapd>. Finally don't forget to remove the snap home from the
system and if you type <df -h> you can see that the file systems now look much
cleaner. And finally I want to show you a few tools that I found very useful in
order to monitor your home server. First, in order to get temperature readings
from your server you have to install a lm-sensors. Once you've installed lm-sensors you can type sensors to check if
the system already recognized all of your temperature couples. In my case I
can only see my core temperatures and therefore I'm gonna have to identify all
my sensors. This is done by typing in <sudo sensors -detect>. Answer <y> on
each of these questions, type <yes> to add the modules. And restart your server by
typing in <sudo reboot now>. And with that you should now be able to see much
more information regarding both the temperatures, the voltages, as well as the
fan speeds of your system. In order to additionally monitor your hard drive
temperatures type in <sudo apt install hddtemp>. In order to figure out the
temperatures of a specific hard drive type in <sudo fdisk -l>, and now type in
<sudo hddtemp> followed by the hard drive identifier.
Note that if you entered is for an NVMe SSD you're not getting a
temperature reading from it. However, I'm getting nice temperatures for all of my
other Seagate hard drives. Finally to monitor my server I also like
to use a tool called glances. You can get this by typing in <sudo apt install glances>.
This tool gives you a nice overview of how much CPU you're
currently using, how much memory is committed, which disks
are being written to or read from, how much data is passing through Ethernet,
adapter and which kind of processes are currently active. And with that your new
home server is up and running and you're ready to install software. Now as I've
discussed before in the following videos I'm going to show you how to format and
partition hard drives, how to secure your server, and how to install a bunch of
software. If you're interested in that then definitely consider subscribing! If
you liked this video leave a like, if you didn't leave a dislike, thank you guys so
much for watching have a wonderful day and I'll see you guys in the next video!