I’ve since changed server operating systems and code hosting platforms one more time, so some of the information in this post is now out of date.

I’ve been spending the past couple weeks working on migrating my web sites and services to a new server and I wanted to take a little time to go over why I decided to that.

Part 1 - Leaving Alpine

I use Digital Ocean for hosting. Originally, I was using their CentOS droplet (their term for a VPS, or Virtual Private Server), but I got frustrated with how old the packages in their repositories were. I had decided to try using Alpine Linux, a “security-oriented, lightweight Linux distribution based on musl libc and busybox.” It worked well enough and had the newer versions of packages that I was looking for, but I ran into some issues when I tried to run programs built with Ruby or Node.js. Also, I’d had to manually bootstrap Alpine on the VPS because DO doesn’t offer it as an option, which led to other issues with using the DO dashboard.

After dealing with these incompatibilities for some time, I decided I wanted something that worked better out of the box and decided to try using FreeBSD, as it is an official offering.

Why FreeBSD and not another Linux?

There are two main reasons for going for FreeBSD instead of another Linux offering. I’m just not a fan of Debian-based distributions, for a handful of reasons. Debian itself also suffers from old-package syndrome - the stability of old packages is useful for some, but annoying to me and my use case. Ubuntu and Fedora have newer packages, but have things about their ecosystems that have turned me away in the past.

Also, I just wanted to try FreeBSD. As a base system that is more unified than Linux distributions, it seemed like a good base for a server system. It has recent versions of packages available and all of the packages I had installed on the Linux server. Plus, a bit of it was wanting to learn something new. I had done enough research to convince me the FreeBSD base would be stable and suitable for a server, so there wasn’t concern about randomly breaking something, so I may as well take the time to learn an ecosystem used by a number of companies for their own servers.

Part 2 - Leaving Gitlab

I’ve also (mostly) left Gitlab as a center of my software development in favor of a self-hosted instance of Phabricator.

This decision was somewhat difficult to make. I’m a single person with too many projects that he’s trying to work on. It makes more sense to have my code hosted with a dedicated provider and not worry about having to maintain the server it’s hosted on, right?

That’s somewhat true - except I already have a server that I maintain. It’s one more piece of software running on that server, but that’s not much more work on top of what I already do. In my mind, the pros outweigh the cons.

The two Git hosting providers I’ve used so far have each had things that grated against me. For GitHub, it’s not offering private repositories for free. I have multiple websites using Git for version control whose source I don’t want freely available. So I went to GitLab. GitLab has the private repositories and integrated CI - which was useful for automatically building releases of zip-builder. The interface got in my way, though. It was, in my opinion, cluttered. With the number of projects I was working on and visiting the website to check on, a small irritation grew larger.

I’ve noticed after making the decision to switch to Phabricator that a number of other large open source projects are using their own instances as well. They each have more members than my 1 (me), but Phabricator has enough built-in features in one product that I was convinced to install it.

There was a little bit of issues getting git push working with it on FreeBSD relating to a permissions problem, but that was easily fixed once found. Development has officially moved to Phabricator now, so direct any bug reports or suggestions there.

Plus, you can log in with GitHub! :D

Part 3 - Leaving Netlify

Finally, I’ve moved my Hugo-based websites from hosting with Netlify to hosting on my FreeBSD server. This has to do with my own personal insistence on self-sufficiency. That is, I don’t want to be locked into a particular service, despite useful features they may provide. Netlify provides a number of features to static sites that make it easy to have a full-featured site without worrying about hosting it, the commenting system, a login system, form handling…

Like I said, I don’t like being tied to a service. Part of it has to do with having control over the things I use, I suppose.

So, my Hugo sites are now hosted on the FreeBSD server. This does leave me without form handling for the time being, but that is the next item on my to-do list after making sure the documentation for BluestNight and No Gapps are up to date. In the meantime, I’m using a survey program to allow people to contact me using the “Contact” link in the site navigation.

A Good Decision? We’ll See

Only time will tell if moving to self-hosting everything was a good idea. I am content with how things currently are, having finishing migrating everything over. There were a couple issues getting certain services initially working, but those are all resolved and everything’s going smoothly again.