Austin Morlan


Code Contact LinkedIn



Switching to a Self-Hosted Life

Introduction


I used to be all-in on the Google ecosystem. I used Android, Gmail, Drive, Project Fi, and Google Docs. But it always bothered me that all of my data was sitting on a server somewhere that I couldn’t control.

I also subscribed to You Need a Budget (YNAB) to track my spending. But it always bugged me that I was paying ~$50 per year for a service that was supposed to help me spend less, and they had all of my data.

I decided to switch all of those services over to my own control, utilizing the power of DigitalOcean and Docker, and taking advtange of the fact that there are a lot of great self-hosted services out there.

Wherever possible I opted to run my own service.

The Services


I needed to find replacements for my most used services and settled on the following:

LineageOS


The big one. I didn’t actually stop using Android (that’d be madness), but I got away from Google’s distribution of it and went for LineageOS which you can get with all of the Google stuff stripped out of it.

Now I use F-Droid for apps, or the Yalp Store for anything that isn’t on F-Droid. And for apps that require some of Google’s services, there’s microG. I’m not a purist in that regard.

Hugo


Whenever I’ve been interested in blogging, I’ve always defaulted to something like WordPress or Ghost, simply because I’ve never been into learning HTML or CSS. But I also didn’t like the weight that comes along with a full blogging platform (even if Ghost is relatively lightweight).

Then I discovered the wonders of a static site generator and chose Hugo because it seemed simplest. What you’re looking at is the result of my efforts.

Collabora CODE


Not a lot to say here. It’s the heaviest of everything I’m running with the Docker container somewhere around 1.5GB which is crazy. It’s hooked into Nextcloud so I can edit documents from within my web browser.

Nextcloud


I wish I’d learned about this a lot sooner. It’s pretty amazing stuff. There’s a web interface, mobile app, and a desktop client. I’m also able to run DAVdroid on my phone which syncs my phone’s contacts and calendar with Nextcloud. There is also a Notes app which effectively replaces Google Keep (although it isn’t as flashy).

Gitea


I don’t have any problem with Gitlab or Github, but I figured that if I’m going to self-host a bunch of stuff, why not self-host code repositories also? Gitea is very light and simple. You can run your own version of Gitlab, but the system requirements are ridiculous.

ProtonMail


Running your own e-mail server is totally possible but a lot more effort than I care to put in (and making a mistake means possibly not getting important e-mails), so I opted for ProtonMail instead. If you pay for Plus, you can hook up your domain name to their mail service.

Firefly III


YNAB is great and all, but overkill for what I was looking for. They focused a lot on directly importing transactions from your banks while I prefer to do it manually (and not give a third party my banking credentials), so I felt like I was paying for something I only used a small piece of (tracking my money).

Firefly III does exactly what I need for free: log transactions and view spending reports.

Memory and Disk Space


Memory usage per container (idle):

NAME             | MEM USAGE
-----------------|--------------
collabora        |    429.70 MB
firefly          |    141.70 MB
nextcloud        |    121.60 MB
nextcloud-db     |    112.20 MB
firefly-db       |     99.26 MB
gitea-db         |     95.91 MB
gitea            |     72.33 MB
letsencrypt      |      8.68 MB
nginx            |      4.09 MB
docker-gen       |      2.75 MB
blog             |      1.97 MB
-----------------|-------------
TOTAL:           |       1.06GB

Size of each Docker image on disk:

IMAGE     |   SIZE
----------|---------
collabora |  1.56 GB
firefly   |   623 MB
nextcloud |   569 MB
mariadb   |   366 MB
gitea     |    86 MB
nginx     |    18 MB
----------|---------
TOTAL:    |   3.18GB

Cost


To accomodate those requirements (primarily memory), my DigitalOcean droplet is 1CPU with 2GB of memory and a 25GB Disk, which is $10 per month. I also have a 25GB volume primarily for Nextcloud files and Gitea repositories, which is $2.50 per month. So that’s $12.50 per month.

ProtonMail Plus is $48/yr.

The domain name is $10/yr.

SERVICE      | PRICE (PER YEAR)
-------------|-----------------
DigitalOcean | $150
ProtonMail   | $48
Domain Name  | $10
-------------|-----------------
TOTAL:       | $208 Per Year

Conclusion


Is that cheap? Worth it? Maybe. It depends on your priorities and your needs. You could make it cheaper by only paying for 1GB of memory with DigitalOcean and ditching Collabora. And/or make do with the 25GB of storage and not buy an additional 25GB.

You could also ditch DigitalOcean entirely and run your own server out of your house, but you’d need to do some calculations on the initial cost of the computer and electricity costs.

For me, I’d rather not have a computer running 247 in my house. But I may end up ditching Collabora so I can go back to 1GB of memory and save $60 a year. Also, ditching YNAB in favor of Firefly III saved me $50 a year alone. But you could also make do with just a simple spreadsheet.

Overall, I’m happy and won’t be looking back. Not only am I in control of my own data (assuming I can trust DigitalOcean and the security of these apps), but I learned a lot about Docker, HTML, and CSS, which are good things to know.

CONCLUSION: Worth It