
I love self hosting. I run a Docker hosting platform that empowers everybody to self-host. I think every developer should know how to deploy their ...
For further actions, you may consider blocking this person and/or reporting abuse
I only agree with email server and CDN, you should not run it, unless you know what you are doing. And maybe object storage if you have no clue what you are doing either.
That being said. Ceph storage for example can be used with Proxmox to provide a cluster for storage. Ceph can provide object storage (RGW), block storage (RBD) and file system. It used a lot for high availability Proxmox clusters.
Package registry, wow it's awesome. Especially running a small registry docker image (hub.docker.com/_/registry) can already do so much, this is effectively act as a cache. So it will reduce the amount of docker pulls on the remote and caches the containers locally. Reducing risks of rate limited, as well as reducing network bandwidth if you run a lot of CI/CD pipelines.
Furthermore, I would also recommend GitLab container registry for example (free & open-source), which allows you to just locally host your own package & container registry. This is ideal for situation where you build your own docker image and use it mainly locally on your own infrastructure.
The containers can be put private and local, and you do not need to pay or depend on Docker Hub at all.
Last but not least, DNS. Run a DNS server locally, especially a recursive DNS server is super important. A recursive DNS server can reduce overhead and DNS queries of the overall network. A recursive DNS server is actually more like a "DNS cache", you should host your own on your router or firewall for your own network. Like Unbound.
Running your own recursive DNS server has also more benefits. It allows you to control which DNS will resolve and which will not. Basically allowing you to block ads and malware at the DNS level on your entire network!
I love CEPH, but it's sooo slow on local home systems
Local DNS is imo very different than running it for your business/production stuff! For home use you can do all of the things, donβt let anybody tell you otherwise:)
I would still strongly recommend a local recursive DNS server for your business / production :).
You do know the difference between recursive DNS vs authoritative DNS server, right? I'm talking about recursive DNS.
I would not recommend running an authoritative DNS, unless you know again really what you are doing with NSD or Bind. Anyway, I was actually talking about recursive DNS like Unbound.
Oh yeah I know the difference, I just don't think it really matters for most people. As always, context matters. If DNS queries are slowing down your network and are a significant overhead go for it, but I don't think that applies to most people! Maybe I'm missing something else here though:)
Yeah, its mainly if you care about latency you host your own recursive DNS server. Since that has a higher chance to have a cache hit and its local.
On my small network I already a notice a drop in latency when running my own recursive DNS server on my network. It of course also depends what kind of business you are running.
Another bonus would be, that running your own recursive DNS server allows you to flush the cache when you need it, to get the latest information if possible.
Fun fact: Did you know you can also force a cache clear on public DNS providers like?
Yeah I'm glad I didn't read this article before I decided to host my own Unbound DNS server for all of my docker containers so I can have SSL and easy subdomain names for all of my services. If I had, I might have thought that people should go to jail for doing it!
Does the author is even a professional system administrator? π€ Or he's doing it "just for fun" is where that kind of thinking comes from?
To me, the difference between Google mail, etc. and a self-hosted mail server is the same as the difference between public transportation and a personal car. No more or less. Setting up and maintaining a mail server is the same as dealing with the dealership and getting an oil change. I would say the same for the rest of these examples.
So, is this article aimed at professionals, or at just random people?
The article is aimed at the majority of developers! If youβre a sysadmin and this is your job and passion, go for it! If you want to ship web apps, no need to maintain your own email server:)
Hard agree - trying to keep a self-hosted email server running messed me up way more than I wanna admit.
Love the title (and post :))
Ah, the constant battle between specialists and DIYers... The ability to self-host is the only reason cloud fees are not extortionate. Also, AI infringement anarchy means it's the only way to guarantee some vague level of privacy.
Good points in this article. You don't have to go all in on public cloud services, but there's nothing wrong with spending a very small amount of money on some of their services to save a massive headache.
Jonas, I get writing a blog post to try to create content and get viewership. But to use a tagline should be illegal is fundamentally against the nature of what the internet and technology itself should be about.
Some people just like to do it, some people like to know how things work, some people create entirely separate Networks that don't actually access the internet but instead provide an Intranet across multiple locations that are connected. But seeing an opinionated post about what should and shouldn't be on a forum that brings together the basis of development, learning, and is supposed to create engaging conversations on these topics is low quality at best
I appreciate the feedback! The title is (I thought obviously) tongue in cheek. Of course nothing in software should be illegal, especially self-hosting.
YES! And I encourage that, but here I am strictly talking about "getting things done" and not taking things to the extreme. OF COURSE there are both valid use cases and scenarios where you should do this, especially for learning. I am talking about the average developer here who wants to ship web apps. I was hoping to target the elitism of some self-hosting people who think you need to go all in, which I probably missed a bit here :)
You cannot be this stupid. You think people should go to prison for doing these things? I thought people like you were just punchlines in jokes, not actual human beings. How does people doing this harm you? It doesn't. If they want to find out for themselves, that's on them. But sure let's chuck them into prison for even thinking about it, right? π
en.wikipedia.org/wiki/Hyperbole
en.m.wikipedia.org/wiki/Irony
I'd say it depends. I won't necessarily advocate to go all in managing these components yourself, but if you need more flex and custom performance, or run on-premise, then you'd use those.
It seems your usage of "self-host" refers to hobbyist hosting on a single shared Digital Ocean or OVH virtual machine.
CDN
A CDN is basically a distributed cache proxy, deployed close to your users. The main goal is fast content delivery to users. You could even have a separate CDN for media files vs static files, because the requirement for them might be different. You could also deploy your own CDN in-front of origin servers, and have vendored CDN talk to your CDN as your origin. That's what the folks the Changelog podcast are doing. You can see their latest episode or my interview with them. They did this because only about 10 or 15% of their traffic are served from cache, and they tried all the tweak to get them to work.
With Varnish Cache (or ATS), and platforms like fly.io or GCP Cloud Run (with multi-region), you can have as many regional servers for them. You have more control and reliability on cahe-hit ratio vs using a generic one. The generic ones can easily evict your cached content, even if you had a longer duration.
Others
I guess the same applies to others. Self-host when there's a valid reason. Not because everyone else is doing it.
I think your
Thatβs my point:)
Most of these things you self-host/on-prem as a caching layer to bring down egress costs. Except email, just don't do email. Self hosting object storage is a great idea to fulfill your 3-2-1 best practices though.
Deploying a Mailserver using docker-mailserver is pretty easy. Important is the correct spf record and that the ptr record of the ip points to mail.yourdomain.tld. dkim keys can be easily obtained using the docker-mailserver containers tools and dmarc is ezpz.
pushing hosted email providers. bad content. support open source and self hosting always. feels like commercial content.
I mean, software is commercial for 99% of all developers. Nothing inherently bad about that, but that also means that self-hosting isn't always the best choice when the main target is maximizing profits :)
Reading the blog was quite fun π.
But i still want to host all of the above just to learn a basic idea of what actually goes behind these massive services.
Can anyone provide me resources on how to host each of them ?? Would be soo helpful
Thanks in advance
Yes please! For learning I think this is great :)
Self hosting email burned me so many timessettled on using a provider after way too many headaches.
Which one of these gave you the most grief early on?
Running a package registry is not that difficult and it is a good idea for any team.
So.. Like... You have problems with pihole and stuff? Cause that's self hosting you're own dns
No! Pihole is amazing, not what I meant:)
Sybau
Great breakdown! React is definitely a solid choice for versatility. Do you think including personal projects (bellacasashade.com/) or open-source contributions makes a big difference in a junior dev portfolio?