How I learned to start worrying and hate the cloud


Over the span of 2022 I have been steadily engaged in the process of ‘degoogleifying’ myself, that is, removing or reducing my dependence on cloud service providers like Google, Microsoft, Dropbox, etc. and instead relying on self-hosted alternatives to these services. Like many others I have a very ‘online’ life and that typically means depending on cloud services for storage, computer backups, personal knowledge management, etc. and I decided that I’d like to move away from these 3rd party dependencies and begin to self-host as many of these online services as possible.

This began with a purchase of a Network Attached Storage (NAS) from Synology, a DS220+ specifically (though I somewhat regret going for a 2-bay model and have now upgraded to a 4-bay DS923+).

While there are numerous other NAS providers out there (including open source OSes you install yourself), the genius of the Synology NAS ecosystem is that they’ve taken something technically complicated, deploying a NAS and its associated applications, and made it a smooth and polished user experience. Its not quite as simple as turning on a Macbook, but compared to some of my own experience setting up Linux based PCs and servers, it’s pretty dang simple. Truthfully, while I can get around the Linux shell decently well, I much prefer relying on a friendlier solution that doesn’t need so much tinkering.

With a Synology NAS, you also get access to their ecosystem of apps, many of which serve as replacements for cloud services like drop box and Google photos. In fact, many of these Synology apps work equally as well as their cloud based competitors. Unlike them, all data that you store in these apps gets saved to the NAS and you retain full sovereignty over your data. In addition, if there are cloud services you rely on that Synology does not provide for, support for Docker means you can find an open source alternative and run that on the NAS pretty easily.

A true self-hosting data-hoarding nerd will scoff at me using closed proprietary hardware/software from Synology, but I think that perspective is somewhat reductive. When deciding to take the plunge into self-hosting, there are a few considerations. Why self-host? Maybe you’re concerned about maintaining utmost privacy, in which case using closed source software/hardware with all sorts of unknown user analytics may be a deal breaker for you.

In my case, I’m interested in having full sovereignty over my data and not having access to it cut off if a cloud service provider decides to shutdown or change their terms. While Synology may shut down, my NAS will still work (albeit without OS updates) and I have the option to migrate data to another ecosystem, unlike some cloud apps which make migrating away and exporting your data very difficult.

Anyway, that concludes the preamble. The real purpose of this blog post was to document the cloud services I relied on in the past and the self-hosted alternatives I have found that work well for me.

Password Management

This goes up top due to its sheer importance. You should be using secure unique passwords for each account with these passwords stored securely with a password manager. If you don’t already do this you should make it a fairly high priority to have this set up. If you do have this but use a cloud password manager like LastPass then you might consider migrating to a self-hosted option (LastPass’ history of data breaches should be sufficient incentive).

In my case I use an open source app called KeePass. It’s UI is incredibly dated, but thankfully it saves all password into a single portable .kdbx database file, which is also an open source standard. This means there are third party clients that can work with these files too, so you can use a different client with a better UI if you prefer. KeePass’ website lists several alternatives. On my Android phone I use KeePass2Android and in Firefox I have the Kee plug-in installed.

The aforementioned .kdbx file is then synced across my devices using Synology Drive, Synology’s version of Dropbox, OneDrive, Google Drive, etc. but you can just use cloud solutions to sync the password database if you prefer.

Another popular self-hosted password manager is Vaultwarden, but I haven’t used it so can’t say much.

File Syncing and Sharing

As the name suggests, a NAS allows you to store files and access them over a network, typically as SMB shares and Synology is no different. For most files over my local network this is how I would access them and move them across devices. In addition, my network router, a Ubiquiti Dream Machine SE, also acts as a VPN server, so I can connect to my local network remotely and access these remote shares from anywhere.

For files which I need to be automatically synced across devices, I use the aforementioned Synology Drive. Like other cloud storage services you install the client apps on your devices and it syncs files between them. You can set up what folders to sync, whether to do 2 or 1 way syncing, how many file versions to keep, and so forth. I use it to sync my password database, backup my phone photos, as well as my personal notes (see below).

Device Backup

For backups of my desktops and laptops, I rely on Synology Active Backup for Business. The name is somewhat of a misnomer, as it can be used by individuals as well. Backup schedules have to be centrally managed by the administrator rather than by individual client devices, which is what makes it more of a business targeted application, though for an individual user you are also the administrator so it works either way.

What makes Active Backup superior is that it can work as a full device ‘bare metal’ backup, and not merely as backup for files (like what Backblaze, Carbonite, etc. offers). What this means is that if your machine suffers a catastrophic error like a SSD failure, you can install a fresh SSD and restore it fully with the backup and boot into the machine as if nothing happened, without any need to reinstall the OS or any apps on the machine or manually restore files.

Note taking/Personal Knowledge Management

Note taking and Personal Knowledge Management (PKM) is probably quite personal for most. We all have our own preferences for how we take notes and save information and this affects what tools we use.

My note taking process in the past used to be quite haphazard, relying on a combination of OneNote, Samsung Notes and good old notebooks. I’ve now consolidated to using Obsidian.

Obsidian is brilliant in a bunch of ways. It uses standard Markdown syntax for handling formatting, making it compatible with various other text and note editing apps. Notes are saved as simple text files with Markdown syntax, making the notes portable and easily exportable. The app has a plug-in system with hundreds of third party plug-ins to do all sorts of things from creating incredibly sophisticated note templates to organizing notes for TTRPG campaigns (the plug-ins work with the mobile version of the app too!). You can and are encouraged to link notes with hyperlinks, which are then used to generate pretty graphs of your notes and how they connect with each other.

Obsidian isn’t entirely perfect though. The design choice of making notes essentially text files with markdown means it doesn’t handle handwritten/drawn notes very elegantly. A popular 3rd party plug-in, Excalidraw, works really well for writing notes or drawing with a stylus, but Excalidraw notes are saved as individual separate notes and so you can’t really have handwritten notes and typed notes on the same page like you can in OneNote. Since I mostly type my notes and only handwrite when in a pinch I haven’t found this to be a major drawback but of course, YMMV.

As mentioned, Obsidian notes are saved as text files. These text files are then synced across my devices with Synology Drive so that my notes are always consistent between them.

Other self-hosted alternatives worth a look at include Joplin, Roam Research, Logseq and The Brain.

Entertainment Media Management

Synology has their own apps for streaming and managing your movies, TV shows and music, but unfortunately they aren’t that good and instead I’ve taken to using Plex.

Plex basically allows you to act as your own personal Netflix and Spotify. It scans your NAS for your movies, TV shows and music, which it then indexes and makes it available for streaming to your devices via their apps.

These Plex client apps make consuming the media a lot more convenient than opening the raw file over a network share. Music can be converted in real time to a lower bitrate to limit mobile data use. You can pre-download the music if you know you will lose internet access. For movies and TV shows Plex can transcode video files to a different format if the viewing device doesn’t support the format its in. It can search for and download subtitles for foreign language content. It can do the handy skip intro and credits thing Netflix, etc. can do.

Plex is a closed source commercial app and while basic features are free, some features require either a paid monthly subscription or a one-time lifetime subscription fee. There are free alternatives like Jellyfin, but they are lacking in certain features. Ultimately, I’m ok with using Plex as Plex doesn’t host my media for me. If Plex shuts down and even the app stops working, I still have my media collection stored on my own NAS. The one-time fee for a lifetime subscription is great too as if, like me, you hate monthly subscriptions, there is an alternative.

Web bookmarks/Read It Later

Wallabag is a web app for bookmarking links to be revisited later. Its a great self-hosted alternative to Pocket. On my phone I use the Android app and in Firefox I typically just use the web interface to browse saved links and a Javascript bookmarklet to save new links (though there are browser plugins as well).

Unlike the other apps on this list, Wallabag is not hosted on my NAS but on the webhosting service I use to run this website. However, you can install Wallabag via Docker as well so you can install it on a Synology NAS too. This web server is regularly backed up to my NAS so even if my web hosting provider goes under I still have all of my data.

Photo Backups/Management

Synology Photos is their Google Photos equivalent. With the phone app you can automatically back up the photos you take. Photos can be easily organized in albums and shared with others. It also does facial recognition and supports geotags for added ways of organizing photos. To be frank my photo managements needs are pretty simple as I’m hardly a professional photographer, so others may find its feature set lacking in certain areas, but I personally can’t attest to this.

Contacts and Calendars

Contacts and Calendar events can also be stored and synced via Synology, though unfortunately on Android syncing doers require the use of a 3rd party app. Personally I do still use Synology’s alternatives for this but for most people I would say the hassle is not worth it and just relying on Google/Microsoft/etc. is probably good enough. Storing and syncing contacts and calendar events is probably a negligible cost for Google and is unlikely they will pull the rug out from under you anytime soon.

NAS Backup

Self hosting is all well and good, but it can backfire if your NAS suffers some sort of catastrophic hardware failure. So having some sort of offsite backup is pretty important. In my case, I use Synology Hyper Backup to backup my NAS to Google Cloud Storage. Hyper Backup supports any cloud storage solution with an S3 compatible API, so that includes Amazon S3, Backblaze B2, Synology C2 and Google Cloud Storage.

I opted for Google Cloud Storage as their Archive storage tier is cheaper than everyone else’s, and for some reason they gave me like 500 bucks worth of cloud credits, so my backups for the next 2+ years are probably going to be free. That’s nice. I had previously been using Backblaze B2, which is still pretty affordable relative to Amazon S3 or Synology’s own C2 solution.

Relying on cloud backups for your self hosted data and apps sounds like an oxymoron, but ultimately its just a backup. This data is not going to be accessed unless my NAS suffers some sort of failure. Its also worth noting that it doesn’t have to be a cloud backup specifically, only that it has to be offsite. So your offsite backup could be at a family member’s home or at a workplace. Basically, it has to be somewhere else physically so that a fire or electrical surge won’t also destroy your backup.

Website/Blog Hosting

My website and this blog run off of a web hosting provider rather than my own NAS, mostly due to concerns for reliability and uptime. That said, my website and blog get regular scheduled backups to my NAS via Softaculous, so I can fairly easily migrate webhosts with little issue.

Misc Small Services

Here’s some other small little utilities that you can self-host that I personally find useful:

Stikked/Paste – Self-hosted pastebin
YOURLS – Self-hosted link shortener
Mealie – Recipe management
CyberChef – Utilities for Programmers
ConverterNow – Unit conversion web app

Things I don’t self-host

Unfortunately there are still some things I don’t self-host, largely for technical reasons:

Android Phone Backup

There isn’t an easy way to make regular scheduled backups of a non-rooted Android phone. With a Samsung phone you can do regular backups to Samsung Cloud, but that’s obviously not self-hosted. You can backup to an external disk, but that requires a physically connected external drive which means it must be done manually. The only way to be able to do proper full device backups is by rooting the phone, which I don’t do for security reasons.

Email

Running your own email server is not a good idea in general. For one, if you want receiving emails to be reliable you need to ensure near perfect uptime, which isn’t easy even for large companies. Secondly, you’d likely find it incredibly difficult to actually successfully send emails as spam filters from Google, Microsoft, etc would immediately flag your email server as suspicious and filter out emails you send out.

However I do have my own custom domain for my email (namely parallelsuns.com) and while it currently operates off of Google Workspace, I own the domain and as such I can switch email providers if and when I need or want to. My emails also get backed up via Thunderbird.

Social Media

I could start using decentralized social media platforms like Mastodon or Bluesky, and even run my own Mastodon server, but I don’t rely on or use social media much anyway so I don’t bother.

Conclusion

All of this seems like a lot of work, and initially it is, but it’s a lot like your morning routine, once you get used to it and it becomes comfortable it really takes no effort at all. Most of these self-hosted apps run on their own perfectly fine and only require occasional intervention for software updates. The real friction is adjusting to the new apps and slightly adjusted workflows. Once adjusted though, you rest much easier knowing all your data is truly yours.

Appendix

Here’s some misc resources on self-hosting I found useful:

https://www.reddit.com/r/selfhosted/
https://www.youtube.com/channel/UC_n6DdR6FClpCbWnNM7Zp6A
https://github.com/ikoniaris/awesome-selfhosted-backup
https://mariushosting.com/