Progress to Self-Hosting

So, it has been about two months since I wrote Path to Self-Hosting so I figured it was time for a check-in.

As a refresher, here is the list of services I came up with (I will probably add more):

  • Email, both storage and web-access
  • Document storage
  • Media (Music and Videos)
  • Source control (git).
  • Calendar
  • Contacts
  • Password management

So, how am I getting on? Let’s take a look.


I am still using GMail as my main mailbox, but I am trying to stay away from the web interface as much as I can. A long time ago, I set up mbsync to sync my GMail down to my laptop, and I use mutt to read emails from there. There are some emails which really need a GUI version to read it (mainly marketing type things), so I have a script to open it in FireFox.

I have been looking into places I can move my mailbox, but I need to figure out if I want to trust a third-party like Proton Mail or my hosting provider DreamHost, or if I want to stand up a mail server on a VPS somewhere.

Document storage

I got an email from Google which told me that the promotional period on some storage was expiring, which got me to move everything personal out of Google Drive into my NextCloud server I run at home. I have to leave some things there as I use it as a file storage for an group I help run.

My NextCloud server has been given a bit of attention. I upgraded it to 17.0.2 and converted the SQL storage from SQLite to MariaDB. Things seem to be going well with that. I also switched the docker container image from the NextCloud one to the one provided by They do a good job of packaging up images and providing a common way to manage and configure their docker images. I have switched over all my images to use theirs where I can.

Next steps here are to upgrade to NextCloud Hub 18, which is the latest release, and to get everybody else in the house storing their files on the NextCloud sever.

Media (Music and Videos)

Back before there was stable and wide-spread music streaming services, I had managed to amass a large-ish music collection which I used various local clients to play. Once I decided to ditch Google Play Music, I needed a way to get play my music where ever. Enter Airsonic, a music streaming server I can run under docker here at the house. For my phone, I am using an application called Dsub (F-Droid) which lets me cache the music on my phone so I can play it without using the phone’s data connection.

My next step here is to take the playlists I made in Play Music and port them over to AirSonic. I will also need to purchase some of the songs I am missing.

Source control (git).

I have been running an instance of Gitea for a while. It is a great basic git repo with web-front end. I have been playing with GitLab at work and I might want to try it out. Yeah for docker making it easy!


Calendaring will present some of a challenge as I need to be able to see and update the family’s calendars, and everybody else is using Google. I should write a post on what I am doing, but I am basically syncing down the Google calendar stuff, and then syncing it with my NextCloud server.

To view and edit my calendars, I am using something called ikhal which is part of the khal suite which is a CLI calendaring app.

If I need a GUI, then I use the calendaring app in NextCloud.


I am planning on using something called khard which is another CLI app which will integrate with my calendar syncing solution, and my email client of choice, mutt.

Password management

I have been using a CLI tool called pass for a long time now. It stores its entries on the local disk using GPG encryption per file. It also supports git, so I have it stored in my gitea instance. I can also access it on my phone which is nice.

Don Harper Written by:

Don is a computer guy stumbling through life trying to raise his kids and take some pictures