I’m working on building up a new VPS using Ubuntu 20.04 and Docker for all the services. This seems straight forward, but so far it’s presented some unique issues that I don’t think I’d have on a conventional setup. I think the first trouble I ran into is just the number of prebuilt images available on hub.docker.com. I mean, I could build everything from scratch, but if I can leverage some one else’s work, why wouldn’t I?
I’m using Hostwinds for my VPS service. Their instances are very affordable for both managed and unmanaged and the VPS system that they use allow a lot of flexibility, painless upgrades, and current kernels. Yes, I’ve tried to use a couple of VPS services that only supported a crazy outdated kernel that, if memory serves, was actually end-of-life. Personally, I’m using the unmanaged service for this project, and this is the second one that I’ve gotten from them. This WordPress Blog is hosted on the first one, and I’ve had it for several years now without issue.
After quickly installing Ubuntu 20.04 LTS, I figured Bind was probably the first thing I should setup so I don’t have to remember my new IP or enter it in my /etc/host files. Besides, I’m trying to setup a public server here, so of course I want DNS. It went pretty well. I’ll write a more detailed article about it and link back to it. Next up, web service.
After some research, I decided to go with Nginx. I’ve always used Apache, but I keep seeing stats about Nginx overtaking Apache as the most used web server on the Internet. Plus, it looks pretty straight forward to setup and seems to have simple reverse proxy setup. This actually went better than the Bind setup, which I’ll cover in greater detail in yet another article.
Now with basic web service with SSL and Let’s Encrypt working, email seems like the next logical step. Historically, I’ve used Postfix and Dovecot. A DDG search revealed a Docker composite called Mailu that includes both Postfix and Dovecot, but has a better web interface for Postfix administration. And this is where I’m currently stuck. I’ll keep this updated as I work through the issues and learn more about containerizing services with Docker.