Reject Cloud, return to onprem

Make the Cloud Overlords tremble in fear with your half-baked SSH and Wake-on-LAN powered virtual machine emulator.

Reject Cloud, return to onprem

Remember when you could easily spin up a gaming server on your dusty ahh Pentium 4 desktop, and play with people around the world?

Honestly, I don't. I couldn't really figure that out with the crusty internet speeds I had, all the blockades on our Internet here, and the learning curve was way too high.

My self-hosting journey

You merely adopted the Cloud. I was born into it, moulded by it.

I ran LAN parties back in school. My friends and I would load all the lab PCs with Counter Strike 1.6, and play the heck out of the hottest summer days. In uni, one of my laptop's broke apart (it was stepped on), and since I'm not a wasteful guy, I created a Linux-powered mediaserver out of it which I streamed movies off of using Samba, giving me almost unlimited storage and my own personal cinema.

I got into self-hosting. I ran SSH off of my broken laptop, and used to build projects on it, using my good laptop as simply a "portal". I then stumbled upon CapRover in it's early stages, and I absolutely loved it. I deployed a few apps, crashed a lot of stuff, but it was cool in general.

Then came Coolify, and I haven't let it go so far!

What's going on in the Cloud world?!

TLDR; The Big Cloud Exit is very real.

Even though Cloud, Cloud Native and IAAC are on the rise, there's a continuous increase in unnecessary complexity and overhead, which pretty much kills the case for simpler use cases. There seems to be a two factions - Cloud-only and on-premises - but they seem to be united by similar technologies (Containerization, modularity, etcetera.)

The Olden Days

Let's start with a bit of history.

Before Gen Z and millennials got into software, baby boomers had a very distinct sales strategy. Build once, sell once. You pay $200, you own a license to the software, and now it's yours. It's installed on your computer and you can do whatever the heck you want to do with it.

This process, albeit slow, had it's charms. Software had to be built right the first time before sales started, which resulted in pretty stable software for its time. For instance, you couldn't just send an update of your game to the Nintendo Gameboy. The cartridge had to be flashed once. The only way to update was a complete recall, like when Nintendo recalled Pokemon cartridges back in the early 2000s.

As peer-to-peer arose in popularity, so did Tor. Piracy and illegal filesharing called for a need to "centralize" a software's control points. These pointed to having a remote server, most likely in the software's creators office. This gave rise to the subscription model. (Although, despite many misconceptions, the subscription model existed before as well in the form of mail-in CDs, USBs, etcetera).

Then arose an interesting proposal: What if all these software creators centralized their centralized servers even further?! This lead to mass-scale Cloud providers like Microsoft, Google, Amazon, and more. Today, Amazon Web Services (AWS) stands as the largest cash producer in Amazon's portfolio.

Fast forward

The costs of subscriptions just keep adding up.

The software company owning the SaaS tool you use, is further paying subscription to another service, which is further paying subscriptions to another, and finally at the end of the chain is a company which is burning VC money like crazy just to keep their subscription costs at the lowest.

Sounds familiar?

For the sake of comparison, here's the subscription cost of running a software agency of 15 people, on modern SaaS tools:

Costs with ALL SaaS Subscriptions

Now eradicate some costs with self-hosted options:

Costs with some SaaS Subscriptions, mixed with self-hosting

Yes, obviously the saving you're getting will probably be spent on electricity, hardware, maintainers, and backups.

Still, when you're paying $15k a year for just the tools under your belt, you gotta step back and think; "Why don't I own the software at this point?" Surely, $15k (or even a fraction of it) in share values HAS to add up to something.

Plus, there's always a chance of screwing up with a memory leak somewhere (like this user who made the same sad mistake), or the risk of being DDoS'ed, which can surge your Cloud bill to $104,000 (like this Netlify user) just overnight. What's the point of a Cloud and all its services, if you can't have a good night's sleep?

This sentiment, along with tonnes more surrounding privacy, performance, and peace, have driven self-hosted enthusiasts around the world to build a new business model for the sustainability of the tech world.

"Self-hosted" as a business model

Some major and minor events in the self-hosting world:

  • 37signals announces Once.com with their first pay-once-own-forever software, CampFire. Their manifesto is an excellent read, and they've been advocates of Quitting Cloud for quite some time.
  • Plane.so, open source task management software reaches 22k stars on GitHub in less than a year
  • Coolify, the absolute king of self-hosting management, has more than 15,000 self-hosted instances.
  • Medusa.js, possible the biggest self-hosting of all marketplaces, reaches 20k stars on GitHub
  • Microsoft ditches Azure (their own Cloud) for LinkedIn (their own product)

We're seeing two trends clearly - Either go full in Cloud, or allow people to self-host.

This spawns an entirely new business model; host yourself for free, or host on our Cloud for $$. What does this mean for new startups and businesses?

In fierce competition, letting people self-host with a strong license means you can:

  1. Get your product tested, verified easily by a large number of users. Use the feedback to build better
  2. Remove privacy and security concerns, improve trust on your product
  3. Resolve DevOps problems
  4. Get bugs fixed and features created through the community
  5. Get Viral. Get promoted for pretty much free through just some good DevRel, and get tonnes of appreciation

Self-hosting as a Tech Startup

Mantra: You can't call yourself a Cloud or DevOps engineer unless you can run an on-prem server and maintain it for a minimum of 3 months.

Let's talk real benefits for startups, other than making their business model self-hosted. What can you get done with a self-hosted, on-premises system in your workplace?

  • Expendable dev servers. Save the cost of Google Cloud for staging and dev servers.
  • Build runners, CI/CD. The boring stuff, the compute-consuming stuff.
  • Business Development and Sales automations. Business operations with expendable data, which are usually stateless and just need to be "listening" somewhere (Examples: Scrapers, Bulk emailers)
  • Process automations (Examples: Stateless Slack Bots, Discord Bots, Builder Bots, Automated Changelog Updates. You name it.)
  • No data privacy concerns (if you apply the right security practices!)
  • Monitoring (Example: Checking system healths for projects, checking your baby monitor)
  • Learn how to get your hands dirty. Clouds often have fancy names for pretty basic stuff in almost any onprem system. It's good to know their origins, as it helps you make better Cloud deployments, and can improve your engineering culture too.

By the way, I'm not against Cloud. I just encourage people to know what they're doing, and to use the right tool for the right job. Knowing the basics of building onprem systems is crucial in a Cloud Native world.

Resources

What are the best places to learn self-hosted, and to get guidance?

  1. Discord servers: As always, you'll find the best of the best basement dwellers lurking around on Discord. There are tonnes of self-hosting communities who can guide you on the basics. I particularly love Coolify's community, but I'm sure you'll find more on top.gg
  2. The Awesome Self-Hosted list
  3. The r/servers subreddit
  4. The r/selfhosted subreddit
  5. This cool blog I found
  6. ChatGPT

The list I have is exhaustive, but if you have more suggestions, drop a comment and I'll add it up!

What's next

We're building on-prem AI systems for Omni. Why?

  • Unrealistic GPU costs on the Cloud
  • Hybrid architecture: We want Omni to be deployable anywhere for quick processing, so we need to ensure resources are used the right way

During this, we've figured out some pretty good ways to make teams more efficient while easily saving around $3000 annually. I call it "WorkStack".

I'll be publishing a guide soon on WorkStack, and how you can use it in your org to save you some costs.

Plus, expect some open-source goodies to help you along the way.

Happy hacking! ⚡️


We love doing things differently, and contributing to the overall knowledge stream. A lot of our work is R&D-based and on experimental tech in application development and Artificial Intelligence. If you're interested in working with Grayhat, DM or comment!


This article was authored by Saad Bazaz, Chief Executive Officer at Grayhat. Special thanks to Muhammad Hashim for his research on the topic, and Sohaib Bazaz and Muhammad Saad for their work on Baadal, Grayhat's on-premises infrastructure.