Sean Maddison -

Sean Maddison

Self-hosting my own cloud apps

Over the past six months I’ve been tinkering with self-hosting my own common apps on my own server. A little because the large tech companies seem to be getting worse every month in various different ways, and mainly just for the interest in tinkering with software, servers and coding. The plan is to replace all of my common cloud-based services with Open Source alternatives.

I’ve been doing all my initial experiments with a Raspberry Pi on my home network to get the feel for running my own servers and had everything running on there for a little while, the poor little thing does get very hot though.

I’ll be going travelling in the near future for a long time, so can’t really rely on a little Pi box on my home ADSL network, so now I’m porting them over to a Virtual Private Server (VPS) over at Linode. It’s going very well so far!

Email, Calendar & Contacts

For email I just went with using my ISPs provider for IMAP attached to my own domain name, CIX is a great smaller ISP that I’ve been with for about 15 years and I’m really happy with them.

For Contacts, Calendars and Tasks I originally played around with Radicale on my Pi. Pretty easy to setup mostly but very basic.

On my VPS I eventually figured out how to set up Davical server (after many earlier failed attempts) and have that running nice and smooth now 🙂 To access CalDAV and CardDAV services on android I bought the DAVx5 app which handles all of that for me nicely, and my email client has built in support.

Photos and images

After exporting all of my photos (about 12 year’s worth), from Google Photos I had to find a place to put them. In the end I settled on Piwigo which does the job for the most part–the new android app is pretty good, but there’s still no auto-syncing from the mobile device.

I’ll work on another sync solution for now–otherwise it’s a decent server with a nice webclient interface.

I also had a lot of duplicates in there, some Piwigo extensions removed okay but only usually based on crude criteria like being binary-identical or based on metadata. So I put together this simple BASH script, both to refresh my shell scripting skills and to actually get rid of proper dupes using the findimagedupes tool.

File sharing & syncing

Okay, so I originally cobbled together something based on Samba and SFTP. Pretty much just a working directory on the server, with Samba shares for all my other local machines and SFTP details for external access. This worked but wasn’t very slick, and I came across the usual finicky problems sharing directories between Windows and Linux.

In the end I went with Seafile server, pretty easy to setup (after I solved the problem of running Nginx and Apache servers at the same time)! The desktop and android clients are just what I needed, and the web interface is pretty decent too. It also supports end-to-end encryption so it’s perfect for what I need.

To-do list

Here are the other apps I use that I’m looking to replace in the near future:

  • Evernote is the next big one to tackle, lots of options out there but none of them great
  • Feedly for RSS feeds – offline desktop clients work but I do like syncing between devices
  • Check out Solid for my personal data

Leave a Reply

Your email address will not be published. Required fields are marked *