It’s been a steep learning curve, but in less than two weeks time, I went from playing around with a Raspberry Pi 3 to setting up and running a full-fledged home server.
Here’s the overall plan, the hardware I used, and the steps I followed:
- Install Ubuntu Server on a new machine
- Set up NextCloud for file syncing (to replace DropBox)
- Host a WordPress site for my blog
- Employ Let’s Encrypt for SSL
- Access my blog and NextCloud anywhere by getting a domain name and DDNS
Hardware:The machine I am using to create this server is an Intel NUC7i7BNH with a dual-core 3.9GHz i7 processor, 32GB memory, and a 500GB SSD. The machine is connected to the Internet through my home router and cable modem.
I am using a mid-2017 MacBook Pro to do all the hump work.
For the following, it is very important to follow the steps very carefully, reading the descriptions of the steps you are taking. I had to start over four times from scratch after missing or screwing up steps, and then not knowing or understanding how to get things back on track. Then again, if you do mess something up, reloading the server is very easy.
The steps I followed:
- Download the latest imagefrom Ubuntu. I used Ubuntu Server.
- To create an image of the .iso on a USB Thumb Drive, download and use Etcher.
- Burn the Ubuntu Server image to the USB using Etcher following the tutorial here.
- Install the Ubuntu Server image on your machine following the tutorial here. Note:
- Install while connected to network.
- Select no updates. Do not select Landscape as it hangs when trying to load.
- Select openssh server for the server type.
- Reserve your server’s ip address on your router.
- Run sudo apt-get update and sudo apt-get upgrade.
- Perform initial server setup using this tutorial.
- Install fail2ban to block and log nefarious login attempts: sudo apt-get install fail2ban
- Install LAMP stack using this tutorial. Because there are several steps where you have to enter your domain name coming up, no later than after Apache is installed:
- Install NextCloud following this tutorial. Pay close attention to the prerequisites. Also on this page:
- Installing Redis for memory cache.
- Installing Let’s Encrypt to set up a certificate for SSL.
- Install WordPress following this tutorial. (Yes, it’s for Raspberry, but it works).