OYCSGetting StartedAbout

Intro to Self-Hosting

Most modern software is made of two major components: a client, or front-end, component, which is the part that you see and interface with, and a server, or back-end component, which is all of the code and databases necessary to do the heavy-lifting, the actual functionality of the app. For cloud-based apps, such as Amazon and Facebook, the front-end could be the app that you downloaded on your phone or the website you access in your browser. However, this front-end is just a way of viewing and interacting with the content, while the content itself lives on the server in a datacenter and is being sent to your device as it is needed. The front-end is code that you are running on your mobile device or browser, and the back-end is being run, or hosted, by Amazon or Facebook respectively. Hosting software means running the back-end, so that one or more client devices can connect and access the data you are hosting.

Accordingly, self-hosting is the practice of hosting the services you use yourself. That means that you run both the back-end on a home server and the front-end on your devices. By running both components on devices you control, you now own that service end-to-end. In almost every way, self-hosted services run the same as they would if they are cloud-hosted; the only difference is the internet address that you give the front-end app or web browser to know where to find your self-hosted back-end. Once you are self-hosting a service, you can share that service with your family and even your community. This can provide cost savings if the cloud-hosted alternative requires monthly payments, and provides better security, privacy, and customization options.

Self-hosting is considered the gold standard for security and privacy. For privacy, you can't get any better than all of your data living on your own home server, and only accessed by you and your family. Of course, because only you and your family can access it, that also makes it extremely secure, because hackers can only attack servers that they can get some amount of access to. This would only hold true to its fullest extent if you didn't expose any of your services to the internet and didn't access your services remotely, which may be inconvenient but is actually an option if you are self-hosting, and eliminates almost all opportunity for a hacker to get to your data. However, you are in full control of how much risk you expose yourself to. If you open up a service to the internet so that other members of the community can access it, you also open up that service to attackers, but that is still significantly better than all of your services being open to attackers, like they are when hosted in the cloud.

Start taking ownership of your cyber space today