Raspberry Pi Home Server v2: Introduction

Preface to the “second edition”

Back in 2014, I wrote a series of posts on creating a complete home server using a Raspberry Pi. There were plenty of articles out there on the web that covered the same individual elements, and even a few that covered larger chunks of the entire process, but they were all either incomplete, or lacked the detail I wanted, so I started creating my own. The idea was that it would be a single series of articles written in a consistent style, at an appropriate level for a beginner, and would do their best to actually explain what the commands were doing as much as possible rather than just giving a “do this” list. I was explaining this process to myself as much as anyone else at the time.

Since that time, the Raspberry Pi world has changed several times. We’ve seen the release of several new Pi models (Model B+, Pi 2, Zero, and now the Pi 3), two major OS releases (Jessie and Stretch), and a new desktop environment (Pixel). I’ve spent a lot of time building and re-building essentially the same server over and over again each time something changed and broke my instructions. I also recorded this entire process from end to end as a course for PluralSight, and streamlined my personal approach to building the server along the way.

I feel that the time has come for me to stop patching my original blog articles and create a new set of posts, updated with all of the things I’ve learned since the original series was published, including what I think is a better ordering of the steps. For instance, I’ve found that moving the OS to the hard drive early on in the series became a burden since it was no longer possible to take a simple SD card backup of the system. As a result, I’ve moved that step closer to the end, and added a new section on making usable backups after the move has been made.

This also gives me a chance to declare “comment bankruptcy”, and start over with a clean set of reader comments that won’t be as clogged up with old information that’s no longer relevant.

The new posts are largely a copy/paste/update/clarify process. Most of the body text has been carried forward from the original posts, but I’m reviewing it top to bottom, fixing errors I somehow never noticed before, and adding clarity where I can. In addition, I’ll be adding a Troubleshooting section to each article addressing problems as they arise. I found that updating my existing instructions didn’t help those who had already built a server, but encountered problems after upgrading individual components.When things stop working, I want people to be able to come back and find the answers they need.

Lastly, I’m not going to number the individual steps this time around. This will allow me to rearrange the recommended order later on, and to insert or replace steps as needed. I also feel this will provide a better mechanism for alternative routes through the series.

Hopefully this version of the series will last for a while, and I won’t have to do this kind of overhaul again anytime soon. The original articles will remain, but with a note at the top redirecting users to the updated versions.

Introduction

This series originally started as my own notes on building a complete home server using a Raspberry Pi. I found a lot of other posts out there on the internet, but they were all in varying levels of detail, and were often out of date. As I have found since publishing my original series, keeping up with the Raspberry Pi world is hard. It changes very fast. Every time major changes happen, I brace myself for a flood of comments letting me know that one piece of the series or another has stopped working, and I have to play detective again to figure out how to adjust to the latest change.

Not only does the OS keep changing, but the individual components keep getting their own updates as well. Any one of these could receive an update at any time, but I try to stay on top of it as best I can. Fortunately for me, each component is fairly independent of the others, so I usually don’t have to revise everything at once. If something doesn’t work for you, please be sure to read through the comments. This series has received great support from the community, and often questions in the comments are answered by someone else before I even get home to look into them.

Article Index

Acknowledgements

A lot of credit goes to the Instructables article that got me started: http://www.instructables.com/id/Ultimate-Pi-Based-Home-Server

It’s a good article, but it’s extremely out of date now. Also, I wanted to start from a standard Raspbian image rather than TurnKey, and I didn’t agree with some of the choices and ordering. For instance, I felt that basic file sharing should be tackled before building out a private cloud, and that the LAMP stack should be installed all at once before any other components that depend on it to prevent their installations from jumping the gun and installing bits of it on their own.

Advertisements
This entry was posted in Computers and Internet, Home Server, Raspberry Pi and tagged , , , . Bookmark the permalink.

7 Responses to Raspberry Pi Home Server v2: Introduction

  1. Mr Man says:

    I extensively used your last series as a launch point for a few different projects. I wish all tutorialists could write like you – giving the reader just enough detail, and just enough credit, to explain quickly and clearly what’s going on.

    Looking forward to following version 2 for my next project. I’m glad you’ve solved the main issue I rain into – backups after moving the boot partition to the external.

    Thank you!

    • Mel Grubb says:

      Thank you very much. That was the point of me writing this. I could find all of the “what” steps out on the web, but the “why” was never explained to my satisfaction. I started writing these as instructions for myself, and then just decided to post them. I’m glad they could help.

    • Sean says:

      well said 🙂 thanks Mel, great job

  2. John says:

    Thank you very much for this tutorial. I read almost all chapters. Your style of explaining is great!

  3. Mike says:

    I’m really interested in this build. But instead of using a Pi3 w/Raspbian, could I use an Acer Chromebook, running Debian Stretch via Crouton? For a noob like myself, there doesn’t appear to be any major differences between the two OS’s. Plus the Chromebook already has battery backup, dedicated display/keyboard/mouse (not required but preferred), and a power supply beefy enough to handle peripheral hard drives. Please let me know if I’m mistaken.

    • Mel Grubb says:

      If you can get it running Debian, then a lot of the steps would be similar, but I can’t say they’ll be identical. I don’t have a Chromebook, so I can’t really try it myself, either. In general, the concept is sound, though. I’m planning to recycle an old Netbook in a similar fashion.

  4. Michael says:

    Good work! I’ve done something similar before I came across your blog, and I did my basic setup slightly differently:

    * Set up the OS
    * Set up SSH—from that point on you no longer need to work on the local console but can do the rest remotely
    * Optional: Create a personalized user account (with sudo permission) and configure public-key SSH authentication
    * Set up Webmin—this makes some of the following steps (external HD, Samba) a lot easier
    * Then set up all the rest

    If you have a MySQL instance running, be aware that this is the part which is most prone to data corruption after an unclean shutdown. I definitely recommend a UPS capable of powering the Pi plus all attached peripherals—even a USB power bank can bridge outages of a few hours. Also be sure to back up your DB periodically.

    The one part I’m missing is contact/calendar/task synchronization (e.g. between Thunderbird and Android). I had originally used OwnCloud but found it a bit too CPU-hungry even for a third-generation Pi, plus the issue of data corruption and the cumbersome update process. For this reason I decided to ditch it when I rebuilt the server recently. I am now looking into DAViCal for this purpose. A bonus is that it is available from the Debian repo.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s