I recently became interessted in learning about static site generators. So I decided to start a little 11ty blog, in which I teach people, who are new to self-hosting, how to securely set up their own server with Ubuntu and Docker.
For now, I’ve got my Beginners Guide series as well as a more detailed introduction to SSH and its features. I plan to eventually write down all I’ve learned about self-hosting in the past 20 years.
Hope it ends up being helpful for some of you.
EDIT (2025-10-28): Finally got around to get a proper domain and switched my blog to Hugo. Much easier to deal with and more capable imho than 11ty (and actually useful documentation as well). Oh and got rid of Netlify. Their 300 credit limit for a free deploy project is far too limiting if any deploy costs 15 credits…
I know next to nothing about self-hosting, so I appreciate that you wrote this series. I’m probably going to use Debian and my own computer, but I think your walk through is still helpful. Thank you.
Thanks! I am happy, if people find it helpful.
Ubuntu and Docker.
Really? Netplan alone disqualifies Ubuntu as a “friendly stable starter distro”, and I can guarantee you that your guide will somehow become outdated with a single new Ubuntu release, or some poor soul who accidentally selected an LTS release.
Docker doesn’t matter as much, but there’s a reason beyond just FOSS licensing why podman exists.
Would highly recommend Debian instead.
I started on Ubuntu similar to this many years ago and both the server and desktop experience was not fun at all.
As someone who manages a mail server, new debian releases have the same effect.
If you want to avoid this, use a rolling release distro.
I think you are conflating desktop Ubuntu with Ubuntu Server. On a server, you absolutly want a stable, long supported LTS version.
I’ve been hosting on Ubuntu Server for over 10 years now, and at no point were any packages required to keep it up to date and running outdated.
Whats wrong with netplan? Has worked great in my experience.
Netplan alone disqualifies Ubuntu as a “friendly stable starter distro”
OP didnt mention anything about stability. Just ease of use.
Whats wrong with netplan? Has worked great in my experience.
Neither did I? Yaml defined networking is incredibly easy to use.
Has worked great in my experience.
I read your comment as implication as either hard to use or unstable.
Honestly, I’m not sure how you get “hard to use” from “worked great”
Awesome to read. Thank you. Also, your images aren’t loading for me.
Thanks, glad you liked it.
Yeah, I know that the images are borked. But it’s pretty late here and I was too lazy to fix it. I’ll fix it tomorrow.
I get that. Sometimes there are things for another day. I hope you get a good nights rest
This is cool keep it up
freeing yourself from your dependance on big corporations
Setting up a VPS with Ubuntu Server
This shouldn’t exist in the same article lol. You will just end up paying in subscriptions anyways while at the same time maintaining all the stacks — that too on Ubuntu where some articles will become useless after a few updates. Even 10$ a month will result in $120 every year — which can buy you a half decent second hand PC or a new Mini PC. You won’t even own your data when you rent a VPS.
You will end up saving a lot more by self hosting on your own hardware with vanilla Debian and be more independent at the same time. You will only need a VPS if you want to self-host your own reverse tunnel like Pangolin or FRP.
The amount of baseless Ubuntu Server hate in this sub is pretty sad. I’ve used Ubuntu Server, without any problems, for more than a decade. And at no point where there any significant changes to the way things are done. So I really think your comment about articles becoming useless has no basis in reality.
As for using your own hardware. Nothing in this guide necessarily requires a VPS. And you seem to completely ignore the upkeep and electricity costs of having your own hardware at home.
Not to mention the convenience of a public IP, which is something not every ISP around the world offers. And yes, you can use a dynamic DNS provider to get around that, but then you publish your private IP onto the entire internet.
The guide was focused on being as simple and convenient as possible, with the target audience being absolute beginners to self-hosting. If it doesn’t speak to you, feel free to write your own.
I’ve used Ubuntu Server, without any problems
If it works for you then great. But it doesn’t stand with your goal of Corporate Independence and Willingness to Learn — Given that it is slightly easier to setup than Vanilla Debian. But at the end of the day it is just Corporate Debian with more up-to date packages but overall less stable than Vanilla Debian.
upkeep and electricity costs of having your own hardware at home
It really won’t be much unless you’re gonna go for extremely beefy hardware like for Jellyfin hosting hundreds of newer codec 4k files with HDR and shit with dozens of users or some LLM — which anyways still would be cheaper than renting a VPS. Otherwise even a Raspberry Pi can do a decent job or even a mini pc (with something like Intel N100) which draws less power than a Mobile Phone charger. It also aligns with the idea of beginner friendly setup than using a VPS which half the people will even skip reading the Terms & Conditions and Privacy Policies. So hosting something like Immich or Nextcloud, which is not encrypted at rest, is pretty much available for the VPS provider at instant.
convenience of a public IP
You don’t need a public IP to self-host. A beginner should start with private at first, learn from there and gain and grow otherwise it can lead to security risks — e.g you have mentioned to self-host Immich which doesn’t have any native 2FA. The self-hoster then will have to know about SSO based logins to secure instances like these.
use a dynamic DNS provider to get around
You also have Cloudflare Tunnel, Tailscale. Or you can use a 5$/month VPS in this instance to self-host Pangolin with Crowdsec for public access and block malicious or suspicious IPs. All of these options will mask your real public IP.
The guide was focused on being as simple and convenient as possible, with the target audience being absolute beginners
Ok but this asks for a lot of upfront investment. You don’t need to buy a domain or a VPS as a beginner (or even a mini PC as I mentioned). Just start with a PC or a Laptop you already own. Host the service and access it via private IPs instead of handholding them to copy and paste commands, configs and compose files from the internet (although you do have mentioned official documentation so kudos for that) just for the convenience of public access. A lot of people don’t know the 3-2-1 backup rule. One error might wipe off their entire Immich Library, Password Vaults or important documents in Nextcloud.
I have wanted to self host ever since I joined the fediverse 5 years ago. Always ends up with one or another error message that I cant get through. But I might give this a chance.
One thing I wish I knew earlier is the “man” command to display the documentation of a command.
Nice guide, thank you!
For getting your stuff available over the internet, y I recommend a secure tunnel with wire guard between your vps and servers running the services.
Make your vps an authentication portal using stuff like Authelia and Fail2ban.
If you’re really needing out, get ELK stood up for free and get agents on your containers/services to keep visibility into any potential… Anything
I’ve personally never found the need to do that. If you follow basic security guidelines and keep your server os and the docker service up-to-date, there really isn’t any real threat.
Though I have heard of Authelia before and was interested in reading up on SSO, one of these days.
Awesome, thanks OP!
I love 11ty, I build my blog with it.
Yeah, took me a while to get the hang with Nunjucks, which I had never heard of or used before. But once I got it all properly set up, it was super simple and easy. I’ll definetly write a guide to it too, eventually.





