I have quite a bit of computer hardware experience, but I don't
get to practice it much since industries have pushed towards
cloud computing. Self hosting is still a valuable skill and works
great for smaller projects and particular use cases where cloud
isn't required. Also many skills are transferable, such as using
docker or setting up firewall.
Hardware
For around $60, and an old outdated laptop, I can have a custom server
with minimal to no monthly costs.
Benefits of Self Hosting
| AWS Free Tier |
Old Computer |
RAM |
1 GB |
32GB |
Storage |
5GB |
2048 GB+ |
Uptime |
750 Hours/Month |
Unlimited |
There's a handful of other reasons too. Customizability,
no sunk costs, no surge pricing, no subscriptions, and
no certification required.
Operating System - Linux
For the OS, I chose the Linux Ubuntu Server
since it's widely used and has lots of documentation. It's also free and
relatively easy to setup. They also provide a free desktop OS, which
helps bring in users and developers
Using a Linux server has a few benefits. Being a server OS,
it's designed to be "headless." Headless means that
there's no desktop, and it's interacted with through a terminal.
Similar to the original computers. This ultimately
saves resources and
improves automation
OS Install Setup: (simplified)
- Download and flash Ubuntu Server's ISO to a removable drive ⚡
- Boot the server from the removable drive 🐛
- Depending on the BIOS/PC, the process of telling a computer to boot from a
specific drive can vary. It may require pressing F8 before another drive boots,
going into BIOS settings, or nothing at all.
- Complete the setup prompts ✅
- Linux will ask for some help: connecting to the internet, knowing which
drive to use, and what packages + settings you want. Depending on the version or OS, this
may be easy or complicated
Post-Install Setup: (optional)
- Activate Firewall 🦺
- In My situation, I'll be port forwarding,
exposing the server to the internet. I went through a firewall setup
to ensure only certain ports are open.
- Setup + Test SSH 🖥️📡🖥️
- Many people prefer to connect to the server
on another computer. This means you won't need a second monitor,
keyboard, etc. Establishing this connection can be done many ways.
I used OpenSHH which came default on Ubuntu Server and
Mobaxterm
to provide a UI for the SSH connection. I tried VSCode for hours and it was all errors.
- Move/Store Server Hardware 📦
- If you don't plan to interact with the computer much,
then consider placing it somewhere safe and secure. Away from liquids, pets,
and in a spot with good wifi (or wired is best). Airflow and clean air matter
to the health of the hardware.
Software
~ Currently in progress ~ Come back later ~