A Server of One's Own
A step-by-step guide to running your own personal server.
Many of the applications we use today – from the humble word-processor to the latest social networks – exist in the cloud. Michael Miller, writing for RETURN, discusses this fact and suggests practical steps you can take to reduce your reliance on the most wicked platforms. A good place to start is in retaking control of your email, a keystone of your digital life.
Technology is an art of tools and their construction, and tools have trade-offs. You can use a hammer, find a ready alternative, or build a foundry and produce your own. The first is straightforward but perhaps not appropriate to the task, the second may take a trip to Home Depot, and the last one takes some knowledge, time, and quite a bit of money. In digital technology, time and desire to learn and to build often supplants the money part. You're already in the driver's seat, it's up to you how far you will drive.
Today we will give you a head start on this road, and provide a map of where you may go.
What's a server anyway?
A server is a computer, usually connected to the internet (or alternative networks) at all hours, that serves up information to those who contact it. When you visit a site or use an app, you are sending requests to someone's server. That server does things with these requests, following recipes that use these ingredients among others, and hopefully responds with what you're after.
When you launch your own server, you gain control and insight into these recipes, and which ones sound the tastiest. You stock your kitchen and get out the frying pan, and swear off Grubhub for another day.
Let us begin.
Register a domain name
First you should register a domain name that suits you. You needn't choose the perfect one but this is the address that you (and others) will visit, so make sure it's satisfying.
You can tie your domain name to any number of applications and servers. Perhaps someday you'll visit your homebrew blog at example.com, share your photo albums at photos.example.com, and ask your friends to sign up for a course you're teaching at learn.example.com. Maybe you'll ask people to email you at firstname.lastname@example.org. These choices are up to you, and the future is long, but today we will keep it simple.
Choose a hosting provider
As with domain providers, your options here are endless. Many forums exist to discuss and unearth the very best hosts: the fastest, most reliable, the most inexpensive. Your hosting provider will rent you part of a powerful machine, online at all hours, ready for requests from you and others, and ready to serve. Key factors in selecting your server will be how many visitors you anticipate, and how complicated a task you have given it. Running your blog on a five dollars per month machine may be entirely sufficient, even to serve 50,000 people a month. That machine may be sufficient if you want to privately share your video library with a few dozen friends. However it may not be up to the task if your ambitions run deep, or if you're Slashdotted (to use the elder-millennial slang).
With ubiquitous broadband connections and cheap hardware, some enthusiasts decide to forgo the hosting provider as such, and run their own machines in their closet. Bear in mind that you inherit more responsibility in doing so, and if your server goes offline, it won't be reachable through the internet.
The good news is that when you use a hosting provider instead, much of what you learn will be relevant if you later decide to run your own machine.
Today we'll choose Linode as our hosting provider, an early contender in the area of virtual servers that provides many conveniences, fit for large enterprises and the amateur alike.
Sign up for Linode and we'll continue.
What's the first app you want to launch?
It's no longer necessary, or even desirable, to write software from scratch. Enormous libraries of free and open-source software are plentiful, and what software you may write someday can be confined to extending or altering this foundation. For our purposes, we'll limit ourselves to ready applications.
Here, providers like Linode can really shine. They maintain a library of software ready to be deployed in a few clicks. (Several other providers like Digital Ocean offer this as well, and legacy hosts may offer something similar through cPanel.)
Someday you may learn to deploy web applications by hand yourself, without relying on automated one-click deployments, and you will find your software options multiply. But often the most popular self-hosted applications will be readily deployable from providers – from blogs to media servers to file storage and so much more.
Perhaps the most popular of self-hosted applications is WordPress, which provides you with tools to publish content of all sorts. Looking to launch a website or blog, or craft a simple alternative to hosting on Substack? This is a good place to start, though many thousands of alternatives to achieve a website do exist. Ghost is another popular option, and there are hundreds or thousands more.
Deploying your first application
Today let's begin by deploying WordPress with a click. You will be met with a screen displaying a variety of options, but don't overthink it.
As you scroll through these, you will be asked to assign passwords, choose where your server resides, and more. Ignore the advanced or optional settings, and don't sweat it. If you make an early mistake, you can easily delete the server, and start fresh.
When it comes to choosing a server for this use-case, you should be fine choosing a Shared CPU server with 1-4GB of memory, ranging from five to twenty dollars per month. We're not mining for crypto or running complex data analysis (not yet). Choose according to your ambitions, but note the decision isn't permanent, and you can generally grow your server over time with another click or two.
Once you complete these settings, Linode will launch your personal server automatically in minutes. More specifically you'll receive a virtualized server a slice of one of their optimized machines that's well-insulated from others, and effectively identical with a bare-metal machine: You'll have plenty of room to grow in your skillset, from one-click apps down to the Linux substrate, and all levels of abstractions in between.
Remember, behind all the abstractions, we are dealing with a computer. So, power it on already if it's not:
Also grab that IP address highlighted, and paste it in your address bar.
Boom, you got your site:
Now head over to the dashboard (or control panel) for WordPress. You can get to this by adding
/wp-admin/ to the end of that IP address, e.g.,
Sign in with the WordPress admin username and password, that you set when launching the server at Linode, and you're in:
Remember, we're using WordPress as a practical example here, but the general process to accessing any deployed application will be similar. You'll find details in your application's installation documentation.
Connect your domain name
Your last step for a basic setup is to return to your domain registrar's website. If you used Hover, this guide should help.
You'll add or update a couple A records: One will point the domain to your server's IP address, the other will handle that "www" subdomain that is a convention.
You should arrive at something like this, but with your own server's IP address entered instead:
After you save this, grab a cup of coffee. When you return and visit your new domain name, it should point back to your site. During this time, your new domain and its associated IP address will travel across the globe, updating the phone books that make all this work (DNS).
In a world powered by cheap dopamine, it may be that you're a bit underwhelmed. At the end of the day, you have a domain name and a website, and there are a lot of those things about.
But here it's a little different. Sure you could've started a Substack in fewer steps, just as you may sign up for Google Docs or use Netflix. And sometimes that's appropriate. Here instead you took a strong step toward sovereignty; you accepted responsibility for power and flexibility.
When you log into an application's humble dashboard, whether for WordPress or the next app you experiment with, you are not entrusting your data to another party to harvest (or protect). When you (or another) visit an application on your new server, its appearance and functionality is not under the control and subject to the whims of Big Tech. The whims are largely yours to discover. You didn't rent a hotel room, but took possession of a homestead that you may develop and steward.
And in an era of de-platforming and far too much digital surrender, that makes all the difference.
Resources for learning and getting involved
The broad community of sovereign tinkerers is only growing, and shows no sign of stopping. It's easy to get overwhelmed, but you've taken your first step. Keep it up with these resources:
RETURN is the publication you're reading now; join us as a member as we delve into the autonomous and sovereign. Together we will reveal a broad path – in print, digital, and discussion – to flourishing in the digital age with culture and technology made for humans.
Learn more about using and extending WordPress and make the most of your new site
Awesome Self-Hosted is a comprehensive list of available applications you can host and modify
The Self-Hosted Show is a podcast for professionals and amateurs alike
Homelab Wiki to learn about running your own server at home
Caprover and Cloudron are applications that make it simpler to launch and host a variety of apps on one server. Think of them as your own App Store, but one that installs only applications under your control on a server you control.
Urbit is an intriguing self-hosted application (among other things) that challenges this paradigm, from the application level down to how servers communicate, digital governance, and more.