![]() This project is based around a rather simple yet powerful maxim known as the Unix philosophy. If so, join me in my journey of creating a reproducible Raspberry Pi. I hope this has piqued the interests of those like me who do not want to worry about breaking their server after installing a new application or running an update. This project should help me document how I created the server that stores the files I depend on every day and should allow you to do the same. Regarding the writing of this tutorial, I believe that if I cannot properly explain my motivations for certain choices that I make or if I cannot explain in a step-by-step manner how to complete a task, I must be doing something wrong. My personal goal is to have my server be a nearly disposable appliance (at least regarding software) rather than something held together by love and duct tape that only I can operate. I would like to complete my build in the fewest number of steps possible and allow it to be resilient enough to remain reliable no matter what I throw at it.Īnd if I do in fact throw too much at it, I would like to have clear documentation about how to get it back to a working state. Second, and on a very related note, I would also like to document the rebuilding of my Raspberry Pi server from the ground up. This project should walk you through the process of understanding why certain commands might work better in certain scenarios and why others might be more applicable elsewhere. Such a tutorial is not what I intend to create here. I have two main motivations for creating this project.įirst, I too often have found myself copying and pasting lines from tutorials online into my terminal window and watching them return the correct result without actually learning how or why the commands work. While this might seem a bit daunting at first, once you learn how to manage your server via the command line, you will be amazed at how easy it is to back up and restore your settings.įollowing this approach, you will no longer need to worry about if you checked the right box in the settings bar, because if you properly backed up your scripts and files, you should be able restore your server to working order by selecting and committing the right text document. To achieve this goal, this project relies solely upon easily accessible consumer grade equipment and open-source computer programs, most of which are operated solely via the command line and/or through configuration (config) files. – you would have the skills to quickly rebuild your server with the least amount of friction and/or data loss. ![]() The hope is that following the completion of this project were the worst to happen – be it a hard drive failure, the Pi overheating to the point of no longer functioning, etc. Reproducibility is of the utmost importance to this project. These and all other tools used in this server build will be explored in this documentation. The specific setup that will be documented in this tutorial consists of a Raspberry Pi 4 connected to a hard drive array which will serve files directly to devices on the local network and interface with users via other means (specifically through a containerized media server).Īt the completion of this project you should have learned some basic Linux commands and have an active understanding regarding the functioning of your server’s components.Īlong with standard Linux tools, the operating system, protocols and applications which will serve as the base for this server build are the following: Raspberry Pi OS, mergerfs, Samba, Docker and Docker Compose, and Jellyfin. The reproducible Raspberry Pi (RePi) server build project aims to walk you step by step through the stages of building a Raspberry Pi server that is stable, secure and, as the name suggests, reproducible.
0 Comments
Leave a Reply. |