Unstructured Thoughts Regarding and Unfair Expectations for Self-Hosting Various Sync Services

Today is Reset the Net day, and here is my topical post.

I’ve taken an inventory of the different online services I use on a day-to-day basis. I agree with the mission of decentralizing the Internet and if it was possible to stop using these services in exchange for a self-hosted or peer-to-peer alternative, I would do it gladly.

When I look at the services I use, many of them simply involve me moving my private data from one place to another–notes, photos, files, and so on. I gain little from having this stuff online–I already have a computer running at my house 24/7, so if I would simply access that computer from anywhere and sync with it, there would be no need to involve any online service providers. I also have a VPS which might be better for this sort of thing. Maybe this sort of setup will never be for everyone but it could be good for some people. For example, me.

I’ve been messing with different pieces of self-hosted software for a while now (Fever, OwnCloud, BitTorrent Sync) and they are mostly lacking. The most important point though is that it’s not possible to replicate all of the functionality I get through online services with self-hosted alternatives. I don’t see why I have to use Google or Apple or Amazon to simply sync my reading position in a PDF between devices, but I do. I don’t know why I have a plethora of great options for automatically uploading photos, as I take them, to some random server, but few good ones for having pictures sent to my home computer as I take them, but that’s the situation. It is certainly possible to its shift your most sensitive data out of the cloud and to a self-hosted solution but it would be nice to be able to go all-in.

In a perfect world, beyond the initial inconvenience of setting everything up, using self-hosted services shouldn’t involve losing capabilities. In this world: The server-side should be a non-pain-in-the-ass. Every service would have, at minimum, a web app (for desktop) and native iOS and Android clients (for phones and tablets). Native apps for desktop are preferable, and a good model for what an easy-to-use server app looks like is OS X Server. Running some background service and then configuring it on your local machine through a web browser is not great but not a deal-breaker.

I am aware that with peer-to-peer solutions (e.g. BitTorrent Sync) “client” and “server” is not really correct but it amounts to the same thing if you end up picking one machine (a home computer or a VPS) to stay on all the time.

I should note that I don’t think that online/cloud services are “evil,” but I do know that no matter how good the policies of a particular online service provider are, no service is perfectly secure and every service is subject to government orders. Plus, policies can change for the worse. Trading one online service for another can do some good at the margins but a truly decentralized, private alternative should bypass third parties entirely when possible. There is a dynamic where the best online services attract the most users which then turns them into a tempting target for bad guys (spies, black hat hackers, and so on). It should be possible for people who care to opt out of this entirely, without becoming hermits.

One point on discovery: I don’t know of a way to easily handle discovery (e.g. my mobile device can find my computer) without some kind of third-party shim service such as what FaceTime and BitTorrent Sync use. Dynamic DNS is in this category. Maybe if my IP address doesn’t change a lot I could just use that.

Files: There are a bunch of self-hosted Dropbox alternatives. I will just point out that on mobile most of them don’t work with third-party applications. I don’t just want to access “files,” I want to save my work to this thing.

Messaging: Would a self-hosted Jabber server work?

Maps: Possible alternative: apps (such as those by Skobbler) that store OSM data locally?

Automatically back up photos as they are taken: Any of the self-hosted Dropbox alternative apps could do this, and some of them try, but none of them work very well. BitTorrent sync, for instance, lets you back up a local folder, which can be your Android phone’s DCIM folder. But the iOS version only has manual backup, and in any case, the solution is not great for the reasons in the bullet point below.

Access complete photo library remotely: Just viewing a directory of files and viewing thumbnails isn’t good enough. You need albums, editing tools, facial recognition, a map that shows where photos were taken, and so on. Google+ is the service to beat here, though it is bafflingly missing the map feature that iPhoto has had since forever.

RSS: Apps that parse RSS locally on each device are easy enough but you need a self-hosted sever (like Tiny Tiny RSS or Fever) if you want to keep feeds and read/unread in sync between devices. The best apps for RSS on Android and iOS (Press and Reeder) support Fever so this is probably done. Fever is expensive, though.

Podcasts: Same as RSS. The server-side component can just handle syncing of played/unplayed, subscriptions, and position. No need to sling the actual audio files around.

Read later: Wallabag is a self-hosted read-it-later service but its mobile apps need some work (e.g., no iPad version). The key with this sort of service is that it needs to be easy to send articles to it from anywhere.

PDF and eBook sync: I should be able to read a PDF or eBook on one device and pick up where I left off on another device, and the files themselves should sync, as well.

Quick notes: I need to be able to open an app and start typing quickly and quickly delete notes. Text only. That’s it! Other people might want a self-hosted Evernote replacement. I currently use SimpleNote which is the only cross-platform (Mac, Android, iOS, web) note-taking app that works the way I want. Ideally a self-hosted version of this would just save notes as text files on the file-syncing service.

Mail: Actually, there’s no chance I’d self-host email unless someone makes it really easy. Self-hosting mail sucks. People have brought up Mailpile to me and it is cool but it is not actually an email server. It is an email client (like Eudora or Mail.app) that connects to an email server like Gmail. This is what self-hosting mail entails.

Calendar: Wow, there are actual standards for this.

Contacts: Same.

Access home media remotely: There are a few options such as Plex. They often involve some server component. Mostly, they are missing features (pinned playlists, etc).

Sync bookmarks: I think there’s some kind of standard for this, though I’d prefer it was just baked into my various browsers.

Blog: How about a self-hosted blog with mobile apps that are as good as Tumblr’s?

Anyway, that’s all I can think of at the moment.