Drop #206 (2023-02-23): I Hosted It My Way
CapRover; Coolify; Jam
Platforms had their time.
Sure, they gave us convenience, but at what cost?!
Last year, Heroku burned many-a-coder with their greedy pullback. Musk's desperate moves to increased monetization have made Twitter links on Mastodon a-hrefs non gratta. And, many founding denizens of the fediverse will look down on you if you drop embedded content links to commercial services such as YouTube.
So, today we first look at two resources that help you break free from the platform chains, then look at another self-hosted application that may help fill in the Spaces gap for Mastodon users.
As a data scientist, CapRover [GH] may be the only instance of a FOSS PaaSitive I can tolerate (trust me, the pun hurt worse to give than to receive). For those who have (rightful) disdain for acropunyms, that means CapRover is a free/open source platform-as-a-service orchestrator.
The folks behind CapRover are quite proud of their creation (I mean, they call it “Heroku on Steroids”). So, I'll just give you their pitch (I did add some parenthetical descriptions since I had no idea how many folks knew what NetData was):
CapRover is an extremely easy to use app/database deployment & web server manager for your NodeJS, Python, PHP, ASP.NET, Ruby, MySQL, MongoDB, Postgres, WordPress (and etc...) applications!
It's blazingly fast and very robust as it uses Docker (for containerized apps), nginx (web serving), LetsEncrypt (TLS certs) and NetData (monitoring) under the hood behind its simple-to-use interface.
CLI for automation and scripting
Web GUI for ease of access and convenience
No lock-in! Remove CapRover and your apps keep working!
Docker Swarm under the hood for containerization and clustering
Nginx (fully customizable template) under the hood for load-balancing
Let's Encrypt under the hood for free SSL (HTTPS)
They even have good answers to “who should care about their project”:
A [web] developer who does not like spending hours and days setting up a server, build tools, sending code to server, build it, get an SSL certificate, install it, update nginx over and over again.
A developer who uses expensive services like Heroku, Microsoft Azure and etc. And is interested in reducing their cost by 50x (Heroku charges 250USD/month for their 2gb instance, the same server is 5$ on Hetzner!!)
Someone who prefers to write more of showResults(getUserList()) and not much of $ apt-get install libstdc++6 > /dev/null
A developer who likes installing MySQL, MongoDB and etc on their server by selecting from a dropdown and clicking on install!
How much server/docker/linux knowledge is required to set up a CapRover server? Answer: Knowledge of Copy & Paste!! Head over to “Getting Started” for information on what to copy & paste 😉
You can “try before you don't buy” via this demo site (the password is
captain42) to see how straightforward it is to deploy new services.
Now, they really want you to use Digital Ocean (DO) for your setup since their recommended onboarding path is a dead simple DO Droplet. DO is super cheap. But, it's also kind of the armpit of the internet (part of my $DAYJOB is knowing where mass exploitation attacks come from, and you really do not want to know how many folks with ill intent use DO). I mention that since many ISPs and organizations downgrade the reputation of DO IP ranges. You may get assigned a DO IP that was recently used in an attack (or twelve), which means you and other folks might not be able to use what you've built. Keep rotating the shield frequency (i.e., “shuffle the IP assigned address”) until you get a good one, if that happens.
You can run CapRover locally, but I only did a quick test of the Droplet version.
They have a plethora of one-click-install apps pre-configured, but any well-behaved Docker image can be used with CapRover.
Many folks are contributing to the CapRover codebase, and they have a fairly active Slack community if you need assistance.
Coolify is very similar to CapRover. The Coolify folks are a bit more chill than the CapRover folks in how they describe themselves:
Coolify is a self-hostable, all-in-one solution to host your applications, databases, or other open-source services with a few simple clicks.
It's an alternative software to Heroku and Netlify and other alternatives out there.
They, too, have a “try before you don't buy” demo site (free reg required).
They've got a similar feature list:
Deploy Static, NodeJS, Svelte, React, Vue, Next, Nuxt, Astro, PHP, Rust, and more applications hassle-free with automatic reverse proxy and free SSL certificates.
One-click MongoDB, MySQL, PostgreSQL, CouchDB, RedisDB instances ready to use, locally or over the internet.
One-click and deploy your own instance of WordPress, Ghost, Plausible Analytics, NocoDB, BitWarden/VaultWarden, LanguageTool, N8n, VSCode Server, and more.
Deploy any of these resources to a Local Docker Engine or Remote Docker Engine.
Integration with GitHub, GitLab, hosted or self-hosted versions.
Automagically deploy new commits and pull requests separately to quickly review contributions and speed up your teamwork!
You can manage teams easily with our new team management system. Each team is separated by a namespace, and you can create as many teams as you want.
Upgrade your all-in-one IaaS platform with one button!
And, their own answers to “who is this for”?
Companies and teams who would like to host their resources in-house. 🛖
Hobbyists to quickly run your applications and ship that MVP! 🚢
For everyone who would not like to rely on huge cloud providers for any reason. ⛅
Or for anyone who likes cool software. 😎
Who would like to migrate from Heroku. ⚡
Now, I have not fully tested Coolify at all. But, I did fire up a local OrbStack arm64 Ubuntu machine and validate that their “wget a shell script and run it as root” will not pwn your system (more on OrbStack in a future Drop). So, you can follow their installation instructions with a bit less trepidation.
Plenty of folks use Coolify, so you can take a peek at what you can do with it, and, perhaps, riff from what others have done.
Both Coolify and CapRover are great options for dipping your toes into the self-hosting pond.
This last one is super quick (pinky swear! 🤙🏼).
Someone on a 🐘 instance I'm on was seeking an alternative to Twitter Spaces / the pretty defunct Clubhouse. I, personally, do not think Mastodon servers-proper should bake in this feature, but there are some solid hosted and self-hosting alternatives for this functionality. Jam [GitLab] is one of them.
With Jam, you can create audio rooms that can be used for panel discussions, jam sessions (hence the name), free flowing conversations, debates, theatre plays, musicals and more. As the Jam folks note, the only limit is your imagination.
Hit their main URL to try it for free. Sign up for access to your own (hosted by Jam) server, or follow the GitLab guide to install your own.
I'll drop a Jam room link on Mastodon over the weekend if folks want to try it out in a safe space. It works super well.
In the immortal words of FrankGPT Sinatra (a.k.a. Ol’ BlueAIs), self-hosting is where it's at, ba-by:
And now, the end is near
And so I face the final curtain
My friend, I'll say it clear
I'll state my case, of which I'm certain
I've self-hosted PaaS, built from the ground
I've managed the stack, without a sound
I've scaled up and down, but did it my way
And more, much more than this, I hosted it my way
I've offered SaaS, my own creation
I've provided solutions, to suit each situation
I've empowered users, but did it my way
And more, much more than this, I hosted it my way
For what is the cloud, if not self-hosted
To take control, and not be imposed it
I've done it my way, and it has paid
With freedom and flexibility, my path was made