Local Node

Jan 26, 2025·7 min read

So you’ve found yourself here. Maybe it’s for fun, or maybe you have to make a living. In either case, I welcome you to the fold. For the past few years, I’ve tried to host everything on machines I have at home. I’m partial to that approach because it keeps me close to the hardware and in full control of my data, you also learn a ton! This small guide is on getting started with running servers and deploying your own applications.

The Machine

The easiest place to start is getting yourself a physical server to play with. Since the server is in your possession, it’s trivial to restart if you make a mistake or hit a wall. The kind of device you get depends on what you’d like to do:

If you prefer not to use physical hardware, cloud providers like AWS, Google Cloud, or DigitalOcean offer virtual servers.

Tips:

The Software

Choosing an Operating System

Linux is the most widely used operating system for servers. For beginners, Ubuntu Server is a great choice. It’s lightweight, optimized for performance, and command line–oriented, which mirrors most production environments. Other popular Linux distributions include Debian, CentOS Stream, and Alpine Linux for ultra-lightweight setups.

Accessing Your Server

Connecting to your server is the first step to managing and interacting with it. Essentially, you’re setting up a way to communicate with the machine, whether it’s to configure it, run applications, or monitor its performance. Think of it as establishing a line of conversation where you can give commands and receive feedback. Depending on your setup and preferences, there are several ways to achieve this.

Direct Hardware Connection (HDMI and Peripherals)

SSH (Secure Shell)

Serial Console

Web-Based Tools

Remote Desktop (Optional)

The Service

Now that your server is up and running, you’ll want to deploy applications. This involves:

  1. Transferring Code (or application files) to the server.
  2. Running them in a reliable way.

Transferring Code

Using Git with a Service Token

SCP (Secure Copy Protocol)

Docker Registries

Manual File Uploads

Running Applications

It’s often best to use a specialized tool so your app restarts automatically if it crashes and is easy to update. Below are different approaches:

Docker + Portainer (Preferred)

Process Managers

Shell Scripts and Cron Jobs

Manual Execution (Not Recommended for Production)

Beginner Tip: Docker Compose or PM2 are often simpler than you think. Start there!

Automating Deployments

Automating deployments ensures consistency and reliability:

Real-Life Example: Use Ansible to spin up a new Ubuntu VM, install Docker, pull your Docker image, and start it automatically with Compose—no manual steps needed.

Resources

Here are some resources to help you learn and grow:

Project Ideas

Blogs

YouTube

Books


Remarks

I’m not going to lie, you have to build things. Many things. Random ones that no one uses, and useful things that make at least one person’s life better. It’s from this repeated cycle of building, failing, and trying that you get more confident in what you can and can’t do. Hopefully, if you’re doing it right, it’s only a matter of time before you realize that doing anything is only a matter of time.